Apache & Nginx. Conectados en una cadena (parte 2)

La semana pasada en parte anterior este artículo describimos cómo se construye la combinación de Apache y Nginx en Timeweb. Agradecemos mucho a nuestros lectores por sus preguntas y la activa discusión. Hoy les contamos cómo se implementa la disponibilidad de varias versiones de PHP en un mismo servidor y por qué garantizamos la seguridad de los datos a nuestros clientes.

Apache & Nginx. Unidos en una cadena (parte 2)
Alojamiento virtual (El hosting compartido) implica que en un mismo servidor están alojadas múltiples cuentas de clientes. En la cuenta de un cliente, por lo general, hay varios sitios web. Los sitios funcionan tanto en CMS listos (por ejemplo, Bitrix) como en soluciones personalizadas. Por lo tanto, los requisitos técnicos para todos los sistemas son diferentes, y es necesario gestionar varias versiones de PHP en un mismo servidor.

Como servidor web principal utilizamos Nginx: acepta todas las conexiones externas y entrega contenido estático. Las otras solicitudes las proxyamos a un servidor web Apache. Aquí es donde comienza la magia: para cada versión de PHP se ejecuta una instancia separada de Apache que escucha un puerto específico. Este puerto se indica en el host virtual del sitio web del cliente.

Se puede leer más sobre el funcionamiento del esquema compartido en la primera parte del artículo.

Apache & Nginx. Unidos en una cadena (parte 2)
Esquema compartido

Es importante señalar que instalamos paquetes de PHP para diferentes versiones, porque generalmente en todas las distribuciones solo hay una versión de PHP.

¡La seguridad es lo primero!

Una de las principales tareas del hosting virtual es garantizar la seguridad de los datos del cliente. Las diferentes cuentas, aunque están en el mismo servidor, son independientes y autónomas. ¿Cómo funciona esto?

Los archivos de los sitios se almacenan en los directorios personales de los propios usuarios, y en el host virtual de los servidores web se indican los caminos necesarios. Es importante que los servidores web, Nginx y Apache, tengan acceso a los archivos finales de un cliente específico, ya que el servidor web se ejecuta solo con un usuario.

Para Nginx se utiliza un parche de seguridad desarrollado por el equipo de Timeweb: este parche cambia el usuario al que se indica en el archivo de configuración del servidor web.

En otros proveedores de hosting, este problema puede resolverse, por ejemplo, mediante manipulaciones con derechos de acceso extendido del sistema de archivos (ACL).

Para el funcionamiento de Apache se usa un módulo de multiprocesamiento mpm-itk. Permite ejecutar cada VirtualHost con su propio identificador de usuario y ID de grupo.
Apache & Nginx. Unidos en una cadena (parte 2)
De este modo, gracias a las operaciones descritas anteriormente, logramos un entorno aislado y seguro para cada cliente. Al mismo tiempo, también abordamos los desafíos de escalabilidad para el alojamiento compartido.

Cómo se implementa la combinación de Apache y Nginx, se puede leer en parte anterior nuestro artículo. Además, allí se describe una configuración alternativa a través del esquema dedicado.

Si tienes alguna pregunta para nuestros expertos, deja un comentario. Intentaremos responder a todo o describir la solución a la tarea con más detalle en los próximos artículos.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster