Назад | Перейти на главную страницу

Оптимизация Apache, выступающего в качестве бэкэнда за Nginx

Apache (2.4.x) - хорошо известный сервер, и оптимизация производительности широко обсуждается и хорошо документирована.

Тем не менее, для тех случаев, когда Apache использует обратное проксирование (за Nginx или другим любым другим программным обеспечением), мне интересно, что лучше всего подходит для Apache с точки зрения производительности.

Учитывая эту очень простую конфигурацию 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;
    }
}

Если не указывать фактические значения (которые сильно привязаны к оборудованию, трафику и типу приложения), должна ли логика отличаться определенным образом от того, что обычно применяется для серверов переднего плана?

Например, когда мы говорим сервер с сервером (оборудование) - и часто даже оба сервера (программное обеспечение) обмениваются данными на localhost - это keepalive хорошая практика? Если да, то с чего начать?

Будет ли Apache рассматривать все запросы Nginx как один и тот же клиент или как один из X-Real-IPX-Real-IP или X-Forwarded-For заставит ли Apache учитывать запросы от разных клиентов?

Я полагаю, что для Apache клиент - это IP_SRC: Порт.

Я имею в виду, что если все запросы, проксируемые через Nginx, считаются одним клиентом, как Apache будет уважать MaxConnectionsPerChild?

Как будет Apache с mod_prefork будет форк (или нет) рабочих? В этом моде отношения между клиентами и рабочими составляют 1: 1. И поскольку рабочие не могут обрабатывать более одного клиента одновременно, будут ли запросы ставиться в очередь, пока не появится свободный рабочий?

Есть ли лучшие практики, о которых следует знать для такого рода настроек?

Есть ли один мод, который может быть предпочтительнее другого? Или следует избегать одного мода?