现象
- 部署的项目为
expressjs
项目,通过nginx
进行反向代理,访问时界面无法正常显示,通过浏览器控制台查看发现请求js
文件加载失败. 提示内容为ERR_INCOMPLETE_CHUNKED_ENCODING
,但是单独访问对应资源可以加载(可能没有加载全) - 通过查看
nginx
的错误日志发现:2018/08/28 17:11:58 [crit] 16465#0: *1303 open() "/usr/local/nginx/proxy_temp/1/01/0000000011" failed (13: Permission denied) while reading upstream, client: xxx.xxx.xxx.xx, server: xxx.eoekun.top, request: "GET /libs/lib.js HTTP/1.1", upstream: "http://127.0.0.1:6003/libs/lib.js", host: "xxx.eoekun.top"
原因
- 反向代理时若请求的文件大于
nginx
配置文件中的proxy_temp_file_write_size
配置,会将改文件写入proxy_temp_path
配置的路径下,缺省值为proxy_temp/
nginx
配置中用户无在/usr/local/nginx/proxy_temp/
路径下写入的权限
解决
- 修改
proxy_temp/
写入权限chown -R nginx:nginx proxy_temp
- 修改
proxy_temp_file_write_size
配置大小 略