OpenMandriva: Mageia (Mageia 9) 20/Agosto/2023 - Anuncio, Descargas.
Blogdrake recomienda descargar las imágenes de instalación (iso) vía torrent para evitar corrupción de datos, aprovechar mejor su ancho de banda y mejorar la difusión de las distribuciones.
Múltiples ip's en LAN para atender a múltiples dominios
Ey! ¡Mi primera entrada técnica con éste usuario! xD
Ésto está basado en ésta entrada de BULMA. Está orientado a Apache 1.x y yo me he limitado a adaptarlo para Apache 2.x, y le he puesto alguna cosilla al final.
Bueno, a raíz de éste hilo, ha acabado apareciendo la duda sobre cómo atender peticiones a diferentes dominios que hospedemos mediante diferentes máquinas de nuestra LAN. El escenario es el siguiente:
Dos dominios, vfmbofh.homelinux.net y nipordinero.blogdns.net. Ambos dominios están configurados para apuntar a nuestra ip pública y tenemos en nuestra LAN dos máquinas (virtuales o reales) que van a dar servicio a cada uno de nuestros dominios. Éstas máquinas son bestiaparda (192.168.1.2) y trasto (192.168.1.3)
El objetivo es que las peticiones al puerto 80 de vfmbofh.homelinux.net sea atendido por bestiaparda y las peticiones al puerto 80 de nipordinero.blogdns.net, las atienda trasto.
Métodos hay varios, pero uno de los más elegantes basándonos únicamente en apache, vendría a ser éste.
El truco es tener un único apache atendiendo realmente todas las peticiones. Luego, mediante un host virtual y el módulo proxy del propio apache, redirigiríamos las peticiones del dominio que no es a la máquina que sí sirve a dicho dominio.
Asumimos aquí que todo el rollo de los dominios y el router/firewall ya lo tenemos configuradito para que si tiramos un ping o una petición http a cualquiera de los dominios, conectaremos con nuestra ip pública.
Modificamos el /etc/hosts en bestiaparda
Nos logueamos como root, y editamos el archivo para que contenga una línea tal que así:
192.168.1.3 nipordinero.blogdns.net
Ojito, también puede hacerse sin modificar el /etc/hosts. Simplemente cambiando el nombre del dominio por la dirección ip cuando definimos el host virtual, lo tenemos hecho ;-)
Activamos el módulo proxy del Apache
Depende de cómo hayamos instalado Apache en el servidor, el módulo se habrá instalado con él o no. Si no ha sido así, un simple "urpmi apache-mod_proxy" servirá.
Luego, abrimos el /etc/httpd/conf/httpd.conf, y nos aseguramos de que las líneas
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_connect_module modules/mod_proxy_http.so
estén descomentadas.
Creamos el virtualhost que apuntará a trasto
Nos vamos a /etc/httpd/conf/vhosts.d, y editamos el archivo 00_default_vhosts.conf. Incluímos en él unas líneas tales que éstas:
<VirtualHost *:80> ServerName nipordinero.blogdns.net ProxyPass / http://nipordinero.blogdns.net/ ProxyPassReverse / http://nipordinero.blogdns.net/ ProxyPreserveHost On <location /> Allow from All </location> </Virtualhost>
La partícula ProxyPreserveHost la incluyo porque en trasto tengo un servidor lighttp que aloja varios dominios virtuales. Así la petición le llega "intacta".
Luego le hacemos a bestiaparda un service network restart (por lo de el /etc/hosts) y un service httpd restart y -si tenemos un apache configurado en trasto- listos.
Si miramos en los comentarios, veremos que aparte de más de un asias de hantebraso por la halluda urjente, hay algunas consideraciones interesantes sobre logs, seguridad, etc.
Por ejemplo, está el tema de los accesos. Si queremos controlar los accesos que se hacen a bestiaparda, en el access.log, lo tenemos hecho. Pero los accesos a trasto serán siempre desde la ip de bestiaparda. Podemos solucionarlo, añadiendo las líneas
CustomLog /ruta/al/archivo/access.trasto.log combined ErrorLog /ruta/al/archivo/error.trasto.log
A la directiva Virtualhost que hemos definido, asegurándonos de que los archivos existen (con touch) y que tienen los permisos apropiados. Obviamente éstos logs estarán en bestiaparda, pero al menos estarán.
Sobre la seguridad.
En la directiva Virtualhost, hemos definido la raíz del dominio nipordinero.blogdns.net y también su reverso. Esto palía en cierta medida la posibilidad de que algún listo se dedique a usar nuestro proxy (en esencia éso es lo que estamos haciendo) para acceder a servidores remotos enmascarando su propia ip con la nuestra. Además, en Apache 2.x la directiva ProxyRequests está a off por defecto, así que estamos un poquito mejor que antes, que había que definirlo a mano.
Bueno, creo que para un servidor de pà-sucat-amb-oli, es suficiente.
- Blog de vfmBOFH
- Entra a tu cuenta o crea una para poder comentar.
BOFH
# 99463 Merde
F.S.F.
Olvidé ponerle el "combined" a la directiva CustomLog...
Y también lo del location.
Ya está corregido.
Atentamente,
La voz ésa del interior de tu cabeza que oyes cuando lees algo.
DISCLAIMER: No tengo mucho tiempo para forear, así que voy al grano. Si crees que mi respuesta es ruda, seca, cortante o hiriente, no lo dudes: LO ES.
Usuario
# 99848 Gracias
Muchas gracias, recien me doy tiempo para implementarlo, funciona perfecto.
-
Saludos
-----------------------------------
¿ Es el hombre una creacion de Dios, o es Dios una creacion del hombre ?