У меня есть несколько поддоменов (git.example.org, build.example.org и т. д.), у меня есть маршрутизатор с внешним IP-адресом, и у меня есть несколько виртуальных машин на главном компьютере с внутренними IP-адресами. Теперь я хочу направить git.example.org на внутренний IP-адрес 10.0.2.1 и build.example.org на внутренний IP-адрес 10.0.2.2. Как я могу это сделать?
Я настраиваю в маршрутизаторе, что весь трафик на порт 80 поступает на мой хост-компьютер с внутренним IP-адресом 10.0.2.3, и установил Squid на этом компьютере.
Я добавил в файл squid.conf следующие строки:
cache_peer 10.0.2.1 parent 80 0 no-query originserver name=server_1
cache_peer_domain server_1 git.example.org
cache_peer 10.0.2.2 parent 80 0 no-query originserver name=server_2
cache_peer_domain server_2 build.example.org
Но у меня это не работает. :( Любая помощь приветствуется.
С уважением, Нильс
Обновление: вот решение для Apache
Squid - не совсем оптимальное решение для обратного прокси - он сделает это с достаточным усилием, но это не тот инструмент, который я бы когда-либо использовал.
Для простых задач проксирования я бы использовал nginx HttpProxyModule(или Apache mod_proxy
, если вам так нравится), переключение на лак, если кеширование было приоритетом. Хорошая вещь в использовании веб-сервера заключается в том, что они простые, надежные, и вы, вероятно, уже используете их и, следовательно, немного о них знаете. Varnish, с другой стороны, немного более нишевый, но когда вам нужно что-то, что будет кэшировать ваш контент, это действительно утиные орешки.
Однако следует помнить обо всем этом, что перенаправление прокси на основе имени предназначено только для протоколов, которые поддерживают указание имени службы, к которой они подключаются, что значительно ограничивает ваш выбор протокола. Итак, если вы делаете что-либо, кроме HTTP, вы, вероятно, захотите поговорить со своим сетевым провайдером о еще нескольких IP-адресах (несмотря на то, что у нас заканчивается пространство IPv4). Это действительно делает жизнь намного проще.