[opensuse-es] Descativar dominios virtuales en Apache2
Hola, Tengo que desactivar (hacer que no sean accesibles, al menos en remoto) momentáneamente unos dominios virtuales (basados en nombres) en apache2. Creo que la forma más rápida, sencilla y más fácilmente recuperable pasaría por renombrar los archivos de cada dominio a /etc/apache2/vhosts.d/dominio_a_desactivar.conf.off (nótese la terminación del archivo "off"), por ejemplo, para evitar que se carguen. Lo que me interesa es volver a activarlos rápidamente, es decir, una especie de interruptor "on / off". ¿Hay alguna otra forma "elegante" (es decir, documentada) de hacerlo? :-) Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
Camaleón escribió:
¿Hay alguna otra forma "elegante" (es decir, documentada) de hacerlo? :-)
Si >:) modifica tus virtual host e la siguiente manera
El 4/01/09, Cristian Rodríguez escribió:
Camaleón escribió:
¿Hay alguna otra forma "elegante" (es decir, documentada) de hacerlo? :-)
Si >:) modifica tus virtual host e la siguiente manera
..... </Virtualhost> </IfDefine> luego si quieres desactivar el dominio
a2enflag DOMINIO_A_INACTIVO; rcapache2 reload
si ya terminaste de hacer tus cambios
a2disflag DOMINIO_A_INACTIVO; rcapache2 reload
(si reload no te funciona para este uso, usa restart)
Perdón por la tardanza... siempre se me olvida que estoy en remoto y
me ha dado por hacer un "rcnetwork reload" del que no he podido salir
sin ayuda "local" O:-P
Bueno, pues he editado el archivo:
/etc/apache2/vhosts.d/dominio1.conf
Camaleón escribió:
¿Alguna idea? :-?
tienes un virtualhost __default__ configurado ? -- "We have art in order not to die of the truth" - Friedrich Nietzsche Cristian Rodríguez R. Platform/OpenSUSE - Core Services SUSE LINUX Products GmbH Research & Development http://www.opensuse.org/
2009/1/4, Cristian Rodríguez:
Camaleón escribió:
¿Alguna idea? :-?
tienes un virtualhost __default__ configurado ?
Sí, el del SSL para el dominio que quiero desactivar que está en
"/etc/apache2/vhosts.d/dominio1com-ssl.conf"
<IfDefine SSL>
El 4/01/09, Camaleón escribió:
Sí, el del SSL para el dominio que quiero desactivar que está en "/etc/apache2/vhosts.d/dominio1com-ssl.conf"
<IfDefine SSL>
<VirtualHost _default_:443> (...)
Bueno, pues he probado a ponerlo como los otros, quitando el "_default_":
<IfDefine SSL>
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El 2009-01-05 a las 10:39 +0100, Camaleón escribió:
Hasta he eliminado del /etc/hosts la ip y el nombre de los dominios ¡y el apache los sigue cargando! Y no tengo un servidor dns local instalado... así que ahora tengo dos preguntas O:-)
a) ¿De dónde toma pues los datos el apache para proporcionar un hosting vitual basado en nombres si en el /etc/hosts no están definidos y tampoco en bind9? >:-?
Del apache, ni idea, pero prueba con las pruebas tipicas de host y ping. - -- Saludos Carlos E.R. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEARECAAYFAklh8F0ACgkQtTMYHG2NR9XjngCglkn7Qne3V++wXehQQmbevZcO D6cAn1i23AXryuE0bn1YKxdxd6Almc6f =ca0W -----END PGP SIGNATURE-----
El 5/01/09, Carlos E. R. escribió:
El 2009-01-05 a las 10:39 +0100, Camaleón escribió:
a) ¿De dónde toma pues los datos el apache para proporcionar un hosting vitual basado en nombres si en el /etc/hosts no están definidos y tampoco en bind9? >:-?
Del apache, ni idea, pero prueba con las pruebas tipicas de host y ping.
Bueno, a ver, son servidores accesibles desde Internet, es decir, tienen sus dns externos configurados y sin problemas. Ping responde al nombre y a la IP y host... host... host... ¡Arg, uhg, yeeech! << dolor, mucho dolor ¡"Command not found"! ¿Pero qué...? Pues que no lo tengo instalado, a ver el dig... dig... dig... ¡Tampoco lo tengo! Maldita platilla de instalación de texto >:-) (nota mental: instalar las utilidades de red en este servidor) ... El caso es que son accesibles desde la "webe", pero la pregunta es cómo apache puede distinguir entre ellos y enrutar las peticiones a uno u otro si el origen es el mismo (la ip interna que he configurado en el router) :-? Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El 2009-01-05 a las 13:33 +0100, Camaleón escribió:
El 5/01/09, Carlos E. R. escribió:
El 2009-01-05 a las 10:39 +0100, Camaleón escribió:
a) ¿De dónde toma pues los datos el apache para proporcionar un hosting vitual basado en nombres si en el /etc/hosts no están definidos y tampoco en bind9? >:-?
Del apache, ni idea, pero prueba con las pruebas tipicas de host y ping.
Bueno, a ver, son servidores accesibles desde Internet, es decir, tienen sus dns externos configurados y sin problemas. Ping responde al nombre y a la IP y host... host... host...
¡Arg, uhg, yeeech! << dolor, mucho dolor
¡"Command not found"! ¿Pero qué...? Pues que no lo tengo instalado, a ver el dig... dig... dig...
¡Tampoco lo tengo! Maldita platilla de instalación de texto >:-)
(nota mental: instalar las utilidades de red en este servidor) ...
X'-) No te olvides del traceroute. Es posible que estés accediendo a la web interna por la ruta externa.
El caso es que son accesibles desde la "webe", pero la pregunta es cómo apache puede distinguir entre ellos y enrutar las peticiones a uno u otro si el origen es el mismo (la ip interna que he configurado en el router) :-?
Yo no se muy bien como trabaja el apache con los sitios virtuales, no lo he experimentado para saberlo. - -- Saludos Carlos E.R. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEARECAAYFAklh/8oACgkQtTMYHG2NR9XhiwCgiMAGuS63M0Ld/zRfu6BTu7rb naEAoIpYSe9AtjLhpBMSzcncp7NS/tq/ =FAJb -----END PGP SIGNATURE-----
El 5/01/09, Camaleón escribió:
b) ¿Alguien sabe cómo se puede desactivar un dominio virtual?
Bueno, pues "a malas" y "a lo bruto" porque el flag no sé cómo va :-P Leyendo el "RTFM": http://httpd.apache.org/docs/2.2/vhosts/name-based.html Pone: *** "(...) As a consequence, the first listed virtual host is the default virtual host. The DocumentRoot from the main server will never be used when an IP address matches the NameVirtualHost directive. If you would like to have a special configuration for requests that do not match any particular virtual host, simply put that configuration in a <VirtualHost> container and list it first in the configuration file. *** Es decir, que el primer archivo listado en /vhosts.d es el que se usa cuando en la configuración de los virtual hosts no se define ningún nombre que concuerde con la petición que recibe el apache. ¿Qué he hecho? Pues crear un nuevo dcoumento de configuración para que sea "el primero": /etc/apache2/vhosts.d/0host.conf Y definir en él: "ServerAdmin", "ServerName", "ServerAlias", "DocumentRoot" apuntando a una nueva ruta con una página donde se indica que el dominio que quiero desactivar no está disponible. Lo de los flags me interesa, pero es que no logro hacerlo funcionar :-/ Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 El 2009-01-05 a las 13:54 +0100, Camaleón escribió:
El 5/01/09, Camaleón escribió:
b) ¿Alguien sabe cómo se puede desactivar un dominio virtual?
Bueno, pues "a malas" y "a lo bruto" porque el flag no sé cómo va :-P
Leyendo el "RTFM":
http://httpd.apache.org/docs/2.2/vhosts/name-based.html
Pone:
*** "(...) As a consequence, the first listed virtual host is the default virtual host. The DocumentRoot from the main server will never be used when an IP address matches the NameVirtualHost directive. If you would like to have a special configuration for requests that do not match any particular virtual host, simply put that configuration in a <VirtualHost> container and list it first in the configuration file. ***
¡Anda!
Es decir, que el primer archivo listado en /vhosts.d es el que se usa cuando en la configuración de los virtual hosts no se define ningún nombre que concuerde con la petición que recibe el apache.
¿Qué he hecho? Pues crear un nuevo dcoumento de configuración para que sea "el primero":
Claro, el primero es el que toma por defecto, eso dice.
/etc/apache2/vhosts.d/0host.conf
¿Lo del cero? ¿Para que se liste antes? Lo que dice arriba es que lo listes tú primero dentro del fichero de configuración.
Y definir en él: "ServerAdmin", "ServerName", "ServerAlias", "DocumentRoot" apuntando a una nueva ruta con una página donde se indica que el dominio que quiero desactivar no está disponible.
Ah, espera, lo que haces es susbtituir el dominio anulado por otro, ¿no?
Lo de los flags me interesa, pero es que no logro hacerlo funcionar :-/
Supongo que con un ifdefthenelse. En vez de desactivar un dominio, lo substituyes por otro "nulo". - -- Saludos Carlos E.R. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEARECAAYFAkliCk0ACgkQtTMYHG2NR9VfDACfeSC7LDnsRQe9Jm5H95/arUnv W6cAniSJVmNr+tMZkOv08DHZ4Q9QuSWZ =8j/u -----END PGP SIGNATURE-----
El 5/01/09, Carlos E. R. escribió:
El 2009-01-05 a las 13:54 +0100, Camaleón escribió:
/etc/apache2/vhosts.d/0host.conf
¿Lo del cero? ¿Para que se liste antes? Lo que dice arriba es que lo listes tú primero dentro del fichero de configuración.
Sí, le he puesto ese nombre por eso O:-) Pero ahora que lo dices, seguramente lo podría haber puesto (definido más bien) en el /etc/apache2/httpd.conf que es "master" (por decirlo de alguna manera), pero prefiero no tocarlo e ir poniendo los dominios virtuales en su directorio, por separado, así no mezclo...
Y definir en él: "ServerAdmin", "ServerName", "ServerAlias", "DocumentRoot" apuntando a una nueva ruta con una página donde se indica que el dominio que quiero desactivar no está disponible.
Ah, espera, lo que haces es susbtituir el dominio anulado por otro, ¿no?
Sí, eso es. Es que no veía otra forma de que no cargara el dominio1, el que quería desactivar. Eliminando el archivo de configuración del dominio1, me cargaba el dominio2 cuando ponía el navegador la dirección del dominio1 (al no encontrar una concordancia, recuerda que carga por defecto el primero de la lista del /vhosts.d, que era el dominio2).
Lo de los flags me interesa, pero es que no logro hacerlo funcionar :-/
Supongo que con un ifdefthenelse. En vez de desactivar un dominio, lo substituyes por otro "nulo".
He probado todas las combinaciones posibles (también anidando "ifs", tal y como está la plantilla del SSL) pero nada... es decir, sí, "desactiva "el dominio1 pero sólo cuando accedo algún subdirectorio, del tipo "www.dominio1.com/directorio", al acceder devolvía un "error 404", pero si pongo sólo "www.dominio1.com" me cargaba la página del "www.dominio2.com". Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
Camaleón escribió:
Es decir, que el primer archivo listado en /vhosts.d es el que se usa cuando en la configuración de los virtual hosts no se define ningún nombre que concuerde con la petición que recibe el apache.
Es precisamente por esa razon que te pregunte si tenias un virtualhost __default__ pero eschuchando en el puerto 80.. sino, ocurre exactamente eso y ves dominio2 cuando desactivas dominio1... -- "We have art in order not to die of the truth" - Friedrich Nietzsche Cristian Rodríguez R. Platform/OpenSUSE - Core Services SUSE LINUX Products GmbH Research & Development http://www.opensuse.org/
participants (3)
-
Camaleón
-
Carlos E. R.
-
Cristian Rodríguez