我有一个运行Django应用程序的nginx生产服务器,使用uwsgi(设置为this tutorial)。
nginx和uwsgi正在通过UNIX套接字进行通信。
然而,只要我在Django设置中转动DEBUG = False
,我就会收到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会产生这种差异?
谢谢!
答案 0 :(得分:1)
我找到了适合我的解决方案。我必须在django的settings.py中指定 ALLOWED_HOSTS 列表的主机
ALLOWED_HOSTS = ['example.com', 'example.dev']
答案 1 :(得分:0)
“ALLOWED_HOSTS”的答案也解决了我的问题。有一点要详细说明,因为无论如何我都不清楚,你在这里放置的价值是你的网站将被访问的潜在域名(IP等)。 如果您的网站是http://mysite.here/,那么您需要在ALLOWED_HOSTS列表中添加“mysite.here”。显然,使用Debug = True时,没有HOST验证,一旦切换到False,系统就会开始拒绝任何HOST:header的值未出现在列表中的请求。进一步阅读: https://docs.djangoproject.com/en/1.10/ref/settings/