¿Qué pasará si incluyo el archivo de configuración de vhost directamente en la carpeta "sitios habilitados"?

¿Qué pasará si incluyo el archivo de configuración de vhost directamente en la carpeta "sitios habilitados"?

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-availablecarpeta 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-enabledcarpeta.

Para comprender mejor el comportamiento, experimenté guardando el example.com.confarchivo 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.confel archivo solo en sites-enabled, sin almacenarlo en sites-availableuna 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/*.confse 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.confcon configuración para example.netetc.

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 -sy rmen 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.

información relacionada