Chapter 1. Симптомы
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" |
1 |
tail -n 10000 /var/log/nginx/error.log |cut -f 19 -d ' '|sort|uniq -c|sort -nr|more |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
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
1 |
nano /etc/php/php-fpm.d/site.conf |
or
1 |
nano /etc/php/php-fpm.d/www.conf |
c
1 |
pm.max_children = 5 |
формула вычисления
PHP-FPM max_children следует повышать осторожно и постепенно, отслеживая использование swap.
Вы можете использовать формулу, подобную следующей:
pm.max_children = ((общий объем оперативной памяти в МБ) — (сколько MySQL и другие приложения занимают оперативной памяти)) / 80
Example
pm.max_children =(4000 — 1500) / 80 = 31.25
до
1 |
pm.max_children = 32 |
Ошибка NGINX — 11: Resource temporarily unavailable — На связке NGINX + PHP-FPM через unix socket