Apache & Nginx. Conectados por uma corrente (Parte 2)

Na semana passada, primeira parte nesta artigo, descrevermos como é construída a combinação de Apache e Nginx na Timeweb. Agradecemos muito aos leitores pelas perguntas e pela discussão ativa! Hoje, vamos explicar como a disponibilidade de várias versões do PHP é implementada em um único servidor e por que garantimos a segurança dos dados de nossos clientes.

Apache & Nginx. Conectados em uma cadeia (parte 2)
Hospedagem Virtual (Hospedagem compartilhada) implica que em um único servidor estão alojadas várias contas de clientes. Em uma conta de um cliente, geralmente, há vários sites. Os sites funcionam tanto em CMSs prontas (como Bitrix) quanto em sistemas personalizados. Assim, os requisitos técnicos de todos os sistemas são diferentes, por isso, dentro de um único servidor, é necessário gerenciar várias versões do PHP.

Usamos o Nginx como servidor web principal: ele aceita todas as conexões externas e serve o conteúdo estático. Outros pedidos são encaminhados para o servidor web Apache. É aqui que começa a mágica: para cada versão do PHP, é executada uma instância separada do Apache, que escuta em uma porta específica. Essa porta é especificada no host virtual do site do cliente.

Você pode ler mais sobre o funcionamento do esquema compartilhado em na primeira parte do artigo.

Apache & Nginx. Conectados em uma cadeia (parte 2)
Esquema compartilhado

É importante notar que instalamos pacotes do PHP para diferentes versões, porque geralmente em todas as distribuições existe apenas uma versão do PHP.

Segurança em primeiro lugar!

Uma das principais tarefas da hospedagem virtual é garantir a segurança dos dados do cliente. Diferentes contas, estando em um único servidor, são autônomas e independentes. Como isso funciona?

Os arquivos dos sites são armazenados nos diretórios pessoais dos próprios usuários, e nos hosts virtuais dos servidores web, os caminhos necessários são especificados. É importante que os servidores web, Nginx e Apache, tenham acesso aos arquivos finais de um determinado cliente, já que o servidor web é iniciado apenas de um usuário.

Para o Nginx, é utilizado um patch de segurança desenvolvido pela equipe da Timeweb: esse patch muda o usuário para aquele especificado no arquivo de configuração do servidor web.

Para outros provedores de hospedagem, esse problema pode ser resolvido, por exemplo, por meio de manipulações com permissões avançadas do sistema de arquivos (ACL).

Para o funcionamento do Apache, é utilizado o módulo de multiprocessamento mpm-itk. Ele permite que cada VirtualHost seja iniciado com seu próprio identificador de usuário e ID de grupo.
Apache & Nginx. Conectados em uma cadeia (parte 2)
Dessa forma, graças às operações descritas acima, obtemos um ambiente isolado e seguro para cada cliente. Assim, também atendemos às necessidades de escalabilidade para o hospedagem compartilhada.

Como é implementada a integração entre Apache e Nginx pode ser lido em primeira parte nosso artigo. Além disso, lá também está descrita uma configuração alternativa através do esquema dedicado.

Se você tiver dúvidas para nossos especialistas, escreva nos comentários. Faremos o possível para responder a tudo ou descrever uma solução mais detalhada em artigos futuros.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster