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

La semana pasada, en la primera parte de este artículo, describimos cómo se construye el paquete Apache y Nginx en Timeweb. ¡Estamos muy agradecidos con los lectores por sus preguntas y su activa discusión! Hoy te contamos cómo se realiza la disponibilidad de varias versiones de PHP en un servidor y por qué garantizamos la seguridad de los datos a nuestros clientes.





Alojamiento virtual ( alojamiento compartido) significa que un solo servidor, una pluralidad de cuentas de cliente. La cuenta de un cliente, por regla general, contiene varios sitios. Los sitios web funcionan tanto en CMS listos para usar (por ejemplo, Bitrix) como en personalizados. Por lo tanto, los requisitos técnicos para todos los sistemas son diferentes, por lo que es necesario administrar varias versiones de PHP dentro de un servidor.



Usamos Nginx como servidor web principal: acepta todas las conexiones desde el exterior y sirve contenido estático. Enviamos el resto de las solicitudes al servidor web Apache. Aquí es donde comienza la magia: para cada versión de PHP, se inicia una instancia de Apache separada, escuchando en un puerto específico. Este puerto está registrado en el host virtual del sitio del cliente.



Puede leer más sobre el trabajo del esquema compartido en la primera parte del artículo .





Esquema compartido



Es importante tener en cuenta que colocamos paquetes PHP en diferentes versiones, porque generalmente todas las distribuciones tienen solo una versión PHP.



¡Seguridad primero!



Una de las principales tareas del alojamiento compartido es garantizar la seguridad de los datos del cliente. Las diferentes cuentas, al estar en un servidor, son independientes e independientes. ¿Cómo funciona?



Los archivos del sitio se almacenan en los directorios de inicio de los propios usuarios y las rutas necesarias se especifican en el host virtual de los servidores web. Al hacerlo, es importante que los servidores web, Nginx y Apache, tengan acceso a los archivos finales de un cliente en particular, ya que el servidor web se inicia desde 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.



Otros proveedores de alojamiento pueden resolver este problema, por ejemplo, mediante la manipulación con derechos extendidos del sistema de archivos (ACL).



Apache usa el módulo de multiprocesamiento mpm-itk . Permite que cada VirtualHost se ejecute con su propia ID de usuario e ID de grupo.



Así, gracias a las operaciones descritas anteriormente, obtenemos un entorno aislado seguro para cada cliente. Al mismo tiempo, también resolvemos los problemas de escalado para el alojamiento compartido.



Puede leer cómo se implementan los enlaces Apache y Nginx en la primera parte de 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.



All Articles