【发布时间】:2017-01-23 14:21:04
【问题描述】:
几周前,我在设置 Apache 和 Django 配置以在强制使用 SSL 并在 AWS 负载均衡器后面运行时度过了一段美好的时光。
现在一切运行良好,但我仍然经常收到常见的“无效 HTTP_HOST 标头”错误,并试图找出修复它的正确方法。
搜索让我得到以下关于 Apache 配置的答案:
How to disable Django's invalid HTTP_HOST error?
建议将以下设置放在 VirtualHost 文件的 <Directory></Directory> 块内:
SetEnvIfNoCase Host .+ VALID_HOST
Order Deny,Allow
Deny from All
Allow from env=VALID_HOST}
这可行,但根据 Apache (https://httpd.apache.org/docs/2.4/howto/access.html),此方法已被弃用。
我已经阅读了 Apache 文档,但是当我尝试使用以下代码时,它只是关闭了对站点的访问,并给了我一个“未授权”错误。
<RequireAll>
Require host example.org
</RequireAll>
不完全确定我错过了什么。我知道我可以使用第一个答案来解决问题,只是尝试使用未弃用的代码找出“正确”的方法。站点正在使用 WSGIDaemonProcess 运行 Django 应用程序,并具有以下设置以通过 AWS 强制 SSL
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTP:X-Forwarded-For} !=""
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI}
【问题讨论】:
标签: django apache amazon-web-services https