我试图解决这个问题,但却感到非常沮丧。
我们有一个在负载均衡器上使用 SSL 证书的 AWS 环境。我们在 httpd.conf 中还有一个重写规则,将所有端口 80 流量重定向到 443。此环境与当前服务器完美配合,它按预期重定向到 443,并且 ELB 健康检查 ping 也按预期工作。
我们遇到的问题是,我们丢失了服务器构建文档,需要重新创建它。当尝试在新的 amazon linux 实例上配置新的 httpd 服务时,我们无法让现有 ELB 看到该实例可用 - ELB 运行状况检查不起作用(这适用于现有实例)。
健康检查配置如下:
HTTPS:443/proxy/login.php
(这并没有改变并且与现有实例一起工作)
ELB 监听器设置如下:
端口 80 -> 端口 80
端口 443 -> 端口 80(具有注册证书
我们在工作服务器的 httpd.conf 中还制定了以下规则:
<VirtualHost *:80>
RequestHeader set X-Forwarded-Proto "http"
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteCond %{HTTP_HOST} !^test. [NC]
RewriteCond %{HTTP_HOST} !^signup. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>
我已经将规则添加到新服务器,但还是没有成功。我甚至将 httpd.conf 从工作服务器复制到新服务器,但仍然没有成功。新服务器上还缺少什么?还有其他我需要担心的配置文件吗?
答案1
感谢大家的意见。我已通过在虚拟主机部分添加一个条件来解决这个问题,该条件排除了以下重定向到 443 的情况:
RewriteCond %{REQUEST_URI} !^/proxy/login\.php$