在服务器部署过
项目后,访问项目发现有的图片加载不出来,浏览器控制台报出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 不建议使用,本人亲试,有时候无效在dist目录下的static静态资源,通过路由访问时,会多出一个路由在静态资源前面,如:
ip:8080/Test/static/one.js
Test路由的存在导致 one.js报404问题;
项目在构建dist时,路由配置的问题,找到Vue项目下
/src/router/index.js文件,
更改为如图方式:
重新 npm run build,将dist替换到服务器上,重新构建docker镜像及启动容器即可
评论列表(0条)