Apache y Nginx. Conectado por una cadena

Cómo se implementa la combinación Apache y Nginx en Timeweb

Para muchas empresas, Nginx + Apache + PHP es una combinación muy típica y común, y Timeweb no es una excepción. Sin embargo, comprender exactamente cómo se implementa puede resultar interesante y útil.

Apache y Nginx. Conectado por una cadena

El uso de dicha combinación, por supuesto, depende de las necesidades de nuestros clientes. Tanto Nginx como Apache juegan un papel especial, cada uno resuelve un problema específico.

Ajustes basicos APACHE se realizan en los archivos de configuración del propio Apache, y la configuración de los sitios del cliente se produce a través de archivo .htaccess. .htaccess es un archivo de configuración en el que el cliente puede configurar de forma independiente las reglas y el comportamiento del servidor web. Esta configuración se aplicará específicamente a su sitio. Por ejemplo, gracias a la funcionalidad de Apache, los usuarios pueden cambiar el modo de funcionamiento dentro de la misma versión de PHP de mod_php a mod_cgi; puedes configurar redireccionamientos, optimización para SEO, URL conveniente y algunos límites para PHP.

Nginx Se utiliza como servidor proxy para redirigir el tráfico a Apache y como servidor web para servir contenido estático. También hemos desarrollado módulos de seguridad para Nginx que nos permiten proteger los datos de nuestros usuarios, por ejemplo, para separar derechos de acceso.

Imaginemos que un usuario visita la web de nuestro cliente. Primero, el usuario accede a Nginx, que ofrece contenido estático. Sucede instantáneamente. Luego, cuando se trata de cargar PHP, Nginx reenvía la solicitud a Apache. Y Apache, junto con PHP, ya genera contenido dinámico.

Características del paquete Apache y Nginx en Timeweb

Nuestro hosting virtual implementa 2 esquemas operativos principales para Apache y Nginx: Compartido y dedicado.

Esquema compartido

Este esquema se utiliza para la mayoría de los usuarios. Se distingue por su sencillez e intensidad de recursos: el esquema Compartido utiliza menos recursos, por lo que su tarifa es más económica. Según este esquema, el servidor ejecuta un Nginx, que le permite atender todas las solicitudes de los usuarios, y varias instancias de Apache.

El esquema Compartido lleva mucho tiempo mejorando: poco a poco hemos corregido las deficiencias. Convenientemente, se puede hacer sin necesidad de modificar el código fuente.

Apache y Nginx. Conectado por una cadena
Esquema compartido

Esquema dedicado

Dedicado requiere más recursos, por lo que su tarifa resulta más cara para los clientes. En el esquema Dedicado, cada cliente obtiene su propio Apache independiente. Los recursos aquí están reservados para el cliente, se asignan exclusivamente. Cómo funciona: Hay varias versiones de PHP en el servidor. Admitimos las versiones 5.3, 5.4, 5.6, 7.1, 7.2, 7.3, 7.4. Así, para cada versión de PHP se lanza su propio Apache.

Apache y Nginx. Conectado por una cadena
Esquema dedicado

Zona segura. Configurando zonas en Nginx

Anteriormente, para Nginx, usábamos muchas zonas (zonas) de memoria compartida: un bloque de servidor por dominio. Esta configuración requiere muchos recursos, ya que se crea una zona separada para cada sitio. Sin embargo, en la configuración de Nginx, la mayoría de los sitios son del mismo tipo, por lo que se pueden ubicar en una zona gracias al uso de directivas de mapas en el módulo. ngx_http_map_module, que le permiten especificar correspondencias. Por ejemplo, tenemos una plantilla de zona en la que debemos proporcionar variables: ruta al sitio, versión de PHP, usuario. Así, se aceleró la relectura de la configuración de Nginx, es decir, la recarga.

Esta configuración ahorró enormemente recursos de RAM y aceleró Nginx.

¡La recarga no funcionará!

En el esquema compartido, eliminamos la necesidad de recargar Apache al cambiar la configuración del sitio web. Anteriormente, cuando un cliente quería agregar un dominio o cambiar la versión de PHP, se requería una recarga obligatoria de Apache, lo que provocaba retrasos en las respuestas y afectaba negativamente al rendimiento del sitio.

Nos deshicimos de las recargas creando configuraciones dinámicas. Gracias a mpm-itk (Módulo Apache), cada proceso se ejecuta como un usuario independiente, lo que aumenta el nivel de seguridad. Este método le permite transferir datos sobre el usuario y su raíz_documento de Nginx a Apache2. Por lo tanto, Apache no contiene configuraciones de sitio, las recibe dinámicamente y ya no es necesario recargar.

Apache y Nginx. Conectado por una cadena
Configuración de esquema compartido

¿Qué pasa con Docker?

Muchas empresas han pasado a un sistema basado en contenedores. Timeweb está considerando actualmente la posibilidad de dicha transición. Por supuesto, cada decisión tiene sus pros y sus contras.

Además de sus innegables ventajas, el sistema de contenedores proporciona al usuario menos recursos. En Timeweb, gracias al esquema de alojamiento descrito, el usuario no tiene limitación de RAM. Recibe más recursos que en el contenedor. Además, el usuario podrá tener más módulos de Apache cargados.

Timeweb impulsa alrededor de 500 sitios web. Asumimos una gran responsabilidad y no realizamos cambios instantáneos e injustificados en una arquitectura compleja. La combinación de Apache y Nginx es confiable y ha sido probada en el tiempo. Nosotros, a su vez, intentamos lograr el máximo rendimiento a través de configuraciones únicas.

Para un funcionamiento rápido y de alta calidad de una gran cantidad de sitios, debe utilizar una plantilla y una configuración dinámica de Apache y Nginx. Le permite administrar fácil y rápidamente una gran cantidad de servidores similares.

Fuente: habr.com

Añadir un comentario