¿Cómo direcciono solicitudes web a mi red privada según el dominio en la URL?

¿Cómo direcciono solicitudes web a mi red privada según el dominio en la URL?

Guión:

Debido al número limitado de IP, varios dominios se resuelven en la misma dirección IP. Sin embargo, es posible que no todos estos dominios se ejecuten en el mismo servidor web, máquina virtual o incluso máquina dedicada. Por lo tanto, me gustaría enrutar los dominios en el punto de entrada a la red privada al lugar correcto, siempre que el dominio esté en la URL.

¿Cómo puedo hacer esto?

Respuesta1

La mayoría de los enrutadores/cortafuegos permiten redirigir el tráfico según un puerto determinado, por ejemplo, todo el tráfico SMTP (puerto 25) se redirige a 192.168.1.1.

Pero si tiene varios servidores para manejar su tráfico (1 servidor por dominio). Necesita instalar algo como un proxy inverso (nginxadmite esto para HTTP, IMAP, POP3). Por ejemplo, todo el tráfico al puerto 80 se redirige al 192.168.1.2que ejecuta nginx y, según el nombre del host, se redirigirá a localhosto 192.168.1.4.

Respuesta2

No estoy seguro de haber entendido completamente su pregunta. Si lo hago, tendrá varias máquinas ejecutándose como servidores HTTP detrás de NAT. Cuando llega alguna solicitud, desea reenviarla a uno de sus servidores, ¿verdad?

Si está utilizando Apache y mod_rewrite, es posible que pueda ejecutarlo de esta manera:

  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/

Salud.

Respuesta3

He hecho algo similar usando elProxyPassdirectiva bajo mod_proxy en Apache.

En primer lugar, utiliceAlojamiento virtual basado en nombrespara permitir que diferentes dominios alojen diferentes sitios usando la misma IP, luego, para los dominios asociados a un servidor web interno, tiene una configuración como esta:

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

Esto dará como resultado que todas las solicitudes http://somedomain.comse envíen de forma transparente a un sitio interno alojado en http://10.0.1.42.

HT

Respuesta4

Estaba buscando lo mismo hace un tiempo. Nunca tuve la oportunidad de hacerlo, pero esto es lo que pensé que podría funcionar.

use el modmódulo _proxy y use la noproxydirectiva.

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

información relacionada