【发布时间】:2015-07-29 20:42:22
【问题描述】:
我正在尝试使用 Django、nginx 和 gunicorn 运行我的服务器。在开发服务器上,一切正常。但是在生产服务器上,gunicorn 总是返回一个错误请求 (400)。
我知道我需要设置我的ALLOWED_HOSTS 变量,我做到了。我尝试了正确的域、星号,甚至将 DEBUG 设置为 True。但是,它始终是错误请求 (400)。
这是我的 nginx 配置:
server {
listen 80;
location /static {
alias /home/username/sites/sub.domain.example.com/static;
}
location / {
proxy_set_header Host $http_host;
proxy_pass http://localhost:8000;
}
}
我的wsgi-prod.py 文件:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "app.settings_prod")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
settings_prod.py 文件(缩短):
DEBUG = False
ALLOWED_HOSTS=["*"]
我通过以下方式启动 gunicorn(使用 virtualenv):
gunicorn --bind 127.0.0.1:8000 app.wsgi_prod:application
当我使用 manage.py runserver --settings=app.settings_prod 启动服务器时,该站点是可访问的。 gunicorn 的错误日志什么都没有显示,访问日志只显示 400。静态内容确实有效。
【问题讨论】:
标签: python django nginx gunicorn