最近项目用Nginx做反向代理,项目放在Linux上没出来数据,在Windows server上可以出来,于是加载时打开了浏览器控制台,看到
Net::ERR_INCOMPLETE_CHUNKED_ENCODING,从字面上理解的话应该是响应被截断了。
进一步深入可能是Nginx的配置问题, 找到Nginx的日志文件查看,看到了报错原因, open() "/usr/local/nginx-1.8.0//proxy_temp/8/01/0000000018" failed (13: Permission denied) while reading upstream, client: 10.111.42.173, server: localhost, request: "POST /API/autoops/PZTrademarkREST/getAll HTTP/1.1", upstream: "http://127.0.0.1:9999/API/autoops/PZTrademarkREST/getAll", host: "10.111.76.180:9998", referrer: "http://10.111.76.180:9998/"
问题原因
当代理文件大小超过配置的proxy_temp_file_write_size值时,nginx会将文件写入到临时目录下(默认为/proxy_temp)。
如果nginx对/proxy_temp没有权限,就写不进去。
解决
调整/proxy_temp权限为配置nginx的那个用户。
chown -R www:www /usr/ local /nginx/proxy -temp