我将我的 apache 服务器设置为充当两个服务的反向代理。一个在 192.168.1.50:5000
上运行,另一个在 192.168.1.121:8989
上运行。
我希望 https://apple.example.com
转到 192.168.1.50:5000
和 https://orange.example.com
转到 192.168.1.121:8989
。
apple.example.com
按预期工作,但出于某种原因,当我启用两个站点时,每当我尝试加载 orange.example.com
时加载 apple
并且地址 Chrome 是 https://apple.example.com
。如果我禁用 apple
虚拟主机,orange
会按预期工作
这是我的两个虚拟主机:
<VirtualHost *:443>
ProxyPreserveHost On
ProxyRequests Off
ServerName apple.example.com
ServerAlias www.apple.example.com
ProxyPass / http://192.168.1.50:5000/
ProxyPassReverse / http://192.168.1.50:5000/
<Location />
SSLRequireSSL
Order allow,deny
Allow from all
</Location>
SSLEngine On
SSLProxyEngine On
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</VirtualHost>
<VirtualHost *:80>
ServerName apple.example.com
ServerAlias www.apple.example.com
Redirect permanent / https://apple.example.com/
</VirtualHost>
<VirtualHost *:443>
ProxyPreserveHost On
ProxyRequests Off
ServerName orange.example.com
ServerAlias www.orange.example.com
ProxyPass / http://192.168.1.121:8989/
ProxyPassReverse / http://192.168.1.121:8989/
<Location />
SSLRequireSSL
Order allow,deny
Allow from all
</Location>
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</VirtualHost>
<VirtualHost *:80>
ServerName orange.example.com
ServerAlias www.orange.example.com
Redirect permanent / https://orange.example.com/
</VirtualHost>
最佳答案
在尝试解决这个问题大约 2 小时后,我意识到因为我的重定向是永久性的,所以它被缓存在 Chrome 中。在某些时候,我的浏览器一定存储了从 orange
到 apple
的永久重定向。当我意识到转到 https://orange.example.com
有效但 http://apple.example.com
会重定向到 时,我明白了这一点苹果
。清除浏览器缓存后,它运行良好。非常令人沮丧。
关于ssl - 为什么所有 SSL 子域都指向同一个 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32259050/