Apache con nginx

Usted puede mejorar el funcionamiento del servidor web que aloja los sitios web del cliente instalando nginx, un servidor web complementario de alto rendimiento que suele usarse como servidor proxy inverso. Este servidor web ha sido diseñado específicamente para entregar grandes cantidades de contenido estático (como imágenes, vídeos, CSS, XML, etc). Al contrario que Apache, nginx es mucho más eficiente a la hora de gestionar un gran número de conexiones concurrentes. Otra de las ventajas destacadas de este servidor web en comparación con Apache es que nginx consume mucho menos memoria por conexión de cliente.

Para sacar partido a todos los beneficios de nginx, Plesk lo configura como un servidor proxy inverso que se sitúa entre Internet y Apache tal y como puede ver en el diagrama que aparece a continuación. Esto significa que nginx se convierte en un servidor web frontend que procesa todas las peticiones entrantes de los visitantes del sitio. Las peticiones se envían a Apache y este, a su vez, distingue las peticiones de contenido estático de las peticiones de contenido dinámico. Si se solicita un archivo estático (como por ejemplo JPG, CSS, HTML, etc.), Apache pasa la petición a través de todos los controladores (aplica la configuración a nivel del directorio .htaccess, vuelve a escribe una URL, etc.) y devuelve una respuesta a nginx que solo contiene la ubicación del archivo solicitado en el sistema de archivos. nginx localiza el archivo y lo envía al cliente. Si se solicita un archivo dinámico (como un script de PHP), Apache ejecuta el archivo y envía la respuesta a nginx, quien la entrega al cliente.

Esta combinación de nginx y Apache proporciona las siguientes ventajas:

Más adelante en esta sección se proporcionan los detalles técnicos acerca de cómo Plesk procesa las peticiones HTTP con la ayuda de nginx. Si desea más información acerca de cómo activar el soporte para nginx en Plesk, consulte la sección Instalación de nginx. Si no desea usar nginx, convierta Apache en su servidor web frontend realizando los pasos detallados en la sección Desactivación de nginx.

¿Cómo Plesk con nginx procesa las peticiones HTTP?

Para disfrutar de una perfecta integración de nginx con Apache, Plesk usa dos módulos Apache adicionales:

Examinemos más de cerca de qué forma Plesk procesa las peticiones de contenido estático y dinámico con la ayuda de estos módulos.

La secuencia de procesamiento de una petición HTTP para un archivo estático es la siguiente (vea el diagrama):

  1. Un cliente envía una petición a un servidor web.
  2. nginx añade los encabezados X-Accel-Internal (usado por mod_aclr2) y X-Forwarded-For (que contiene la dirección IP del cliente) a la petición y envía la petición a Apache.
  3. Apache recibe la petición y empieza a procesarla mediante controladores registrados (aplica la configuración .htaccess, vuelve a escribir la URL, etc). En este paso, mod_rpaf reemplaza la dirección IP del servidor nginx en la variable de Apache REMOTE_ADDR por la dirección del cliente del encabezado X-Forwarded-For.
  4. Una vez procesada la petición por todos los controladores registradores, esta llega a mod_aclr2. El controlador compruebe la presencia del encabezado X-Accel-Internal. De estar presente, el módulo envía una respuesta a nginx con una longitud de contenido cero y el encabezado X-Accel-Redirect. Este encabezado contiene la ubicación exacta del archivo tal y como lo determina mod_aclr2.
  5. Una vez nginx recibe la respuesta, este localiza el archivo y lo entrega al cliente.

El diagrama que se muestra a continuación muestra un ejemplo de la forma en la que Plesk gestiona la petición de un archivo GIF de 2 KB.

static_seq

En el caso de procesar peticiones de contenido dinámico, los pasos 1 a 3 son los mismos. A continuación, la petición pasa al controlador del módulo Apache apropiado (mod_php, mod_perl, mod_cgi, etc.). La petición nunca llega a mod_aclr2 (a excepción de las peticiones SSI). El controlador genera una respuesta y la envía a nginx, que, a su vez, entrega la respuesta al cliente. El diagrama que puede ver a continuación ilustra de qué forma Plesk procesa una petición de un archivo de PHP.


A continuación en esta sección:

Instalación de nginx

Desactivación de nginx

 

Instalación de nginx

Si realiza una instalación limpia de Plesk, nginx se activará de forma predeterminada. Si actualiza una versión anterior, puede añadir el componente nginx en cualquier momento tras la actualización en Herramientas y configuración > Actualizaciones > Añadir componentes. Una vez añadido el componente, debería ejecutar el servicio Servidor proxy inverso (nginx) en Herramientas y configuración > Administración de servicios.

Puede consultar la versión del servidor nginx instalado en Herramientas y configuración > Componentes del servidor.

nginx version

 

Desactivación de nginx

Para volver a la configuración con un único servidor web Apache, detenga el servicio Servidor proxy inverso (nginx) en Herramientas y configuración > Administración de servicios.

nginx_stop

Para que nginx vuelva a ser el servidor web frontend, inicie el servicio Servidor proxy inverso (nginx).

Nota: las operaciones de inicio y detención para el servicio Servidor proxy inverso (nginx) no solo inician y detienen nginx, sino que de hecho cambian la configuración del servidor web (la combinación de nginx y Apache o solo Apache como servidor web frontend). La operación de reinicio funciona de igual forma que para todos los demás servicios: el servicio nginx se reinicia.