Nginx做反向代理,后端是Tomcat,通过浏览器访问时部分文件加载失败,提示:
ERR_CONTENT_LENGTH_MISMATCH
经检查原来是Nginx的工作进程对大文件做了缓存,这个缓存在 %nginx%/proxy_temp 目录下,主进程在读取缓存的时候由于权限问题而无法访问,从而导致以上异常。
1、查看Nginx运行进程,确认运行用户为“tomcat”;
ps –ef|grep nginx
2、检查proxy_temp目录所属用户,nginx 默认的工作者用户就是nobody;
ll proxy_temp
3、停止nginx并将nginx目录权限设置为“tomcat”用户;
./nginx -s stopchown -R tomcat:tomcat nginx
4、修改%nginx%/conf/nginx.conf配置,在worker_processes 前添加:user tomcat;
5、重启nginx即可。