Django Bad Request(400)使用Apache/NginX部署时出错

Ham*_*FzM 4 python apache django nginx python-2.7

我正试图在Debug=False模式下在VPS上午餐.Debug=True工作正常,但当我将其更改为false时,我收到此错误.我正在使用Apache来渲染python页面,使用Nginx来提供我的静态文件.我尝试使用这个[回答]:调试Apache/Django/WSGI错误请求(400)错误,但它至少对我不起作用.这是我的wsgi配置:

#wsgi.py
import os
import sys

os.environ['DJANGO_SETTINGS_MODULE'] = 'example.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
path = '/var/www/example'
if path not in sys.path:
    sys.path.append(path)
Run Code Online (Sandbox Code Playgroud)

我还在下面的代码中添加了以下代码:

ALLOWED_HOSTS = [
    '.example.com', # Allow domain and subdomains
    '.example.com.', # Also allow FQDN and subdomains
]
Run Code Online (Sandbox Code Playgroud)

Omi*_*aha 18

要发现您的问题,请先暂时settings.py设置ALLOWED_HOSTS为:

ALLOWED_HOSTS = '*'
Run Code Online (Sandbox Code Playgroud)

然后在你的某个地方view,尝试打印并查看此命令的输出:

print(request.META['HTTP_HOST']) # or print(request.get_host())
Run Code Online (Sandbox Code Playgroud)

然后根据输出,将其(仅作为列表的域)设置为您的ALLOWED_HOSTS.

笔记:

  • 使用ALLOWED_HOSTS = '*' 可能存在安全问题,请在此处阅读.

  • 每次更改后,您都需要重新启动服务(apache/nginx).