Могу ли я разместить два отдельных веб-сервера в локальной сети с внешним миром через 1 IP-адрес?

Я веб-программист с домашней веб-разработкой. У меня дома есть несколько веб-серверов с подключением FIOS. У меня есть собственный домен, указывающий на мой маршрутизатор через службу пользовательского домена dyndns.org.

Мой интернет-провайдер дает мне ОДИН статический IP-адрес, что на данный момент позволяет мне настроить маршрутизатор для направления исходящего веб-трафика с одного сервера через порт 80, а с другого сервера — через порт 8080. Это отстой, потому что в наши дни многие компании блокируют порт 8080, вызывая мои корпоративные клиенты не смогут подключиться к моему второму веб-серверу.

Есть ли способ направить обычный старый веб-трафик порта 80 на ДВА ОТДЕЛЬНЫХ веб-сервера внутри моей сети, используя два отдельных имени хоста?

Например. Я хочу, чтобы http://webserver1.mydomain.com обращался к одному веб-серверу в моей сети, а http://webserver2.mydomain.com — к другому веб-серверу, и оба набора трафика обслуживались через порт 80.

Это вообще возможно? Если нет, могу ли я сделать хак, программно перенаправив трафик с одного веб-сервера на другой?

Для записи я запускаю стек MS Windows Server 2008 IIS 7.0, маршрутизатор D-link DIR-655 и использую DynDNS для нужд своего домена.


person Matias Nino    schedule 16.01.2009    source источник
comment
К вашему сведению, вы также можете получить больше IP-адресов от Verizon; У меня 8. Я не верю, что была даже дополнительная плата.   -  person derobert    schedule 16.01.2009
comment
Если у вас статический IP, зачем вам использовать DynDNS? Либо ваш IP статический, либо динамический...   -  person Gareth    schedule 16.01.2009
comment
Удобство наличия доменного имени, указывающего на IP. Так что не 12.42.136.43 нужно помнить, а ilikepancakes.dyndns.com   -  person FryGuy    schedule 16.01.2009


Ответы (6)


Название решения, которое вы ищете, называется обратным прокси-сервером.
Имеются реализации в apache, squid и Mircosoft ISA Server.

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

У меня были клиенты, использующие обратный прокси-сервер squid с большим объемом, и он отлично работает!

Это имеет тенденцию портить ваши веб-журналы на веб-сервере, хотя весь трафик будет исходить от вашего внутреннего прокси-хоста, который выполняет перенаправление/перезапись.

person Nick Kavadias    schedule 16.01.2009
comment
+1 для ISA-сервера. Я знаю Матиаса в реальной жизни, и он был бы готов к этому. - person Chris; 06.05.2010
comment
На самом деле я использовал модуль IIS7 ARR+Rewrite. Я хотел использовать ISA Server, но он был НАСТОЛЬКО СТАРЫМ и прекращен. Новый системный центр выглядит излишним, поэтому модули IIS7 хорошо подходят и работают нормально (хотя проксирование SSL требует серьезной настройки). - person Matias Nino; 17.01.2013

Да, для этого используйте модуль перезаписи IIS7.

person Ana Betts    schedule 16.01.2009

Какой-то вариант маршрутизации прикладного уровня может быть вашим вариантом. В этой статье показано, как это сделать на сервере ISA (используя веб-правила)

http://www.codinghorror.com/blog/archives/000984.html

person Midhat    schedule 16.01.2009

Возможно, вы сможете настроить apache с 2 виртуальными хостами, а затем в каждый из их блоков поместить прокси соответствующего сайта в вашей локальной сети:

В хосте 1:

ProxyRequests Off

<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ProxyPass / http://192.168.0.49/
ProxyPassReverse / http://192.168.0.49/

В хосте 2:

ProxyRequests Off

<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ProxyPass / http://192.168.0.50/
ProxyPassReverse / http://192.168.0.50/

Вам понадобится mod_proxy, и я даже не уверен, что это должно сработать

person FryGuy    schedule 16.01.2009

Почему бы не упростить задачу и просто заказать или запросить второй IP-адрес для своей учетной записи? Это кажется гораздо более простым решением, чем запутанная установка оборудования и/или программного обеспечения. Просто не говорите им, что вы размещаете веб-сайты, потому что интернет-провайдеры обычно не любят, когда люди делают это на резидентных учетных записях (я действительно удивлен, что они не блокируют порт 80).

person Marc Novakowski    schedule 16.01.2009
comment
Блокировка порта 80 на учетных записях res. Это бизнес акт. - person Matias Nino; 28.04.2010

Это старый пост, но у меня та же проблема. Verizon дает только 1 ip. Если вы хотите большего, вы должны использовать их бизнес-план примерно за 100 долларов в месяц. У меня есть домашний сервер RedHat и Windows 2008r2. У меня есть 2 доменных имени godaddy, оба указывающие на мой IP-адрес Verizon wan. Мой сервер Windows использует порт 80 для mysite1.com и мой порт 8080 Linux для mysite2.com. Я не использую DYN, потому что хочу использовать свои собственные доменные имена. Я сделал заголовок хоста сайта IIS, чтобы направить mysite2.com на мою Linux-систему. Оба домена работают онлайн, но ввод mysite2.com ведет к mysite2.com:8080 в окне URL-адреса браузера. Я не думаю, что есть способ скрыть 8080. По крайней мере, не правильно. Я работаю в государственном учреждении, и они блокируют сайты, использующие порт 8080. Они также блокируют домены, которые перенаправляются с маскировкой/фреймом. Так что маскировка 8080 приведет к тому, что ваш сайт будет заблокирован. Лучшее решение для Verizon — предложить 2 IP-адреса по разумной цене таким людям, как мы!

person paulcap1    schedule 20.12.2012