Actualmente estoy estudiando los hosts virtuales Apache y tengo cierta confusión con respecto a su configuración.
Creé un archivo de host virtual en la sites-available
carpeta y habilité el sitio correspondiente usando el comando a2ensite example.com.conf
como root. Al hacerlo, noto que esto crea un enlace simbólico en la sites-enabled
carpeta.
Para comprender mejor el comportamiento, experimenté guardando el example.com.conf
archivo directamente en sites-enabled
, evitando la dirección indirecta a través de un enlace simbólico. Después de reiniciar Apache, me sorprendió descubrir que el host virtual sigue funcionando bien.
Si almaceno example.com.conf
el archivo solo en sites-enabled
, sin almacenarlo en sites-available
una carpeta y usando un enlace simbólico, ¿causará algún problema?
Respuesta1
Esta estructura de carpetas tiene que ver con la manejabilidad. Si bien estaría perfectamente bien agregar todos los módulos y la configuración del host virtual en un solo archivo httpd.conf
, la modificación sería larga y complicada. Por lo tanto, por ejemplo en Debian, se han utilizado inclusiones comodín para separar la configuración en varios archivos:
# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
Esto hace que todo lo que coincida con la ruta sites-enabled/*.conf
se agregue a la configuración, y para Apache HTTPd no importa si es un archivo de texto o un enlace simbólico a uno. Desde esta perspectiva, ni siquiera importa si el archivo tiene <VirtualHost>
bloques o es simplemente otra configuración de Apache. También es perfectamente posible tener un archivo example.com.conf
con configuración para example.net
etc.
Los problemas que enfrentará con una configuración no convencional están relacionados con la falta de manejabilidad:
No podrá habilitar ni deshabilitar hosts virtuales con
a2ensite
/a2dissite
.# a2dissite example.com ERROR: Site example.com does not exist!
La documentación oficial (páginas de manual) se vuelve inútil.
No puedes desactivar fácilmente el sitio temporalmente. Por ejemplo, un host virtual universal facilita la creación de unen mantenimientopágina para mostrar mientras el sitio está deshabilitado para recibir actualizaciones.
Es posible que otra persona que administre el mismo servidor haya usado
ln -s
yrm
en lugar de estos comandos oficiales. Al intentar deshabilitar temporalmente el sitio, es posible que lo eliminen accidentalmente.Nadie más sabe que no has seguido las prácticas normales. En unos meses tú también lo olvidarás. En ese punto, hará una nueva pregunta en Serverfault sobre por qué seguir la documentación o un tutorial ya no se aplica a su configuración.