Мне нужно быстрое решение, которое позволит мне разместить несколько веб-серверов за моим брандмауэром. Они находятся на разных компьютерах, поэтому я не могу использовать виртуальный хостинг 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>