为什么所有SSL子域都指向同一个IP

时间:2015-08-27 20:41:28

标签: ssl proxy apache2 virtualhost reverse-proxy

我将我的apache服务器设置为充当两个服务的反向代理。一个在192.168.1.50:5000上运行,另一个在192.168.1.121:8989上运行。

我希望https://apple.example.com转到192.168.1.50:5000https://orange.example.com转到192.168.1.121:8989

apple.example.com按预期工作,但出于某种原因,当我启用两个网站时,每当我尝试加载orange.example.com时,它都会加载apple并且地址Chrome为{{1 }}。如果我禁用https://apple.example.com vhost,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>

1 个答案:

答案 0 :(得分:0)

在尝试解决这个问题大约2个小时之后,我意识到因为我的重定向是永久性的,所以它被缓存在Chrome中。在某些时候,我的浏览器必须存储从orangeapple的永久重定向。当我意识到https://orange.example.com工作但http://apple.example.com会重定向到apple时,我想出了这一点。清除浏览器缓存后,它完美运行。非常令人沮丧。