现象

  1. 部署的项目为expressjs项目,通过nginx进行反向代理,访问时界面无法正常显示,通过浏览器控制台查看发现请求js文件加载失败. 提示内容为ERR_INCOMPLETE_CHUNKED_ENCODING,但是单独访问对应资源可以加载(可能没有加载全)
  2. 通过查看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"
    

原因

  1. 反向代理时若请求的文件大于nginx配置文件中的proxy_temp_file_write_size配置,会将改文件写入proxy_temp_path配置的路径下,缺省值为proxy_temp/
  2. nginx配置中用户无在/usr/local/nginx/proxy_temp/路径下写入的权限

解决

  1. 修改proxy_temp/写入权限
    chown -R nginx:nginx proxy_temp
    
  2. 修改proxy_temp_file_write_size配置大小 略

参考

  1. 记一次Chrome 错误“net::ERR_INCOMPLETE_CHUNKED_ENCODING”的解决经历
  2. nginx 出现 13: Permission denied
  3. Nginx 限制上传文件大小,大文件失败