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

Один IP, один порт, несколько серверов

Я ищу решение для пересылки одного общедоступного IP-адреса и одного конкретного порта на разные машины в зависимости от имени хоста (на данный момент он мне нужен только для HTTP).

Текущая настройка - NAT на обычном маршрутизаторе (он предоставляет только простой общедоступный порт на частный IP-адрес / переадресацию портов). При необходимости я могу добавить компьютер с Windows Server 2008 R2 перед маршрутизатором, но предпочитаю этого не делать.

Итак, в идеале я хотел бы иметь текущую настройку, а пересылка выполняется на одном из серверов Windows. Можно ли это сделать?

Попробуйте использовать виртуальные хосты на основе имени Apache и mod_proxy, чтобы перенаправить его на другой хост.

<VirtualHost *:80>
        ServerName      www.example.com
        ProxyRequests Off
        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>
        ProxyPreserveHost On
        ProxyPass / http://192.168.254.197/
        ProxyPassReverse / http://192.168.254.197/

</VirtualHost>
<VirtualHost *:80>
        ServerName      www.other_example.com
        ProxyRequests Off
        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>
        ProxyPreserveHost On
        ProxyPass / http://192.168.254.198/
        ProxyPassReverse / http://192.168.254.198/

</VirtualHost>

Вышеупомянутое будет перехватывать example.com и other_example.com на вашем переднем IP-адресе, а затем передавать каждый из них на другой IP-адрес.

Похоже, что вам действительно нужны виртуальные хосты на основе имен.

http://httpd.apache.org/docs/2.2/mod/core.html#namevirtualhost

Вы можете купить очень дорогие устройства у Cisco, f5 и других компаний, которые это делают, или, проще говоря, вы можете установить экземпляр кеш кальмара для прослушивания входящих запросов, а затем либо переписать URL-адрес на squid, либо сохранить локальные сопоставления имени / адреса в вашем файле hosts.

Если вам нужно обрабатывать HTTPS, запустите экземпляр станнель перед прокси-сервером HTTP, чтобы завершить работу SSL.