Otimize o Apache que atua como backend por trás do Nginx

1

O Apache (2.4.x) é um servidor bem conhecido e a otimização de desempenho é amplamente discutida e bem documentada.

No entanto, para os casos em que o Apache é submetido a proxies reversos (atrás do Nginx ou de qualquer outro software), estou imaginando o que melhor se adapta ao Apache no que se refere ao desempenho.

Considerando essa configuração muito simples do Nginx:

server {
    keepalive_timeout 300s;

    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_pass  http://localhost:8080;
        proxy_pass_header Content-type;
    }
}

Sem fornecer valores reais (que estão strongmente vinculados ao tipo de hardware, tráfego e aplicativo), a lógica deve ser diferente em alguns aspectos, em comparação com o que geralmente é aplicado aos servidores frontais?

Por exemplo, como estamos falando de servidor para servidor (hardware) - e muitas vezes até os dois servidores (software) se comunicam em localhost - a keepalive é uma boa prática? Se sim, existe uma linha de base para começar?

O Apache verá a solicitação Nginx como um mesmo cliente ou um dos X-Real-IPX-Real-IP ou X-Forwarded-For fará o Apache considerar pedidos provenientes de diferentes clientes?

Eu acho que, no que diz respeito ao Apache, um cliente é IP_SRC: Port .

Quero dizer que, se todas as solicitações intermediadas pelo Nginx forem consideradas como um cliente, como o Apache respeitará MaxConnectionsPerChild ?

Como o Apache com mod_prefork irá bifurcar (ou não) os trabalhadores? Neste mod, clientes e trabalhadores são uma relação de 1: 1. E como os trabalhadores não são capazes de lidar com mais de um cliente por vez, os pedidos serão enfileirados até que haja um trabalhador livre disponível?

Existem melhores práticas que um deve estar ciente para este tipo de configuração?

Existe um mod que poderia ser preferido sobre o outro? Ou deveria um mod ser evitado?

    
por Buzut 08.09.2016 / 22:19

0 respostas