python - 调试 Apache/Django/WSGI 错误请求 (400) 错误,然后别名子路径

标签 python django apache alias wsgi

我有一个 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/

相关文章:

java - Fortify Source Analyzer 和 Apache Lenya

apache - 如何使用 HTACCESS 阻止对特定子域的所有访问(定义的 IP 除外)

python - 从字符串中获取字符的十六进制值

django - 网址无效的Django 1.4导入错误语法

python - python 在窗口中显示错误

python - 来自 manage.py 的数据库错误 : "TypeError: invalid postgreSQL type: bigint"

jquery - 如何将 Django 与 JqueryUI 对话框集成?

php - 索引 PHP 下载而不是执行它

python - 什么正则表达式将捕获大括号/括号内的多个实例?

python libXML2 删除项目