nginx ОШИБКА 502 и ресурс временно недоступен) при подключении к восходящему потоку, клиенту

Это мой первый nginx. Для всех сайтов на моем новом сервере кажется, что как только nginx обслужил некоторый объем трафика, он начинает обслуживать « ERROR 502 - Bad Gateway! ». Давайте посмотрим на некоторые журналы и конфигурацию ...

ОС : Ubuntu 16.04 (Сервер)

Аппаратное обеспечение : 6 ядер, 12 ГБ ОЗУ

Панель : ISPConfig

версия nginx : 1.10.3

/var/www/example/log/error.log :

: Resource temporarily unavailable) while connecting to upstream, client: 216.170.123.179, server: example.com, request: "GET /KHFxygk9 HTTP/1.1", upstream: "fastcgi://unix:/var/lib/php7.0-fpm/web3.sock:", host: "example.com", referrer: "http://example.com/"
2017/08/10 06:01:06 [error] 15408#15408: *31372 connect() to unix:/var/lib/php7.0-fpm/web3.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 192.3.114.12, server: example.com, request: "GET /jiPNQjwp HTTP/1.1", upstream: "fastcgi://unix:/var/lib/php7.0-fpm/web3.sock:", host: "example.com", referrer: "http://example.com/"

/etc/php/7.0/fpm/pool.d/www.conf :

[www]    
user = www-data
group = www-data

listen = /run/php/php7.0-fpm.sock

listen.owner = www-data
listen.group = www-data

pm = dynamic
pm.max_children = 12    
pm.start_servers = 2    
pm.min_spare_servers = 1    
pm.max_spare_servers = 3    
pm.max_requests = 500

/etc/nginx/nginx.conf :

user www-data;
worker_processes auto;
pid /run/nginx.pid;

events {
        worker_connections 768;
}

http {

        ##
        # Basic Settings
        ##

        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ##
        # SSL Settings
        ##

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;

        ##
        # Logging Settings
        ##

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        ##
        # Gzip Settings
        ##

        gzip on;
        gzip_disable "msie6";


        ##
        # Virtual Host Configs
        ##

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}

~ # systemctl status php7.0-fpm :

● php7.0-fpm.service - The PHP 7.0 FastCGI Process Manager
   Loaded: loaded (/lib/systemd/system/php7.0-fpm.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2017-08-10 04:44:16 UTC; 1h 30min ago
  Process: 20310 ExecReload=/bin/kill -USR2 $MAINPID (code=exited, status=0/SUCCESS)
  Process: 20302 ExecReload=/usr/lib/php/php7.0-fpm-checkconf (code=exited, status=0/SUCCESS)
  Process: 13060 ExecStartPre=/usr/lib/php/php7.0-fpm-checkconf (code=exited, status=0/SUCCESS)
 Main PID: 13070 (php-fpm7.0)
   Status: "Processes active: 20, idle: 12, Requests: 6874, slow: 0, Traffic: 0.3req/sec"
   CGroup: /system.slice/php7.0-fpm.service
       ├─13070 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)                      
       ├─13072 php-fpm: pool apps-{fpm_domain}                                              
       ├─13073 php-fpm: pool apps-{fpm_domain}                                              
       ├─13074 php-fpm: pool ispconfig                                                      
       ├─13075 php-fpm: pool ispconfig                                                      
       ├─13076 php-fpm: pool web1                                                           
       ├─13077 php-fpm: pool web1                                                           
       ├─13079 php-fpm: pool web2                                                           
       ├─13080 php-fpm: pool web3                                                           
       ├─13081 php-fpm: pool web3                                                           
       ├─13082 php-fpm: pool web4                                                           
       ├─13083 php-fpm: pool web4                                                           
       ├─13084 php-fpm: pool web5                                                           
       ├─13085 php-fpm: pool web5                                                           
       ├─13087 php-fpm: pool www                                                            
       ├─13088 php-fpm: pool www                                                            
       ├─16186 php-fpm: pool web3                                                           
       ├─16603 php-fpm: pool web3                                                           
       ├─16604 php-fpm: pool web3                                                           
       ├─16605 php-fpm: pool web3                                                           
       ├─16609 php-fpm: pool web3                                                           
       ├─16614 php-fpm: pool web3                                                           
       ├─16629 php-fpm: pool web3                                                           
       ├─16630 php-fpm: pool web3                                                           
       ├─18019 php-fpm: pool web2                                                           
       ├─18026 php-fpm: pool web2                                                           
       ├─18027 php-fpm: pool web2                                                           
       ├─18028 php-fpm: pool web2                                                           
       ├─18369 php-fpm: pool web2                                                           
       ├─18370 php-fpm: pool web2                                                           
       ├─18410 php-fpm: pool web2                                                           
       ├─18411 php-fpm: pool web2
       └─18413 php-fpm: pool web2                                                           
Aug 10 04:44:16 web1.example.com systemd[1]: Stopped The PHP 7.0 FastCGI Process Manager.
Aug 10 04:44:16 web1.example.com systemd[1]: Starting The PHP 7.0 FastCGI Process Manager...
Aug 10 04:44:16 web1.example.com systemd[1]: Started The PHP 7.0 FastCGI Process Manager.
0
задан 10 August 2017 в 12:59
3 ответа

Вам необходимо увеличить настройку php-fpm max для детей pm.max_children . Текущее значение - 12.

Можете ли вы также прикрепить журнал ошибок php-fpm?

0
ответ дан 4 December 2019 в 13:30

у вас есть несоответствие в cfg, в php define listen = /run/php/php7.0-fpm.sock, но nginx пытается подключиться к fastcgi : // unix: /var/lib/php7.0-fpm/web3.sock . Установите одинаковое значение в обоих местах (php и nginx)

2
ответ дан 4 December 2019 в 13:30

Эти ошибки могут быть вызваны отсутствием максимально допустимого количества подключений к сокетам (обычно по умолчанию 128). Вы можете просмотреть текущий лимит, выполнив cat / proc / sys / net / core / somaxconn , и настоятельно рекомендуется увеличить этот лимит:

sudo echo "net.core.somaxconn = 65535" | tee -a /etc/sysctl.conf
sudo sysctl -p

И проверьте, изменилось ли оно cat / proc / sys / net / core / somaxconn .

Также эти ошибки могут быть вызваны недостаточным количеством очереди невыполненных входящих соединений (чаще всего по умолчанию 1000). Проверьте текущий лимит, выполнив cat / proc / sys / net / core / netdev_max_backlog . Рекомендуется увеличить лимит:

sudo echo "net.core.netdev_max_backlog = 65535" | tee -a /etc/sysctl.conf
sudo sysctl -p

И проверить, не изменилось ли оно cat / proc / sys / net / core / netdev_max_backlog

Примечание: невозможно последовать моему совету, если эти проблемы появились у вас OpenVZ VPS, потому что вы не можете изменить параметры ядра с помощью этого типа виртуализации. Лучшим вариантом в этом случае является попытка использовать прослушивание порта в конфигурации пула php-fpm вместо сокета (например, listen = 9000). Проверьте занятые порты на предмет доступных, выполнив sudo netstat -tunlp .

10
ответ дан 7 January 2020 в 12:05

Теги

Похожие вопросы