nginx, uwsgi, DJango, 502 当 DEBUG=False, "upstream prematurely closed connection"



我有一个运行Django应用程序的nginx生产服务器,使用uwsgi(在本教程中设置)。

nginx和uwsgi通过UNIX套接字通信。

然而,一旦我把DEBUG = False在我的Django设置,我得到一个502错误。nginx错误日志告诉我:

2015/09/08 10:37:51 [error] 940#0: *4 upstream prematurely closed connection while reading response header from upstream, client: myIP, server: mydomain.ca, request: "GET /quests/ HTTP/1.1", upstream: "uwsgi://unix:///tmp/hackerspace.sock:", host: "myDomain"

如何防止套接字连接超时,为什么DEBUG = False造成这种差异?

谢谢!

我找到了适合我的解决方案。我必须在django的settings.py

中为ALLOWED_HOSTS列表指定主机

ALLOWED_HOSTS = ['example.com', 'example.dev']

"ALLOWED_HOSTS"的答案也解决了我的问题。有一件事需要详细说明,因为我不是很清楚,你在这里放的值是你的网站将被访问的潜在域名(ip等)。如果你的网站是http://mysite.here/,那么你需要添加"mysite"。在ALLOWED_HOSTS列表中。显然,Debug=True没有HOST验证,一旦它切换到False,系统开始拒绝任何HOST: header值没有出现在列表中的请求。进一步阅读:https://docs.djangoproject.com/en/1.10/ref/settings/

最新更新