我有一个运行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会造成这种差异?
谢谢!
发布于 2016-08-22 22:39:23
我找到了适合我的解决方案。我必须为django的settings.py中的ALLOWED_HOSTS列表指定主机
ALLOWED_HOSTS = ['example.com', 'example.dev']
发布于 2016-09-22 23:57:35
"ALLOWED_HOSTS“的答案也解决了我的问题。有一件事要详细说明,因为我无论如何都不能立即清楚,你在这里放的值是潜在的域名(IP等),你的网站将被访问。如果你的站点是http://mysite.here/,那么你需要把"mysite.here“放在ALLOWED_HOSTS列表中。显然,使用Debug=True没有主机验证,一旦将其切换为False,系统就会开始拒绝任何HOST: header的值没有出现在列表中的请求。更多内容请阅读:https://docs.djangoproject.com/en/1.10/ref/settings/
https://stackoverflow.com/questions/32464235
复制相似问题