Ошибка 502 в nginx + php5-fpm

У меня есть некоторая ошибка с subj. Сервер не загружен с высокой нагрузкой: ~ 15% CPU, есть несколько Гб памяти, жесткий диск не работает. Но ошибка 502 бросается примерно в 3% случаев.

Программы: Debian 6, nginx / 0.7.62, php5-fpm (5.3.3-1).

В error.log nginx есть эта ошибка:

connect() to unix:/var/run/php5-fpm.sock failed 

Состояние php5-fpm обычно выглядит так:

 accepted conn: 41680 pool: www process manager: dynamic idle processes: 258 active processes: 1 total processes: 259 

Я думаю, эта средняя загрузка невелика.

Я увеличил параметры backlog: в sysctl – net.core.somaxconn = 5000, в php-fpm pool – listen.backlog = 5000. Никакого эффекта.

Я цитирую конфигурацию:

/etc/nginx/nginx.conf

 user www-data; worker_processes 8; timer_resolution 100ms; worker_rlimit_nofile 20240; worker_priority -5; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 2048; use epoll; # multi_accept on; } http { include /etc/nginx/mime.types; access_log /var/log/nginx/access.log; sendfile on; tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; tcp_nodelay on; gzip on; gzip_min_length 1100; gzip_buffers 64 8k; gzip_comp_level 3; gzip_http_version 1.1; gzip_proxied any; gzip_types text/plain application/xml application/x-javascript text/css; gzip_disable "MSIE [1-6]\.(?!.*SV1)"; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; client_max_body_size 100M; server_tokens off; } 

/ и т.д. / Nginx / php_location

 fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; fastcgi_buffers 256 128k; #fastcgi_buffer_size 16k; #fastcgi_busy_buffers_size 256k; fastcgi_connect_timeout 300s; fastcgi_send_timeout 300s; fastcgi_read_timeout 300s; include fastcgi_params; 

пул php-fpm

 [www] listen = /var/run/php5-fpm.sock listen.backlog = 5000 listen.owner = www-data listen.group = www-data listen.mode = 0666 user = www-data group = www-data pm = dynamic pm.max_children = 1024 pm.start_servers = 64 pm.min_spare_servers = 64 pm.max_spare_servers = 128 pm.max_requests = 32000 pm.status_path = /system/php5-fpm-status slowlog = /var/www/log/php-fpm.log.slow chdir = /var/www 

Что я могу сделать, чтобы оптимизировать эту систему и использовать все ресурсы сервера?

PS. Извините, мой английский плохой.

Проблема связана с самими сокетами, проблемы с большими нагрузками хорошо известны. Пожалуйста, рассмотрите возможность использования TCP \ IP-соединения вместо unix-сокета, для чего вам необходимо внести следующие изменения:

  • в конфигурации пула php-fpm замените listen = /var/run/php5-fpm.sock с помощью listen = 127.0.0.1:7777
  • в / etc / nginx / php_location замените fastcgi_pass unix:/var/run/php5-fpm.sock; с fastcgi_pass 127.0.0.1:7777;

На Centos 7, Plesk 12.5

У меня была эта проблема после того, как мой harddisc поступил, и некоторые службы потерпели неудачу. Другие домены работают отлично, но ни один из них не только дал мне 502, но и напоминал таймауты. Из журнала ошибок:

 [crit] 3112#0: *65746768 connect() to unix:///var/www/vhosts/system/sub.domain.de/php-fpm.sock failed (2: No such file or directory) while connecting to upstream 

Чтобы решить эту проблему, мне пришлось (сначала сделать пространство доступным, а затем) перезапустить php-fpm и nginx – тогда эта ошибка исчезла!

Единственная причина, по которой этот файл не создан, – это настройка на /etc/php-fpm.d/www.conf

Изменить listen = 127.0.0.1:9000

С listen = /var/run/php-fpm/php-fpm.sock

А затем перезапустите nginx и php-fpm

Я та же проблема, но не хотел переключаться с сокетов на TCP / IP. Перезапуск php-fpm и nginx решит проблему.

 sudo /etc/init.d/php-fpm restart sudo /etc/init.d/nginx restart