2016-11-23 105 views
-1

我有2个apache 2.4 serverA和serverB几个虚拟主机。所有传入的请求都到达serverA。重定向虚拟主机http和https到另一个虚拟主机服务器

如何将http和https请求从serverA转发到serverB的特定虚拟主机名称?

我WAMP的服务器A的设置是: 到我的hosts文件 127.0.0.7 example.com

的虚拟主机:

<VirtualHost *:*> 
    ServerName  example.com 
    ProxyPreserveHost On 
    ProxyPass   "/" "http://192.168.1.105/" 
    ProxyPassReverse "/" "http://192.168.1.105/" 
</VirtualHost> 

我serverB上的IP是192.168.1.105,我安装在虚拟主机上它具有相同的名称example.com

当我使用http://example.com我留在WAMP主页上像http://localhost ,当我使用https://example.com我有错误403(禁止)在serverA

在服务器A

回答

0

一个漫长的夜晚之后,我找到一个解决方案:

<VirtualHost *:80> 
    ProxyPreserveHost On 
    ProxyPass   "/" "http://192.168.1.105/" 
    ProxyPassReverse "/" "http://192.168.1.105/" 
    ServerName  example.com 
</VirtualHost> 
<VirtualHost *:443> 
    SSLProxyEngine on 
    SSLCertificateFile "${APACHE_DIR}/conf/ssl_example.com/server.crt" 
    SSLCertificateKeyFile "${APACHE_DIR}/conf/ssl_example.com/server.key" 
    ErrorLog "logs/example.com-ssl_error.log" 
    CustomLog "logs/example.com-ssl_access.log" common 
    ProxyPreserveHost On 
    ProxyPass   "/" "https://192.168.1.105/" 
    ProxyPassReverse "/" "https://192.168.1.105/" 
    ServerName  example.com 
</VirtualHost> 
0

虚拟主机添加一个简单的:

Redirect/https://serverb.examample.com/ 
+0

谢谢,但它不工作! – Oli013

+0

如果这不起作用,您要么不在正确的虚拟主机中添加此项,要么您没有到达此虚拟主机,或者..有其他干扰它的内容,如其他重定向或重写。 –