我刚刚在AWS EC2上将我的nginx从1.4.2(/ usr / local)升级到1.4.7(yum)。我现在在客户端出现了一对错误:
GET https://subdomain.mysite.com/assets/application.css net::ERR_CONTENT_LENGTH_MISMATCH
GET https://subdomain.mysite.com/assets/application.js net::ERR_CONTENT_LENGTH_MISMATCH
我为此感到茫然,谷歌并没有太多帮助。关于从哪里开始的任何想法?所有帮助赞赏。可以从手动安装切换到yum install吗?
答案 0 :(得分:9)
我可以确认答案1解决了潜在的问题(我是一个新的SE用户,所以我还不能支持它)。以下是搜索引擎的更多细节:
来自/var/log/nginx/error.log
2014/04/30 08:07:48 [crit] 35135#0: *116437 open() "/var/lib/nginx/proxy/7/09/0000001097" failed (13: Permission denied) while reading upstream
在我的情况下发生这种情况是因为我最近更改了运行nginx的用户(默认的nginx配置使用www-data
中的/etc/nginx/nginx.conf
)。
我的解决方案是chown -R correct_user:root /var/lib/nginx/proxy
。我想我也可以rm -rf
使用现有的/var/lib/nginx/proxy
子目录,期望nginx使用correct_user
作为所有者重新创建它们。
埃里克·弗朗西斯感谢你搞清楚这一点!这很容易让我节省了一天的时间。
答案 1 :(得分:7)
tail -f /usr/local/var/log/nginx/error.log
您可能会看到类似的内容:
“/ usr / local / var / run / nginx / proxy_temp / 9/04 / 0000000049”失败(13: 阅读上游时,权限被拒绝
我是如何修理的:
sudo nginx -s stop
sudo rm -rf /usr/local/var/run/nginx/*
答案 2 :(得分:3)
好的,所以这可以通过几种方式解决。要做的是检查您的日志文件。
我的位于/usr/share/nginx/log/error-appname.log
关闭日志,您会发现配置文件中定义的用户(我的/etc/nginx/nginx.conf
)很可能没有权限。我使用用户nobody
。
对于一个应用程序,我必须将u+rx
(nginx需要可执行文件)提供给我的应用程序用户的主文件夹,一直到我的应用程序的公共资产目录。
在另一台服务器上,nobody
无法写入nginx的/var/lib/nginx/tmp/proxy
文件夹。所以我不得不chown nobody /var/lib/nginx
向下/proxy
文件夹nobody
试图写信。