Nginx 作为代理服务器,加载JS文件报错,net::ERR_CONTENT_LENGTH_MISMATCH

Nginx 作为代理服务器,加载JS文件报错,net::ERR_CONTENT_LENGTH_MISMATCH_第1张图片

查看nginx 日志发现报错

[root@iZ62t11vp0xZ logs]# tail error.log 
2016/11/11 15:04:20 [crit] 8655#0: *21 open() "/usr/local/nginx/proxy_temp/1/00/0000000001" failed (13: Permission denied) while reading upstream, client: XXXXXXXX, server: agent.ibingogame.net, request: "GET /agent-server-webapp/res/js/easyui/jquery.easyui.min.js HTTP/1.1", upstream: "http://127.0.0.1:9081/agent-server-webapp/res/js/easyui/jquery.easyui.min.js", host: "58.96.175.135", referrer: "http://XXXXXXXX/agent-server-webapp/adminHome"

发现是由于%nginx% 目录下的proxy_temp 没有权限造成的
ginx 的工作进程对大文件做了缓存,这个缓存在 %nginx%/proxy_temp 目录下,主进程在读取缓存的时候由于权限问题而无法访问。ps nginx 可以看出主进程用户是 webapp(启动 nginx 的用户),工作者进程是 nobody 用户(nginx 默认的工作者用户就是 nobody,如果你没有配 user 指令的话),proxy_temp 目录所有者就是工作者进程的用户(可以 ll proxy_temp 对此进行验证)。
停止 nginx(nginx -s stop),chown -R 对 nginx 所有目录权限重新设定成 webapp,然后在 nginx.conf 的 worker_processes 指令前添加指令
user webapp;
最后 webapp 用户重启 nginx 即可。

参考资料:
http://stackoverflow.com/questions/25993826/err-content-length-mismatch-on-nginx-and-proxy-on-chrome-when-loading-large-file

你可能感兴趣的:(nginx)