Apache e Nginx. Conectado por uma corrente

Como a combinação Apache e Nginx é implementada no Timeweb

Para muitas empresas, Nginx + Apache + PHP é uma combinação muito típica e comum, e Timeweb não é exceção. Contudo, entender exatamente como ele é implementado pode ser interessante e útil.

Apache e Nginx. Conectado por uma corrente

O uso de tal combinação é, obviamente, ditado pelas necessidades dos nossos clientes. Tanto o Nginx quanto o Apache desempenham um papel especial, cada um resolvendo um problema específico.

configurações básicas apache são realizadas nos arquivos de configuração do próprio Apache, e as configurações dos sites clientes ocorrem através Arquivo .htaccess. .htaccess é um arquivo de configuração no qual o cliente pode configurar de forma independente as regras e o comportamento do servidor web. Esta configuração será aplicada especificamente ao site dele. Por exemplo, graças à funcionalidade do Apache, os usuários podem alterar o modo operacional dentro da mesma versão do PHP de mod_php para mod_cgi; você pode configurar redirecionamentos, otimização para SEO, URL conveniente, alguns limites para PHP.

nginx usado como servidor proxy para redirecionar o tráfego para o Apache e como servidor web para servir conteúdo estático. Também desenvolvemos módulos de segurança para Nginx que nos permitem proteger os dados dos nossos utilizadores, por exemplo, para separar direitos de acesso.

Vamos imaginar que um usuário visite o site do nosso cliente. Primeiro, o usuário acessa o Nginx, que fornece conteúdo estático. Isso acontece instantaneamente. Então, quando se trata de carregar o PHP, o Nginx encaminha a solicitação para o Apache. E o Apache, junto com o PHP, já gera conteúdo dinâmico.

Recursos do pacote Apache e Nginx no Timeweb

Nossa hospedagem virtual implementa 2 esquemas operacionais principais para Apache e Nginx: Compartilhado e Dedicado.

Esquema compartilhado

Este esquema é usado pela maioria dos usuários. Distingue-se pela sua simplicidade e intensidade de recursos: o regime Partilhado utiliza menos recursos, razão pela qual o seu tarifário é mais barato. De acordo com este esquema, o servidor executa um Nginx, que permite atender todas as solicitações do usuário, e várias instâncias do Apache.

O esquema Compartilhado vem melhorando há muito tempo: gradualmente corrigimos as deficiências. Convenientemente, isso pode ser feito sem a necessidade de modificar o código-fonte.

Apache e Nginx. Conectado por uma corrente
Esquema compartilhado

Esquema dedicado

Dedicado requer mais recursos, por isso sua tarifa fica mais cara para os clientes. No esquema Dedicado, cada cliente recebe seu próprio Apache separado. Os recursos aqui são reservados ao cliente, são alocados com exclusividade. Como funciona: Existem diversas versões de PHP no servidor. Oferecemos suporte às versões 5.3, 5.4, 5.6, 7.1, 7.2, 7.3, 7.4. Assim, para cada versão do PHP é lançado seu próprio Apache.

Apache e Nginx. Conectado por uma corrente
Esquema dedicado

Zona segura. Configurando zonas no Nginx

Anteriormente, para Nginx, usávamos muitas zonas (zonas) de memória compartilhada - um bloco de servidor por domínio. Esta configuração requer muitos recursos, pois é criada uma zona separada para cada site. No entanto, nas configurações do Nginx, a maioria dos sites são do mesmo tipo, portanto podem ser colocados na mesma zona graças ao uso de diretivas de mapa no módulo ngx_http_map_module, que permitem especificar correspondências. Por exemplo, temos um template de zona no qual devemos fornecer variáveis: caminho do site, versão do PHP, usuário. Assim, a releitura da configuração do Nginx, ou seja, o recarregamento, foi acelerada.

Essa configuração economizou bastante recursos de RAM e acelerou o Nginx.

Recarregar não funcionará!

No esquema Compartilhado, eliminamos a necessidade de recarregar o Apache ao alterar as configurações do site. Anteriormente, quando um cliente queria adicionar um domínio ou alterar a versão do PHP, era necessária uma recarga obrigatória do Apache, o que causava atrasos nas respostas e afetava negativamente o desempenho do site.

Eliminamos as recargas criando configurações dinâmicas. Graças a MPM-ITK (módulo Apache), cada processo é executado como um usuário separado, o que aumenta o nível de segurança. Este método permite transferir dados sobre o usuário e seu document_root do Nginx para o Apache2. Assim, o Apache não contém configurações de site, ele as recebe dinamicamente e não é mais necessário recarregar.

Apache e Nginx. Conectado por uma corrente
Configuração de esquema compartilhado

E quanto ao Docker?

Muitas empresas migraram para um sistema baseado em contêineres. A Timeweb está atualmente considerando a possibilidade de tal transição. Claro, existem prós e contras em cada decisão.

Junto com vantagens inegáveis, o sistema de contêineres oferece ao usuário menos recursos. No Timeweb, graças ao esquema de hospedagem descrito, o usuário não tem limitação de RAM. Recebe mais recursos do que no contêiner. Além disso, o usuário pode ter mais módulos do Apache carregados.

Timeweb alimenta cerca de 500 sites. Assumimos grande responsabilidade e não fazemos alterações instantâneas e injustificadas em arquiteturas complexas. A combinação Apache e Nginx é confiável e testada pelo tempo. Nós, por sua vez, tentamos alcançar o máximo desempenho através de configurações exclusivas.

Para operação rápida e de alta qualidade de um grande número de sites, você precisa usar um modelo e configuração dinâmica de Apache e Nginx. Ele permite administrar de forma fácil e rápida um grande número de servidores semelhantes.

Fonte: habr.com

Adicionar um comentário