在 AWS 网络负载均衡器后面将 HTTP 重写为 HTTPS 时,Apache 重定向循环

在 AWS 网络负载均衡器后面将 HTTP 重写为 HTTPS 时,Apache 重定向循环

现有的解决方案对我没有帮助,所以我一定是忽略了其他东西。

因此,我正在尝试在 AWS 网络负载均衡器后面使用 Apache 2.4/CentOS 7 建立一个网站。

我在 httpd.conf 中使用它来重写 HTTP->HTTPS,这也被 AWS 认为是仅在负载均衡器后面实现 HTTPS 的正确方法。 RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule .* https://%{SERVER_NAME}/$1 [L,R=permanent]

其中SERVER_NAME,我的服务器的 DNS 名称是解析为负载均衡器的 IP 地址的。

https://%{HTTP:Host}/也尝试过但未成功。

即使没有这个,也可以毫无问题地访问服务器(当然,除非可以使用 HTTP)。

由于负载均衡器是客户端的加密端点,因此我仅监听 Web 服务器上的端口 80。这是 AWS 预期的实现方式。

然而,使用这种方法,服务器将不断重定向我的请求,直到浏览器放弃。而且它最初尝试使用 HTTPS 连接时会发生这种情况。

Apache 的调试级日志输出除了请求超时外没有显示任何错误,负载平衡器日志也没有什么帮助。但也许你可以从中找出一些道理。

我也认为 SELinux 会造成麻烦,但它被设置为宽容。所以实际上不应该任何事物。

Apache 访问日志:https://textuploader.com/10cjh

Apache 错误日志:https://textuploader.com/10cjx

负载均衡器:https://textuploader.com/10cjg

任何非常感谢您的帮助。

答案1

因此解决方案是使用应用程序负载均衡器而不是网络负载均衡器。

相关内容