美文网首页
项目重新部署后图片和静态文件加载不出来解决方法

项目重新部署后图片和静态文件加载不出来解决方法

作者: 某月某日_5ced | 来源:发表于2019-08-22 09:38 被阅读0次

在服务器部署过项目后,访问项目发现有的图片加载不出来,浏览器控制台报出Failed to load resource: net::ERR_CONTENT_LENGTH_MISMATCH错误。

这个问题是Nginx 反向代理访问不到资源缓存,可能原因:

一、查看nginx的log,发现错误如下:

2015/05/27 02:19:10 [crit] 29263#0: *72 open() "/usr/local/nginx/proxy_temp/3/00/0000000003" failed (13: Permission denied) while reading upstream, client: IP, server: localhost, request: "GET /项目名/frame/js/jquery-1.10.1.min.js HTTP/1.1", upstream: "IP地址:8080/项目名/frame/js/jquery-1.10.1.min.js", host: "IP地址", referrer: "IP地址/项目名/"

原来是 nginx 的工作进程对大文件做了缓存,这个缓存在 %nginx%/proxy_temp 目录下,主进程在读取缓存的时候由于权限问题而无法访问。ps nginx 可以看出主进程用户是 webapp(启动 nginx 的用户),工作者进程是 nobody 用户(nginx 默认的工作者用户就是 nobody,如果你没有配 user 指令的话),proxy_temp 目录所有者就是工作者进程的用户(可以 ll proxy_temp 对此进行验证)。

查看Nginx运行进程,确认运行用户为“tomcat”;

ps –ef|grep nginx

2、检查proxy_temp目录所属用户,nginx 默认的工作者用户就是nobody;

ll proxy_temp

3、停止nginx并将nginx目录权限设置为“tomcat”用户;

./nginx -s stop

chown -R tomcat:tomcat nginx

4、修改%nginx%/conf/nginx.conf配置,在worker_processes 前添加:user tomcat

5、重启nginx即可。

二、nginx服务器内存耗尽。

查看nginx服务器内存使用情况,

先 ps -ef | grep nginx ,会出现5个关于nginx的进程,如果5个进程的id分别为 100、101、102、103、104

杀掉所有nginx进程 kill -9 101 102 103 104

进入目录 cd /usr/sbin

重启 nginx -c /etc/nginx/nginx.conf

至于 nginx -s reload 不建议使用,本人亲试,有时候无效

相关文章

网友评论

      本文标题:项目重新部署后图片和静态文件加载不出来解决方法

      本文链接:https://www.haomeiwen.com/subject/yhcwsctx.html