domain1.com 和 domain2.com 之间的 Apache 重定向,负载均衡器起作用

Apache redirection between domain1.com and domain2.com with load balancer in role

我有两个相同的应用程序绑定到端口 3000,使用经典负载均衡器在 2 个 EC2 服务器之间切换以进行故障控制。我们正在为这两个应用程序使用 domain1.com(ELB DNSlinked) 和 domain2.com(ELB DNSlinked)。现在,我必须在 apache 级别设置重定向,尝试了 RewriteEngine 的几种组合,但 none 正在工作。有没有人曾经使用过类似的结构或者其他人可以提供帮助?

<VirtualHost *:80>
ServerName olddomain.com 
ServerAlias www.olddomain.com 
RewriteEngine On 
RewriteCond %{HTTP_HOST}!newdomain.com$ [NC]
RewriteRule ^(.)$ newdomain.com/ [L,R=301] 
</VirtualHost>

RewriteEngine on RewriteCond %{HTTP_HOST} ^domain1.com RewriteRule ^(.*)$ newdomain.com/ [R=permanent,L]

我实现了购买以下配置;

<VirtualHost *:80>

ProxyPreserveHost On

RewriteEngine On

RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteCond %{HTTP_USER_AGENT} !ELB-HealthChecker/1.0
RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]

RewriteCond %{HTTP_HOST} !domain1.com$ [NC]
RewriteCond %{HTTP_USER_AGENT} !ELB-HealthChecker/1.0
RewriteRule ^(.*)$ https://www.domain1.com%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_USER_AGENT} !ELB-HealthChecker/1.0
RewriteRule ^(.*)$ https://www.domain1.com%{REQUEST_URI} [R=301,L]


ProxyPass / http://127.0.0.1:3000/
ProxyPassReverse / http://127.0.0.1:3000/