Apache y Nginx

Apache y Nginx son los dos programas (llamados «servidores web») que se encargan de mostrar tu web a quien la visita. En MaadiX, Apache es el servidor web predeterminado. Desde la versión 202405, si el servidor tiene Nginx instalado, también podrás elegirlo como servidor web para cualquier dominio que gestiones desde el panel de control. Los dos pueden convivir sin problema: activar uno no desactiva el otro.

¿Cuál debo elegir?

Apache es la opción predeterminada y funciona bien para la mayoría de webs. Además, permite usar archivos .htaccess, que se pueden editar por SFTP con la cuenta de webmaster, sin necesidad de acceder por consola.

Nginx no viene instalado por defecto: aparece disponible en el servidor si se ha instalado expresamente desde la página Instalar aplicaciones, o de forma automática como dependencia al instalar alguna aplicación que lo necesita, como CryptPad, Mastodon o PeerTube. Si no tienes Nginx instalado de ninguna de estas dos formas, no aparecerá como opción al elegir el servidor web de un dominio.

Si quieres usar Nginx en otros dominios (por ejemplo, una web normal) y todavía no lo tienes instalado, puedes instalarlo directamente desde Instalar aplicaciones. A partir de ese momento, Nginx aparecerá disponible como opción al añadir o editar cualquier dominio desde el panel de control.

Cómo funcionan Apache y Nginx a la vez

Como los dos servidores no pueden atender el mismo puerto al mismo tiempo, MaadiX instala un tercer programa llamado HaProxy. Su trabajo es sencillo: recibe todas las visitas que llegan a tu servidor y las reparte automáticamente hacia Apache o Nginx, según el servidor que hayas elegido para cada dominio. Todo esto ocurre de forma transparente, sin que tengas que configurar nada.

Nginx y Apache con HaProxy

HaProxy reparte el tráfico entre Apache y Nginx.

Si tienes curiosidad técnica, HaProxy escucha en los puertos 80 y 443 de la IP pública del servidor y redirige el tráfico a estas IPs internas:

  • 127.0.0.2 para Apache

  • 127.0.0.3 para Nginx

Puedes consultar más información sobre HaProxy en su página oficial.

Configuración avanzada: ubicación de los archivos de configuración

Esta sección solo es relevante si necesitas modificar manualmente por consola la configuración de un dominio (Vhost). Si no sabes lo que esto significa, puedes saltarla sin problema.

Para los dominios añadidos desde el panel de control, se crean los Vhosts correspondientes en:

  • /etc/apache2/ldap-enabled para Apache

  • /etc/nginx/ldap-enabled para Nginx

No modifiques directamente estos archivos: al estar generados por el panel de control, tus cambios podrían perderse en la próxima actualización o edición del dominio. Si necesitas aplicar cambios personalizados, copia el archivo correspondiente a la carpeta de sites-enabled:

  • /etc/apache2/sites-enabled para Apache

  • /etc/nginx/sites-enabled para Nginx

Ten en cuenta que los archivos que copies manualmente a sites-enabled no se eliminarán automáticamente si borras el dominio desde el panel de control; tendrás que eliminarlos a mano.