Cómo tener dos servidores web en maquinas diferentes, con una única IP
(38008 lectures)
Por Victor
vicsemar
(http://www.redes-linux.com)
Creado el 30/10/2003 11:50 modificado el 30/10/2003 11:50
|
Hay veces que nos es necesario tener dos maquinas diferentes, que lleven instalado un servidor web cada una, bajo una única IP publica.
Pues bien, este truco explica como configurar un Apache, para que cuando reciba peticiones sobre el dominio que sirve otra maquina de nuestra misma red local, le redirija dichas peticiones. |
Pagina1/1 |
Ya se sabe que esto no debería ser ningún problema con los Virtual Host de Apache, pues nuestro amigable servidor web, puede servir infinidad de dominios, sin necesidad de gastarnos el dinero en una segunda maquina.
Pero en ocasiones, no es necesario realizar este tipo de configuraciones en nuestra LAN, ya sea porque el jefe nos lo "aconseja", porque hay desarrolladores que necesitan acceso desde fuera, a ese servidor web que están machacando o porque hay cierto producto propietario que necesita ir en un servidor Web determinado (por buscarle alguna explicación).
Esto mismo debieron de pensar los desarrolladores de Apache, pues utilizando algunas directivas que veremos enseguida, nos dan la posibilidad de utilizar otra maquina con un servidor web instalado, por detrás.
Pero empecemos de una vez el trabajo:
Indicaciones Previas:
Imaginemos para nuestro ejemplo que tenemos un servidor web Apache, directamente conectado a nuestro Router, modem, firewall, etc.. cuya ip de la LAN es 192.168.1.1 y cuya ip publica es 1.1.1.1. Esta maquina sirve el dominio www.dominio1.com. Imaginemos ahora que detrás de este Apache, en otra maquina diferente hay otro servidor web instalado (ya sea otro Apache, IIS, etc, etc...). Dicha maquina tiene una ip privada 192.168.1.2 y sirve el dominio www.dominio2.com
Paso 1: Configurar nuestro /etc/hosts
En el fichero /etc/hosts del primer servidor (el que tendrá instalado el Apache), tendremos que indicarle quien es en realidad ese dominio, de esta manera:
192.168.1.2 www.dominio2.com
Paso 2: Configuramos el Apache
Editamos el fichero httpd.conf (que en debian está en /etc/apache/httpd.conf y en redhat en /etc/httpd/conf/httpd.conf) y primero comprobamos que existe una linea similar a esta:
LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so
Si esta comentada, descoméntala, si no esta siquiera, añadela a mano, pues este modulo suele venir incluido en el Apache que nos instala nuestra distribución preferida. Si compilas el Apache, acuerdate de incluir este modulo en la compilación.
Una vez añadimos esta linea, añadiremos un VirtualHost que haga referencia a www.dominio2.com:
# Si ponemos "*", nos evitamos el problema de tener ip dinámica
# que haga referencia a todas las ips de la maquina
NameVirtualHost *
<VirtualHost *>
ServerName www.dominio2.com
ProxyPass / http://www.dominio2.com/
ProxyPassReverse / http://www.dominio2.com/
</VirtualHost>
Y asunto terminado, ya podemos conectarnos desde fuera a nuestro segundo servidor web y visitar el dominio www.dominio2.com
Un saludo y perdonar si no esta muy bien redactado, pues es mi primer articulo en bulma. |
|
|
|
|
|
Comentarios Es posible que se hayan omitido algunos comentarios considerados poco constructivos
|
1. Re: Como tener dos servidores web en maquinas diferentes, con una única IP (30/10/2003 13:15, #17740) Por: Edwin Valencia (http://www.edwin.miraclesoa.com) |
| Holas...
funciona de maravilla! gracias vicsemar, creo que fuiste tu quien me constesto en la lista! :) el dilema que tenia era que no estaba poniendo nada en hosts!
gracias por la atencion prestada... |
|
2. Re: Como tener dos servidores web en maquinas diferentes, con una única IP (30/10/2003 13:43, #17741) Por: Kiko |
Un truco muy, pero que muy interesante.
Gracias :-)
EMHO: yo lo publicaria más como "truco" que como "noticia" (no se si webbulma te dejará cambiarlo una vez ya publicado...).
Un saludo |
|
3. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (30/10/2003 14:34, #17742) Por: El cobarde anónimo |
Hablo por hablar... porque no estoy muy metido (aún) en el mundillo de los servidores y se que tengo muchisimo que aprender... pero ese truco me viene a la memoria que he leído no-se-qué de granjas de servidores de páginas web.
Se me ocurre que:
Supongamos que tengo 4 máquinas que quiero convertir en una "granja de servidores". Una de ellas -machine1- la instalo con el acceso real a Internet. las otras tres -machine2, machine3 y machine4- forman parte de la red interna. En la máquina1 tengo el Apache configurado con Host virtuales de la manera que has descrito tú, haciendo de proxy a las siguientes máquinas donde estan las distintas páginas web. De esta forma si deseo ampliar mi "granja" solo debería añadirle al /etc/hosts la IP de la nueva máquina y añadir un nuevo host virtual por cada uno de las web que esa máquina será capaz de servir...
¿Esto es una burrada? ¿Hay una forma más elegante?
Un saludo |
|
4. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (30/10/2003 15:09, #17744) Por: ch3m4 (http://zaralinux.org) |
Este truco está bien cuando quieres separar físicamente las webs en varios servidores; pero cuando tienes una "granja de servidores" parece más apropiado que, en lugar de tener un servidor haciendo de Proxy transparente, se pase la petición a otro servidor utilizando algún tipo de balanceo de carga para así liberar el servidor principal y que pueda seguir atendiendo nuevas peticiones. Hay algún módulo de balanceo de carga para apache, y algunas utilidades sencillas como balance.
La petición a través de Proxy queda en espera en el servidor principal hasta que el servidor secundario devuelva la respuesta, por lo que puede provocar bastantes timeouts. |
|
|
5. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (30/10/2003 14:37, #17743) Por: ch3m4 (http://zaralinux.org) |
| Cabría todavía una posibilidad más, donde con un único dominio cada máquina se encargue de diferentes puertos. Por ejemplo: www.dominio.com en una máquina, y www.dominio.com:8080 en la otra máquina. Bastaría con que en la directiva VirtualHost se especifique el puerto y se ponga en la directiva Listen los puertos en escucha. |
|
6. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (30/10/2003 23:59, #17745) Por: El cobarde anónimo |
¿Esto podría servir para tener varios certificados SSL en una misma máquina con una sola IP pública?
El problema de tener varios certificados SSL en una misma maquina (usando virtualhost) con una sola IP es evidente: como la conexión inicial es cifrada, hay que descifrarla para saber a que host virtual se está accediendo. Si no sabes a qué host virtual estás accediendo, ¿cómo sabes cual de los diferentes certificados le corresponde?
Saludos. |
|
7. La zona desmilitarizada (31/10/2003 12:20, #17756) Por: OkisOki |
Este sistema se puede utilizar para tener un servidor en la DMZ (zona desmilitarizada) que redirija las peticiones a otro en la intranet de la empresa que es el que hace el trabajo.
La DMZ o zona desmilitarizada es un espacio entre dos barreras de firewalls. Desde internet (desde el exterior) los usarios se conectan a un servidor en la DMZ atravesando la primera linea de firewall. Este servidor y solo este esta autorizado solo a conectarse a otro servidor/puerto y solo a ese cruzando la segunda linea de firewall. De forma que en la DMZ no hay nada como bases de datos, servidores de archivos, usuarios internos pululando. Entodo caso algun 'honey-pot' ;)
El servidor de la intranet si que tiene acceso a los backend y puede preparar la informacion que se mostrara al usuario. En cambio el servidor de la DMZ no tiene acceso a nada excepto a una ip/puerto. Aunque se viera comprometido parcial o totalmente aun no podrian hacer gran cosa.
Por otro lado ninguna conexion externa llega a la intranet y ninguna conexion interna llega a la DMZ, que podria ser tambien un problema de seguridad en empresas muy grandes.
Esta es una manera de que apache haga de http-proxy. Aunque en estos casos se suelen usar cacharros especiales y combinar con balanceo de carga, fail-over, etc. Pero es una buena manera manera de montar un sistema de este tipo con menos maquinas. |
|
8. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (18/11/2003 14:02, #18132) Por: rafaexpo |
Me parece muy pero muy bueno
Ya lo había estado intentando una vez pero no encontré la forma, aunque estaba seguro que el apache lo tenía que permitir, porque con apache se puede todo!!!
Mil gracias porque ya me hacía falta |
|
9. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (01/02/2004 06:14, #19550) Por: J.F. Sebastian |
| ¿Es posible usar este sistema con una sola IP, un ordenador con Apache en el 80 y el otro con Apache en el 8080? Es decir, por un lado tendríamos 123.123.123.123:80 y por el otro 123.123.123.123:8080.
He probado este sistema pero no ha funcionado, no sé si por movidas del router o porque no es posible aplicar este método con una IP.
Gracias. |
|
10. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (27/02/2004 13:52, #19944) Por: desgraciado que no le va el apache |
yo lo tengo asi, solo tienes que enrutar el puerto 80 del ruter al puerto 80 de una maquina i el puerto 8080 del ruter al puerto 80 de la otra maquina.
En caso q los apaches esten escuchando en el puerto 80.
Por cierto he estado probando lo de los proxies i recibo este error:
* Syntax error on line 205 of /root/apache/conf/httpd.conf:
* Invalid command 'LoadModule', perhaps mis-spelled or defined by a module not included in the server configuration
* /root/apache/bin/apachectl start: httpd could not be started
la linea del LoadModule esta bien i la ruta del modulo es correcta. Alguna idea? |
|
11. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (29/08/2006 22:34, #34658) Por: Anónimo |
| No hace falta utilizar apache como proxy para lo que tu quieres. Basta que configures 2 virtualhosts indicandole el puerto por el que escucha cada uno, con las directivas "Port" y/o "Listen". |
|
|
12. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (07/04/2004 21:09, #20568) Por: Patricia |
| Hola
Amigo creo que tu publicación está muy buena, soy estudiante de informática, que estoy comensando a trabajar en un proyecto y tengo un problema parecido pero no igual; necesito publicar paginas JSP a travez de IIS o sea que el IIS sea quien reciba las peticiones request y que sea el tomcat por atras quien las levante; si me alguien me diera algun consejo, me diera alguna URL o documentacion sobre el tema se lo agradecería en el alma.
mi e_mail es patricia_pulposa@yahoo.es sino respóndanme aquí mismo.
saludos Patry |
|
13. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (01/11/2004 20:00, #24046) Por: Anónimo |
| Hola
Disculpa mi falta de conocimiento, esto es tambien para crear servidores espejos?
Osea que una misma ip y un mismo dominio tenga dos servidores teniendo el mismo contenido osea una especie de sistema redundante ¿me explico? |
|
14. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (04/03/2005 01:44, #25503) Por: Anónimo |
| pero el problema es que en la segunda maquina, en los logs aparece la ip de la primera, como podemos solucionar esto? |
|
15. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (08/03/2005 19:37, #25582) Por: Jesus Boadas |
| que pasa si mi direccion ip externa es 1.1.1.1 y mi dominio es www.dominio.com y tengo 2 servidores apache en mi red 192.168.0.10 y 192.168.0.11 y quiero que cuando se haga la peticion http://www.dominio.com me levante 192.168.0.10 y cuando haga la peticion http://www.dominio.com/server2 , me levante 192.168.0.11, es esto posible, como hago |
|
16. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (02/04/2005 15:45, #26061) Por: adaleyh |
En nuestra empresa lo tenemos montado asi. Nos parecio una buena solucion.
¿ Pero que me dices de la seguridad ?
Al poner en marcha el Proxy de Apache nos hemos encontrado con multitud de conexiones externas, que aprovechan el proxy para conectarse a otros servidores, para:
¿ Enviar spam ?
¿ Averiguar contraseñas ? ....
Os muestro unas muestras del log
De momento hemos conseguido que no consiguan sus propositos (Nuestro servidor les responde con un 403), pero las conexiones persisten sin parar, casi a razon de una cada 2 segundos.
¿ Teneis alguna experiencia, solucion, comentario ?
Saludos
207.234.147.36 - - [01/Apr/2005:18:04:29 +0200] "POST http://216.239.57.25:25/ HTTP/1.0" 403 401
...
218.17.90.98 - - [01/Apr/2005:18:48:56 +0200] "CONNECT smtp.mail.yahoo.com.cn:25 HTTP/1.0" 403 401
...
82.103.65.225 - - [01/Apr/2005:21:31:36 +0200] "POST http://www.singintomymouth.com/mt/mt-tb.cgi/1902 HTTP/1.1" 403 418
...
194.226.215.180 - - [01/Apr/2005:21:36:59 +0200] "CONNECT login.icq.com:443 HTTP/1.0" 403 401
...
220.174.161.203 - - [01/Apr/2005:21:48:56 +0200] "GET http://smarttrade.allyes.com/main/adfshow?user=1|5698|57506&db=smarttrade&border =0&local=yes&js=ie HTTP/1.0" 403 413
216.227.44.142 - - [01/Apr/2005:21:49:00 +0200] "GET http://l10.login.scd.yahoo.com/config/login?.redir_from=PROFILES?&.tries=1&.src= jpg&.last=&promo=&.intl=us&.bypass=&.partner=&.chkP=Y&.done=http://jpager.yahoo. com/jpager/pager2.shtml&login=liverpool_fit_couple_iso_bifem&passwd=90210 HTTP/1.0" 403 413
68.209.142.27 - - [01/Apr/2005:21:49:00 +0200] "GET http://edit.tpe.yahoo.com HTTP/1.0" 403 401
220.174.161.203 - - [01/Apr/2005:21:49:00 +0200] "GET http://union.8848.com/allyes.aspx?smarttradeadfclick=&uid=tongmeng&tid=4&cid=2 HTTP/1.0" 403 412
...
193.179.29.205 - - [02/Apr/2005:10:55:59 +0200] "HEAD HTTP://WWW.REDHOTLAUREN.COM/members/index.html HTTP/1.0" 403 -
24.86.185.25 - - [02/Apr/2005:10:56:08 +0200] "GET http://bt2.edit.client.dcn.yahoo.com/client/clogin?login=mastered_the_dragon&res ponse=17adbe0809ebd57abcd1f7eac2b6f220&challenge=YQZYPXg_ws2F0A1_b0sQZiGr3iN2&ve rsion=1 HTTP/1.0" 403 414
62.65.206.118 - - [02/Apr/2005:10:56:16 +0200] "CONNECT login.icq.com:443 HTTP/1.0" 403 401
193.179.29.205 - - [02/Apr/2005:10:56:18 +0200] "HEAD HTTP://WWW.REDHOTLAUREN.COM/members/index.html HTTP/1.0" 403 -
203.218.96.226 - - [02/Apr/2005:10:56:28 +0200] "GET http://edit.tpe.yahoo.com/config/login?.redir_from=PROFILES?&.tries=1&.src=jpg&. last=&promo=&.intl=us&.bypass=&.partner=&.chkP=Y&.done=http://jpager.yahoo.com/j pager/pager2.shtml&login=ming-hung-wu&passwd=sugar HTTP/1.0" 403 413
65.33.212.80 - - [02/Apr/2005:10:56:29 +0200] "POST http://www.rvhit.com HTTP/1.0" 403 401
144.136.94.150 - - [02/Apr/2005:10:56:41 +0200] "GET http://www.yahoo.com HTTP/1.0" 403 401
y asi sin parar ... :-(
SOCORRO !!! |
|
17. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (02/04/2005 15:48, #26062) Por: adaleyh |
| Olvidaba decir que gracias a esta maravilla, tenemos nuestra ip bloqueada en multitud de listas anti spam
gracias |
|
|
18. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (23/04/2005 12:20, #26351) Por: aCiDRaiN (http://www.linuxzamora.org) |
| En mis servidores este "truco" al parecer no funciona:
Pasteo mi config:
/etc/hosts
192.168.1.18 www.nocatintranet.net
/etc/apache-ssl/httpd.conf
ServerName www.nocatintranet.net
ProxyPass / https://www.nocatintranet.net/
ProxyPassReverse / https://www.nocatintranet.net/
/etc/apache-ssl# /etc/init.d/apache-ssl restart
Restarting apache-sslstart-stop-daemon: warning: failed to kill 28123: No such process
failed
No arranca apache-ssl :S |
|
|
|
20. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (06/07/2005 19:24, #27386) Por: Anónimo |
| disculpen pero soy novato, donde encuentro lo refernte al paso 1?
saludos |
|
21. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (13/10/2005 05:57, #28867) Por: Luis (http://www.huaycan.com) |
Se puede tener dos dominios apuntando a una IP de un sólo servidor q tiene 2 sites web, me explico: si tengo www.dominio1.com y www.dominio2.com, el primer dominio mande a una web q este alojada en una carpeta WEB1 del servidor y el segundo dominio mande a otra web alojada en una carpeta WEB2 ambas webs en el mismo servidor.
Esa es mi duda, quiesiera q alguien la resuelva... |
|
22. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (22/10/2005 14:38, #29037) Por: BichiTor (http://www.rederex.com) |
Acabo de enterarme de que si..., de echo estaba leyendo desde arriba y no se si igual a alguien mas le pueda servir esta informacion.
Se trata de poner un script en la web inicial (index.htm) redireccionando los diferentes dominios a sus respectivos directorios. ejemplo:
html
head
SCRIPT language=javascript
var whois=location+" "
if (whois.indexOf("http://www.gabbagabba.net") != -1)
{ window.location ="gabbagabba/index.html" }
if (whois.indexOf("http://www.rederex.com") != -1)
{ window.location ="rederex/index.html" }
/SCRIPT
/head
/html
kite los signos "mayor menor" de las etiquetas por que sino no salia...
Y asi tantos dominios o subdominios como queramos.
Un saludo. |
|
23. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (29/08/2006 22:28, #34657) Por: Anónimo |
| No hace falta utilizar javascript, utiliza los virtualhost de Apache que para eso estan... |
|
|
24. pregunta (27/10/2005 18:03, #29126) Por: loncho |
| quiero saber donde hago estos cambios ??
# Si ponemos "*", nos evitamos el problema de tener ip dinámica
# que haga referencia a todas las ips de la maquina
NameVirtualHost *
ServerName www.dominio2.com
ProxyPass / http://www.dominio2.com/
ProxyPassReverse / http://www.dominio2.com/
EN vi httpd.conf o NO? |
|
25. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (04/11/2005 16:15, #29235) Por: Anónimo |
| Me parece interesante es truco, pero soy nuevo en esto de linux, pero, se alguito pero no como la mayoria de uds. mi consulta es que libreria cargo en linux red hat 9.0 en loadmodule proxy_module , gracias por la respuesta
al comentario |
|
26. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (28/01/2006 11:00, #30733) Por: Anónimo |
en Apache:
fichero= /apache/conf/httpd.conf
al final del todo.
{VirtualHost *:80}
ServerAdmin webmaster@dominio1.com
DocumentRoot "C:/AppServ/www/dominio1/"
ServerName www.dominio1.com
#ErrorLog logs/dummy-host.example.com-error_log
#CustomLog logs/dummy-host.example.com-access_log common
{/VirtualHost}
{VirtualHost *:80}
ServerAdmin webmaster@dominio2.com
DocumentRoot "C:/AppServ/www/dominio2/"
ServerName www.dominio2.com
#ErrorLog logs/dummy-host.example.com-error_log
#CustomLog logs/dummy-host.example.com-access_log common
{/VirtualHost}
ETC...
De esa forma el servidor sabe desde donde hacen la llamada redirigiendolos a sus respectivos dominios.
***los parentesis son signos de menor-mayor y mayor-menor respectivamente.***
|
|
27. Como hacerlo con Windows 2003 y IIS (15/02/2006 12:45, #30998) Por: Anónimo |
| Por mas que he leido, me gusta esta solucion pero claro...
Me gustaria saber si es posible hacerlo y como, con maquinas windows y IIS?
Gracias |
|
28. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (04/07/2006 18:01, #33569) Por: Anónimo |
| Hola gracias por el articulo, mi problema es que no encuentro ni el modulo que comentas ni se donde esta el paso 1 el qrchivo donde indico que el dominio 2 esta en la direccion ip internat, si me podrias ayudar que estoy liado con un proyecto de mi escuela, y muchas gracias a antemano... |
|
29. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (04/07/2006 18:08, #33570) Por: Anónimo |
| Paso 1: Configurar nuestro /etc/hosts
192.168.1.2 www.dominio2.com
Esta parte no se como hacerla y si se puedo con el apache bajo Windows
Paso 2: Configuramos el Apache
LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so
Este modulo no lo tengo y trato de agregarlo el el apache me da fallos para iniciar...
Tengo el apache bajo windows y si alguien me puede ayudar para solucionar este tema, muchas gracias y disculpen la novatadaa |
|
30. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (19/10/2006 18:54, #35793) Por: Anónimo |
| me pasa lo mismo ayuda porfavor gracias de ante mano |
|
|
31. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (02/01/2007 16:34, #37524) Por: Anónimo |
| Consulta
soy un poco novato en esto de linux, esta configurado en la red donde trabajo el servidor apache y todo.. pero me asusta si al modificar algo deje la crema en el servidor...
la administracion de los dominios la acemos con ispconfig
tenemos un pc con dns
bueno mi consulta...
la segunda parte del paso 2 donde se hace...
en el mismo archivo o en otro...
Gracias de ante mano
Alfonso Araya R. |
|
32. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (17/01/2007 18:10, #37840) Por: Ramon Fredy |
| Hola, muy interesante el articulo, pero mi pregunta es si requiero tener registrados dominios diferentes para cada servidor asociados a la misma IP. Gracias |
|
33. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (30/01/2007 00:15, #38151) Por: Anónimo |
| de pronto este link les ayude a muchos... www.germanmurcia.com |
|
34. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (01/02/2007 06:02, #38201) Por: Ramon Fredy |
| Hola aqui dejo esta inquietud, resulta que tengo corriendo un servidor Web con apache al cual puedo acceder desde internet, ahora tengo en mi lan un segundo servidor web que sirve a una biblioteca digital, cuento con una Unica Ip Publica y un Unico dominio, lo que requiero es hacer que el servidor de la Lan (Biblioteca) pueda ser accedido pero como un subdominio del primer servidor, es decir que pueda acceder a el con www.biblioteca.midominiopublico.edu, espero me puedan ayudar, he encontrado algunas respuestas relacionadas con VirtualHost pero no lo he podido poner en marcha. Gracias |
|
35. Re: Cómo tener dos servidores web en maquinas diferentes, con una única IP (31/03/2007 20:37, #39406) Por: Juan de Dios |
| Muy bueno, pero digamos que los servidores web sean Apache 2??? |
|