Como faço para rotear solicitações da web para minha rede privada dependendo do domínio no URL?

Como faço para rotear solicitações da web para minha rede privada dependendo do domínio no URL?

Cenário:

Devido ao número limitado de IPs, vários domínios são resolvidos no mesmo endereço IP. No entanto, nem todos esses domínios podem ser executados no mesmo servidor web, VM ou mesmo máquina dedicada. Portanto, gostaria de encaminhar os domínios no ponto de entrada da rede privada para o local certo, desde que o domínio esteja na URL.

Como posso fazer isso?

Responder1

A maioria dos roteadores/firewalls permitem redirecionar o tráfego com base em uma determinada porta, por exemplo, todo o tráfego SMTP (porta 25) é redirecionado para 192.168.1.1.

Mas se você tiver vários servidores para lidar com seu tráfego (1 servidor por domínio). Você precisa instalar algo como um proxy reverso (nginxsuporta isso para HTTP, IMAP, POP3). Por exemplo, todo o tráfego para a porta 80 é redirecionado para 192.168.1.2a qual executa o nginx e, dependendo do nome do host, será redirecionado para localhostou 192.168.1.4.

Responder2

Não tenho certeza se entendi completamente sua pergunta. Se eu fizer isso, você terá várias máquinas rodando como servidores HTTP atrás de NAT. Quando chega alguma solicitação, você quer encaminhá-la para um de seus servidores, certo?

Se você estiver usando Apache e mod_rewrite, poderá conseguir desta forma:

  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/

Saúde.

Responder3

Eu fiz algo semelhante usando oProxyPassdiretiva em mod_proxy no Apache.

Em primeiro lugar, useHospedagem Virtual Baseada em Nomepara permitir que diferentes domínios hospedem sites diferentes usando o mesmo IP, então, para os domínios associados a um servidor web interno, você tem uma configuração como esta:

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

Isso fará com que todas as solicitações http://somedomain.comsejam enviadas de forma transparente por proxy para um site interno hospedado em http://10.0.1.42.

HTH

Responder4

Eu estava procurando a mesma coisa há um tempo atrás. Nunca tive tempo de fazer isso, mas aqui está o que achei que poderia funcionar.

use o modmódulo _proxy e use a noproxydiretiva.

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

informação relacionada