2012-02-16 1 views
1

У меня есть несколько URL-адресов, поступающих на сервер. Я хочу, чтобы заголовки хостов пользователя перенаправляли трафик. Я пытаюсь использовать Apache для перенаправления этих запросов на различные серверы, которые находятся внутри нашего брандмауэра. Я получил часть решения, но, похоже, мне что-то не хватает.Apache host header proxy

Например, 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> 

Любая помощь приветствуется.

Scott

+0

Оказывается, чтобы быть легче, чем я это делал. Просто поместите это в свой httpd.conf: 'RewriteEngine On' ' RewriteCond% {HTTP_HOST}^hostHeader1 \ .mycompany \ .com $ [NC] ' ' RewriteRule (. *) Http: // internalServerNameOrIP $ 1 [P] ' Scott –

+0

Не используйте для этого правила перезаписи! Виртуальные хосты предназначены только для того, что вы пытаетесь сделать. См. Ответ @bitcloud и расширьте его. – Frans

ответ

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

ОП, вероятно, потребуется добавить ' ProxyPass/HTTP: // hostHeader2Handler/ ProxyPassReverse/HTTP: // hostHeader2Handler/ ServerName hostHeader2.mycompany.com ' И Я не думаю, что вы хотите «ProxyPreserveHost» в этом случае. – Frans