Как направлять веб-запросы в мою частную сеть в зависимости от домена в URL-адресе?

Как направлять веб-запросы в мою частную сеть в зависимости от домена в URL-адресе?

Сценарий:

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

Как я могу это сделать?

решение1

Большинство маршрутизаторов/межсетевых экранов позволяют перенаправлять трафик на основе определенного порта, например, весь SMTP-трафик (порт 25) перенаправляется на 192.168.1.1.

Но если у вас есть несколько серверов для обработки трафика (по одному серверу на домен). Вам нужно установить что-то вроде обратного прокси-сервера (nginxподдерживает это для HTTP, IMAP, POP3). Например, весь трафик на порт 80 перенаправляется на , на 192.168.1.2котором работает nginx, и в зависимости от имени хоста будет перенаправляться на localhostили 192.168.1.4.

решение2

Я не уверен, что полностью понял ваш вопрос. Если да, то у вас есть несколько машин, работающих как HTTP-серверы за NAT. Когда приходит какой-то запрос, вы хотите переслать его на один из своих серверов, верно?

Если вы используете Apache и mod_rewrite, вы можете сделать это следующим образом:

  1. http://www.linuxquestions.org/questions/linux-networking-3/apache-forward-request-to-another-box-264864/

  2. http://www.sematopia.com/2007/09/apache-forwarding-requests-to-another-server/

Ваше здоровье.

решение3

Я сделал нечто подобное, используяProxyPassдиректива в mod_proxy в Apache.

Прежде всего, используйтеВиртуальный хостинг на основе имениЧтобы разрешить разным доменам размещать разные сайты, используя один и тот же IP-адрес, для доменов, связанных с внутренним веб-сервером, у вас есть такая конфигурация:

# Within your VirtualHost definition
ServerName somedomain.com
ProxyPass / http://10.0.1.42/
ProxyPassReverse / http://10.0.1.42/

Это приведет к тому, что все запросы будут http://somedomain.comпрозрачно перенаправляться на внутренний сайт, размещенный на http://10.0.1.42.

НТН

решение4

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

используйте modмодуль _proxy и используйте noproxyдирективу.

http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#noproxy

Связанный контент