gpt4 book ai didi

Apache 上的 Django 无效的 HTTP_HOST header - 使用 Require 修复?

转载 作者:行者123 更新时间:2023-12-03 18:31:59 27 4
gpt4 key购买 nike

几周前,我在设置 Apache 和 Django 配置的过程中度过了一段美好的时光,同时强制使用 SSL 并在 AWS 负载均衡器后面运行。

现在一切运行良好,我仍然不断收到常见的“无效的 HTTP_HOST header ”错误,并试图找出解决它的正确方法。

搜索使我得到了有关 Apache 配置的以下答案:

How to disable Django's invalid HTTP_HOST error?

建议将以下设置放在 <Directory></Directory> 中在 VirtualHost 文件中阻止:

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}

最佳答案

因此,在搞砸了很长时间之后,我发现我正在处理的问题可能与主机名反向 DNS 查找失败有关,因为 IP 地址指向的是 AWS EC2 实例而不是我的域。

在最终放弃正确处理之后,我回到了关于如何禁用日志错误的帖子,并尝试使用 env 变量,这似乎有效。

显然 Require 的正确格式是:

<Directory /var/www/html/>
SetEnvIfNoCase Host example\.com VALID_HOST
Require env VALID_HOST
Options
</Directory>

这些人是对的,只需要针对当前的“Require”指令更新它。

How to disable Django's invalid HTTP_HOST error?

关于Apache 上的 Django 无效的 HTTP_HOST header - 使用 Require 修复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39513109/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com