Настройка Nginx + Apache и Nginx + PHP-FPM для высокой нагрузки
- 24-08-2026, 10:01
- 1
Настройка Nginx + Apache для высокой нагрузки
Nginx размещается перед Apache в режиме reverse proxy.
Обработка статики — задача Nginx. Динамические запросы передаются на Apache.
Основные шаги
- Включить
proxy_passв конфиге Nginx для направления PHP-запросов на Apache. - Отключить обработку PHP в Nginx, если используется Apache.
- Настроить кэширование ответов Apache через Nginx с помощью
proxy_cache. - Ограничить число соединений к Apache:
proxy_max_temp_file_size,proxy_buffers.
Оптимизация Apache
- Использовать MPM Event вместо Prefork.
- Установить лимиты:
MaxRequestWorkers,ServerLimit,MaxConnectionsPerChild. - Снизить потребление памяти: отключить ненужные модули.
Безопасность и стабильность
- Ограничить rate limit в Nginx:
limit_req_zone. - Задать таймауты:
proxy_read_timeout,proxy_connect_timeout. - Использовать
fail_timeoutиmax_failsпри наличии бэкенд-групп.
Настройка Nginx + PHP-FPM
PHP-FPM работает напрямую с Nginx через FastCGI.
Ключевые параметры
- Использовать
unix socketвместо TCP, если PHP-FPM на том же сервере. - Настроить пулы в PHP-FPM:
pm = dynamic,pm.max_children,pm.start_servers. - Выставить
listen.backlogв соответствии с ожидаемой нагрузкой.
Оптимизация Nginx
- Подключить
fastcgi_cacheдля кэширования ответов. - Использовать
try_filesдля корректной маршрутизации. - Указать
fastcgi_read_timeout,fastcgi_buffers.
Мониторинг
- Логировать 5xx ошибки и длительные запросы.
- Контролировать загрузку FPM через
pm.status_path.