2012-02-16 46 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