2012-02-16 81 views
1

我有多個網址進入服務器。我想要用戶主機頭來重定向流量。我正嘗試使用Apache將這些請求重定向到防火牆內的各種服務器。我已經得到了部分解決方案,但是,我似乎錯過了一些東西。Apache主機頭代理

例如,http://hostHeader1.mycompany.com應該被重定向到我們的防火牆內的服務器,該服務器處理hostHeader1的請求,並且結果應該交還給客戶端。 http://hostHeader2.mycompany.com應該被重定向到我們的防火牆內處理hostHeader2請求的服務器。等

現在,我有以下的,但是,它的所有流量重定向到http://hostHeader1Handler/

<VirtualHost *:*> 
ProxyPreserveHost On 
ProxyPass/http://hostHeader1Handler/ 
ProxyPassReverse/http://hostHeader1Handler/ 
ServerName hostHeader1.mycompany.com 
</VirtualHost> 

任何幫助表示讚賞。

斯科特

+0

結果比我做得更容易。把這個放在你的httpd.conf中: 'RewriteEngine On'' 'RewriteCond%{HTTP_HOST}^hostHeader1 \ .mycompany \ .com $ [NC]' 'RewriteRule(。*)http:// internalServerNameOrIP $ 1 [P] ' Scott – 2012-02-16 20:12:49

+0

不要對此使用重寫規則!虛擬主機僅用於你想要做的事情。查看@bitcloud的答案並對其進行擴展。 – Frans 2015-03-19 09:57:55

回答

2

這可能是您的第一個或唯一的虛擬主機。之前只需添加另一個虛擬主機。那麼這應該是新的默認值。

NameVirtualHost *:* 
<VirtualHost *:*> 
    ServerName your.default.domain.de 
DocumentRoot /var/www/pathToHTML 
</VirtualHost> 

<VirtualHost *:*> 
    ProxyPreserveHost On 
    ProxyPass/http://hostHeader1Handler/ 
    ProxyPassReverse/http://hostHeader1Handler/ 
    ServerName hostHeader1.mycompany.com 
</VirtualHost> 
+0

的OP可能需要添加 '<虛擬主機*:*> 的ProxyPass/HTTP:// hostHeader2Handler/ ProxyPassReverse/HTTP:// hostHeader2Handler/ 服務器名hostHeader2.mycompany.com ' 而在這種情況下,我認爲你不需要'ProxyPreserveHost'。 – Frans 2015-03-19 09:58:18