Ошибка 502 Bad Gateway – это частая проблема, связанная с веб-сервером Nginx и приложением PHP-FPM. Она происходит, когда происходит превышение максимального времени ожидания ответа от приложения PHP-FPM, и Nginx не может получить ответ. Существует несколько причин возникновения ошибки 502, но чаще всего это связано с перегрузками на сервере или с некорректной настройкой приложения.

Чтобы решить проблему, можно попробовать увеличить максимальное время ожидания ответа от PHP-FPM. Для этого необходимо изменить значение параметра request_terminate_timeout в конфигурационном файле php-fpm. Например:

request_terminate_timeout = 120

Значение 120 устанавливает время ожидания ответа в 2 минуты. После изменения параметров необходимо перезапустить сервис PHP-FPM.

Если проблема не решается, необходимо проверить настройки сервера и управляющей программы PHP-FPM, а также наличие места на жестком диске сервера. Необходимо также проверить наличие настройки pm.max_children в php-fpm и соответствующие ресурсы, такие как RAM.

Если ничего из вышеперечисленного не помогает, можно попробовать увеличить количество потоков PHP-FPM. Каждый поток PHP-FPM обрабатывает один запрос, поэтому увеличение количества потоков может улучшить производительность приложения.

В целом, для решения проблемы “502 Bad Gateway сайт медленно открывается на php-fpm — failed (11: Resource temporarily unavailable)” в Nginx и PHP-FPM, необходимо тщательно проверить настройки сервера и параметры конфигурации PHP-FPM. Если возникли сложности, можно обратиться за помощью к опытным администраторам или к сообществу Nginx и PHP-FPM.

Chapter 1. Симптомы

2023/03/02 12:16:42 [error] 401#401: *7815644 connect() to unix:/run/php-fpm/php-site.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 195.191.219.131, server: megaobzor.com, request: "GET /otopitelnaya-sistema-doma.html HTTP/1.1", upstream: "fastcgi://unix:/run/php-fpm/php-site.sock:", host: "site.com"
tail -n 10000 /var/log/nginx/error.log |cut -f 19 -d ' '|sort|uniq -c|sort -nr|more
output

4030 66.249.64.185,
701 request:
156 offset
122 2a01:4f9:6a:1f81::2,
117 94.23.203.107,
96 109.238.247.83,
95 95.105.67.238,
81 91.219.254.101,
79 40.77.167.205,
78 52.167.144.158,
74 52.167.144.69,
66 52.167.144.178,
66 52.167.144.160,
64 66.249.64.187,
61 213.180.203.165,
60 95.108.213.233,
60 95.108.213.108,
60 85.192.11.202,
60 85.192.11.137,
59 95.108.213.221,
59 95.108.213.197,
58 87.250.224.244,
58 213.180.203.168,
58 207.46.13.222,
55 213.180.203.182,
55 213.180.203.169,

Chapter 2. Проблема

Не хватает оперативной памяти. Сайт находится по DDOS атакой или под сканированием ботами.

Chapter 3. Решение

Увеличить параметр в PHP-FPM

nano /etc/php/php-fpm.d/site.conf

or

nano /etc/php/php-fpm.d/www.conf

c

pm.max_children = 5

формула вычисления

PHP-FPM max_children следует повышать осторожно и постепенно, отслеживая использование swap.

Вы можете использовать формулу, подобную следующей:

pm.max_children = ((общий объем оперативной памяти в МБ) – (сколько MySQL и другие приложения занимают оперативной памяти)) / 80

Example

pm.max_children =(4000 – 1500) / 80 = 31.25

до

pm.max_children = 32

 

Ошибка NGINX — 11: Resource temporarily unavailable — На связке NGINX + PHP-FPM через unix socket

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.