Apache e Nginx. Conectado por unha cadea

Como se implementa a combinación Apache e Nginx en Timeweb

Para moitas empresas, Nginx + Apache + PHP é unha combinación moi típica e común, e Timeweb non é unha excepción. Non obstante, comprender exactamente como se implementa pode ser interesante e útil.

Apache e Nginx. Conectado por unha cadea

O uso desta combinación é, por suposto, ditado polas necesidades dos nosos clientes. Tanto Nginx como Apache xogan un papel especial, cada un resolve un problema específico.

configuración básica Apache realízanse nos ficheiros de configuración do propio Apache e a configuración dos sitios do cliente prodúcese Ficheiro .htaccess. .htaccess é un ficheiro de configuración no que o cliente pode configurar de forma independente as regras e o comportamento do servidor web. Esta configuración aplicarase específicamente ao seu sitio. Por exemplo, grazas á funcionalidade de Apache, os usuarios poden cambiar o modo operativo dentro da mesma versión de PHP de mod_php a mod_cgi; pode configurar redireccións, optimización para SEO, URL conveniente, algúns límites para PHP.

Nginx usado como servidor proxy para redirixir o tráfico a Apache e como servidor web para servir contido estático. Tamén desenvolvemos módulos de seguridade para Nginx que nos permiten protexer os datos dos nosos usuarios, por exemplo, para separar os dereitos de acceso.

Imaxinemos que un usuario visita o sitio web do noso cliente. En primeiro lugar, o usuario chega a Nginx, que serve contido estático. Ocorre ao instante. Despois, cando se trata de cargar PHP, Nginx reenvía a solicitude a Apache. E Apache, xunto con PHP, xa xera contido dinámico.

Características do paquete Apache e Nginx en Timeweb

O noso hospedaxe virtual implementa dous esquemas operativos principais para Apache e Nginx: Compartido e Dedicado.

Esquema compartido

Este esquema úsase para a maioría dos usuarios. Distínguese pola súa sinxeleza e intensidade de recursos: o esquema Compartido utiliza menos recursos, polo que a súa tarifa é máis barata. Segundo este esquema, o servidor executa un Nginx, o que lle permite atender todas as solicitudes dos usuarios e varias instancias de Apache.

O esquema Compartido leva moito tempo mellorando: aos poucos fomos corrixindo as carencias. Convenientemente, pódese facer sen necesidade de modificar o código fonte.

Apache e Nginx. Conectado por unha cadea
Esquema compartido

Esquema dedicado

Dedicado require máis recursos, polo que a súa tarifa é máis cara para os clientes. No esquema Dedicado, cada cliente obtén o seu propio Apache separado. Os recursos aquí están reservados para o cliente, son asignados exclusivamente. Como funciona: hai varias versións de PHP no servidor. Admitimos as versións 5.3, 5.4, 5.6, 7.1, 7.2, 7.3, 7.4. Así, para cada versión de PHP lánzase o seu propio Apache.

Apache e Nginx. Conectado por unha cadea
Esquema dedicado

Zona segura. Configurando zonas en Nginx

Anteriormente, para Nginx, utilizabamos moitas zonas (zonas) de memoria compartida: un bloque de servidor por dominio. Esta configuración require moitos recursos, xa que se crea unha zona separada para cada sitio. Non obstante, na configuración de Nginx, a maioría dos sitios son do mesmo tipo, polo que poden colocarse nunha zona grazas ao uso de directivas de mapas no módulo ngx_http_map_module, que permiten especificar correspondencias. Por exemplo, temos un modelo de zona no que debemos proporcionar variables: ruta ao sitio, versión PHP, usuario. Así, acelerouse a relectura da configuración de Nginx, é dicir, a recarga.

Esta configuración aforrou moito recursos de RAM e acelerou Nginx.

A recarga non funcionará!

No esquema Compartido, desfixémonos da necesidade de volver cargar Apache ao cambiar a configuración do sitio web. Anteriormente, cando un cliente quería engadir un dominio ou cambiar a versión de PHP, era necesaria unha recarga obrigatoria de Apache, o que provocaba atrasos nas respostas e afectaba negativamente o rendemento do sitio.

Deshacémonos das recargas creando configuracións dinámicas. Grazas a mpm-itk (módulo Apache), cada proceso execútase como un usuario separado, o que aumenta o nivel de seguridade. Este método permítelle transferir datos sobre o usuario e o seu documento_root de Nginx a Apache2. Así, Apache non contén configuracións de sitios, recíbeas de forma dinámica e xa non son necesarias recargas.

Apache e Nginx. Conectado por unha cadea
Configuración de esquema compartido

Que pasa con Docker?

Moitas empresas pasaron a un sistema baseado en contedores. Timeweb está considerando actualmente a posibilidade dunha transición deste tipo. Por suposto, cada decisión ten pros e contras.

Xunto a vantaxes innegables, o sistema de contedores proporciona ao usuario menos recursos. En Timeweb, grazas ao esquema de hospedaxe descrito, o usuario non ten limitación de RAM. Recibe máis recursos que no contedor. Ademais, o usuario pode ter máis módulos de Apache cargados.

Timeweb alimenta uns 500 sitios web. Asumimos unha gran responsabilidade e non facemos cambios instantáneos e inxustificados na arquitectura complexa. A combinación Apache e Nginx é fiable e probada no tempo. Nós, pola súa banda, tentamos acadar o máximo rendemento mediante configuracións únicas.

Para un funcionamento rápido e de alta calidade dun gran número de sitios, cómpre usar un modelo e unha configuración dinámica de Apache e Nginx. Permítelle administrar de xeito sinxelo e rápido un gran número de servidores similares.

Fonte: www.habr.com

Engadir un comentario