Apache2 X-Forwarded-Host包含错误的虚拟主机
我有一个充当反向代理的Apache服务器,其中配置了两个相同的VirtualHost:server1和server2(见下文)。server2.mydomain.com有一个指向server1.mydomain.com的CNAME DNS记录。当我击中http://server1.mydomain.com/some/resource,后端服务器会看到包含server2.mydomain.com的X-Forwarded-Host头。这是一个错误还是我的配置不正确 谢谢 -b 以下是我的虚拟主机的外观: 非SSL(重写为SSL)Apache2 X-Forwarded-Host包含错误的虚拟主机,apache2,Apache2,我有一个充当反向代理的Apache服务器,其中配置了两个相同的VirtualHost:server1和server2(见下文)。server2.mydomain.com有一个指向server1.mydomain.com的CNAME DNS记录。当我击中http://server1.mydomain.com/some/resource,后端服务器会看到包含server2.mydomain.com的X-Forwarded-Host头。这是一个错误还是我的配置不正确 谢谢 -b 以下是我的虚拟主机的外
服务器管理员webmaster@localhost
ServerName server1.mydomain.com
服务器别名服务器1
服务器签名关闭
重新启动发动机
重写条件%{HTTPS}关闭
重写规则(*)https://%{HTTP\u HOST}%{REQUEST\u URI}
服务器管理员webmaster@localhost
ServerName server2.mydomain.com
服务器别名服务器2
服务器签名关闭
重新启动发动机
重写条件%{HTTPS}关闭
重写规则(*)https://%{HTTP\u HOST}%{REQUEST\u URI}
SSL
服务器管理员webmaster@localhost
ServerName server1.mydomain.com
服务器签名关闭
文档根。。。
标题编辑位置^http:(.*)$https:$1
RequestHeader集X-Forwarded-Proto https
ProxyVia关闭
代理请求关闭
代理主机
SSLProxyEngine打开
ProxyPass/https://back-end.mydomin.com/
ProxyPassReverse/https://back-end.mydomain.com/
...
服务器管理员webmaster@localhost
ServerName server2.mydomain.com
服务器签名关闭
文档根。。。
标题编辑位置^http:(.*)$https:$1
RequestHeader集X-Forwarded-Proto https
ProxyVia关闭
代理请求关闭
代理主机
SSLProxyEngine打开
ProxyPass/https://back-end.mydomin.com/
ProxyPassReverse/https://back-end.mydomain.com/
...
我的坏习惯。我有重叠的SSL虚拟主机(在启动/停止Apache时没有注意到警告)。解决方案是在ports.conf中添加NameVirtualHost*:443
-b
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName server1.mydomain.com
ServerAlias server1
ServerSignature off
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName server2.mydomain.com
ServerAlias server2
ServerSignature off
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName server1.mydomain.com
ServerSignature off
DocumentRoot ...
<Directory ... />
Header edit Location ^http:(.*)$ https:$1
RequestHeader set X-Forwarded-Proto https
ProxyVia off
ProxyRequests Off
ProxyPreserveHost On
SSLProxyEngine On
ProxyPass / https://back-end.mydomin.com/
ProxyPassReverse / https://back-end.mydomain.com/
...
<VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName server2.mydomain.com
ServerSignature off
DocumentRoot ...
<Directory ... />
Header edit Location ^http:(.*)$ https:$1
RequestHeader set X-Forwarded-Proto https
ProxyVia off
ProxyRequests Off
ProxyPreserveHost On
SSLProxyEngine On
ProxyPass / https://back-end.mydomin.com/
ProxyPassReverse / https://back-end.mydomain.com/
...
<VirtualHost>