2016-11-23 74 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

如果這不起作用,您要麼不在正確的虛擬主機中添加此項,要麼您沒有到達此虛擬主機,或者..有其他干擾它的內容,如其他重定向或重寫。 –