Apache y Nginx. Conectados por una cadena (parte 2)

La semana pasada en la primera parte En este artículo describimos cómo se creó la combinación de Apache y Nginx en Timeweb. ¡Estamos muy agradecidos con los lectores por sus preguntas y discusión activa! Hoy te 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 de nuestros clientes.

Apache y Nginx. Conectados por una cadena (parte 2)
Alojamiento compartido (Hospedaje compartido) supone que muchas cuentas de clientes están alojadas en un servidor. Como regla general, la cuenta de un cliente contiene varios sitios web. Los sitios web funcionan tanto en CMS ya preparados (por ejemplo, Bitrix) como en CMS personalizados. Así, los requisitos técnicos de todos los sistemas son diferentes, por lo que se deben gestionar varias versiones de PHP dentro de un mismo servidor.

Usamos Nginx como servidor web principal: acepta todas las conexiones externas y sirve contenido estático. Enviamos las solicitudes restantes al servidor web Apache. Aquí es donde comienza la magia: cada versión de PHP ejecuta una instancia de Apache separada que escucha en un puerto específico. Este puerto está registrado en el host virtual del sitio del cliente.

Puede leer más sobre el funcionamiento del esquema Compartido en la primera parte del articulo.

Apache y Nginx. Conectados por una cadena (parte 2)
Esquema compartido

Es importante tener en cuenta que instalamos paquetes PHP para diferentes versiones, porque normalmente todas las distribuciones tienen una sola versión de PHP.

¡Seguridad primero!

Una de las principales tareas del hosting compartido es garantizar la seguridad de los datos de los clientes. Diferentes cuentas, ubicadas en el mismo servidor, son independientes e independientes. ¿Cómo funciona?

Los archivos del sitio web se almacenan en los directorios personales de los propios usuarios y las rutas requeridas se especifican en el host virtual de los servidores web. 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 lo inicia un solo usuario.

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

Para otros proveedores de alojamiento, este problema se puede resolver, por ejemplo, mediante la manipulación de los derechos extendidos del sistema de archivos (ACL).

Apache utiliza un módulo de multiprocesamiento para ejecutarse mpm-itk. Permite que cada VirtualHost se ejecute con su propia ID de usuario e ID de grupo.
Apache y Nginx. Conectados por una cadena (parte 2)
Así, gracias a las operaciones descritas anteriormente obtenemos un entorno seguro y aislado para cada cliente. Al mismo tiempo, también solucionamos problemas de escalado del hosting compartido.

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

Si tiene alguna pregunta para nuestros expertos, escriba en los comentarios. Intentaremos responder todo o describir la solución al problema con más detalle en los siguientes artículos.

Fuente: habr.com

Añadir un comentario