SpringBoot 加载静态资源贼慢,咋整?

RyanWang
  • 40

不知道是什么原因,SpringBoot 项目部署到服务器之后,静态资源加载的特别慢,比如 bootstrap.css 都得加载 1-3s 左右,图片和 js 文件都一样。部署方式采用的是 nginx 反向代理,本以为使用了反向代理会快一点,结果还是很慢。。。大家有类似的情况吗?是怎么个方案?

下面是详细信息:

打包好的项目结构:

xxxxx.jar --> 里面只包含 class 字节码文件及启动类

resources --> 里面包含模板文件和 css,js 等资源文件

lib --> 所有依赖 jar 包

测试服务器是阿里的 1m,1 核的学生机。部署方法是使用的 java -jar xxxx.jar 运行方式,内嵌的 tomcat 容器。

nginx 反向代理配置:

location / 
{
    proxy_pass http://ip:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $remote_addr;
    add_header X-Cache $upstream_cache_status;
    proxy_buffering off;
    expires 12h;
}
回复
阅读 11.9k
10 个回答

Nginx是一个静态资源服务器,如果你是前后分离的话,可以把你的html,css,js放到Nginx中,通过

location / 
{
#配置html在Nginx中打开
  location ~* \.(html|htm|css|js)$ {

}
    proxy_pass http://ip:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $remote_addr;
    add_header X-Cache $upstream_cache_status;
    proxy_buffering off;
    expires 12h;
}

然后解决一下跨域问题。

不是 Springboot 慢,是你机器带宽太小了,1m带宽 = 128kb/s,静态资源大一点就要下个几秒了

可能是内置Tomcat的问题,从内置tomcat是挺快的。我就用的内置tomcat,但是你转向nginx多走一步可能这过程会慢。SpringBoot可以取消内置Tomcat的,不知道可不可以直接设为nginx,您大佬可以去查阅下

我的也是,我没使用nginx 直接将端口改为80即可。在第一次加载时速度也很慢。应该是带宽和内存的原因吧

公共静态资源还是用外部链接吧, 用自己的云主机慢死

比如:

/css/bootstrap.css 换成 https://cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css

主要是学生机的1M的限制,资源尽量压缩吧,减少传输,另外一个就是尽量使用第三方的公共资源,如Jquery,bootstarp 等等。

用CDN吧 阿里 腾讯 七牛每月都没有免费流量的CDN 一般一个月是用不完的

berry
  • 1
新手上路,请多包涵

1.tomcat启用gzip
2.使用cdn加速你的静态资源

春风
  • 2
新手上路,请多包涵

启动是不是debug模式啊,试试用java Application启动呢

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏