Назад | Перейти на главную страницу

как перенаправить по имени хоста на разные веб-хосты за брандмауэром --mod_proxy?

Мне нужно быстрое решение, которое позволит мне разместить несколько веб-серверов за моим брандмауэром. Они находятся на разных компьютерах, поэтому я не могу использовать виртуальный хостинг apache. Я также не хочу использовать разные нестандартные порты для каждой машины.

Проблема в том, что мой маршрутизатор может перенаправить порт 443 только на одну машину. Я думал, что лучшим решением будет использовать обратный прокси или пересылку прокси, но у меня возникли проблемы с пониманием того, как это настроить.

Настроить:

Я попытался вставить следующее /etc/apache2/conf-available/proxy-pass.conf на server1:

SSLProxyEngine on
ProxyPass "/directory"  "https://server2.domain.com/directory" 
ProxyPass "/owncloud"  "https://server3.domain.com/owncloud" 

Это работает, но это не то, что я ищу.

Мне нужно направить весь трафик на сервер, обозначенный входящим доменным именем URL, независимо от каталога, потому что у меня много подкаталогов после базового URL.

Что-то вроде:

ProxyPass "https://server2.domain.com"  "https://server2.domain.com" 
ProxyPass "https://server3.domain.com"  "https://server3.domain.com"

Стоит ли искать другое решение, например pound, или есть способ сделать это с помощью apache. Я подумал, что у меня установлен apache, так что использовать?

Они находятся на разных компьютерах, поэтому я не могу использовать виртуальный хостинг apache

Собственно, это именно то, что вам нужно сделать;)

В руководстве об этом не говорится явно, но вы полностью изменяете прокси для конкретного хоста, делая / , корневой URL-адрес, цель директивы ProxyPass в записи виртуального хоста:

<VirtualHost *:80>
  ServerName host.example.com
  ProxyPass / http://internalserver.example.net/
  ProxyPassReverse / http://internalserver.example.net/
</VirtualHost>
<VirtualHost *:80>
  ServerName host2.example.com
  ProxyPass / http://other-internalserver.example.net/
  ProxyPassReverse / http://other-internalserver.example.net/
</VirtualHost>