我有一个 django 项目在 example.com 域上运行得很好。 我想将一个特定应用程序别名为 example2.com,但是当我禁用 django 调试时,我不断收到 Bad Request (400) 错误。
我在 debian jessie 上使用 django 1.7.7 和 python 2.7.9。 example.com 和 example2.com 均由 apache 2.4.10 和 WSGI 模块 4.3.0 提供服务。
在 apache 全局范围配置中,我有:
WSGIDaemonProcess tracking user=www-data group=www-data processes=2 threads=15 python-path=/path/to/projects/tracking/ display-name=wsgi-django-tracking
在 example.com 虚拟主机中,我有:
WSGIScriptAlias / /path/to/projects/tracking/tracking/wsgi.py
WSGIProcessGroup tracking
<Directory /path/to/projects/tracking/tracking/>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
在 example2.com 虚拟主机中,我有(请注意 WSGIScriptAlias 指令的两个参数末尾的 /myapp):
WSGIScriptAlias /myapp /path/to/projects/tracking/tracking/wsgi.py/myapp
WSGIProcessGroup tracking
<Directory /path/to/projects/tracking/tracking/>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
在 django 设置中我有:
ALLOWED_HOSTS = ["example.com", "example2.com"]
使用DEBUG=True
一切都很好。当我设置 DEBUG=False
时,example.com 继续工作,但当我尝试访问 http://example2.com/myapp 时我得到的只是:
Bad Request (400)
在 /var/log/apache2/error.log
和 /var/log/apache2/access.log
中都没有显示任何有用的内容,所以我有点困惑.
感谢您的帮助。
最佳答案
仔细检查主机名是否存在于 ALLOWED_HOSTS
条目中。我知道您这么说,但是 400 Bad Request
正是在设置中缺少主机名时您会收到的错误。
请再次检查ALLOWED_HOSTS
。
关于python - 调试 Apache/Django/WSGI 错误请求 (400) 错误,然后别名子路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33371422/