Назад | Перейти на главную страницу

Nginx php-fpm избавляется от ошибки 502 на сайте с высокой посещаемостью

в настоящее время у меня есть сервер со следующими характеристиками:

32 core
128gb RAM
1TB SSD hardisk
5Gbps network uplink

текущая настройка - nginx + php-fpm без какой-либо настройки балансировки нагрузки

nginx.conf

fastcgi_connect_timeout 9000;
fastcgi_send_timeout 9000;
fastcgi_read_timeout 9000;
fastcgi_buffer_size 256k;
fastcgi_buffers 256 16k;

fastcgi_busy_buffers_size 512k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;


    location ~ [^/]\.php(/|$)
    {
        try_files $uri =404;
        fastcgi_pass  unix:/tmp/php-cgi-56.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
        include pathinfo.conf;
    }

php-fpm.conf

[www]
listen = /tmp/php-cgi-56.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = static
pm.status_path = /phpfpm_56_status
pm.max_children = 2000
pm.start_servers = 40
pm.min_spare_servers = 40
pm.max_spare_servers = 300
request_terminate_timeout = 9000
request_slowlog_timeout = 0s
slowlog = var/log/slow.log

независимо от того, как я меняю конфигурацию, я все еще получаю ошибку 502 с php-fpm, использование оперативной памяти на сервере составляет около 12-15 ГБ максимум, у нас много оперативной памяти, но загрузка процессора для php-fpm высока. Если у вас есть какие-либо представления о конфигурации, предложите или прокомментируйте.

В противном случае, я думаю о настройке балансировки нагрузки, как показано ниже, может понадобиться ваша идея:

1) Использование HaProxy

2) Использование Nginx и нескольких серверов в качестве пула PHP-FPM:

3) Используйте текущий сервер с несколькими пулами php-fpm

upstream php {
    server 127.0.0.1:9001       max_fails=3 fail_timeout=30s;
    server 127.0.0.1:9002     max_fails=3 fail_timeout=30s;
    server 127.0.0.1:9003     max_fails=3 fail_timeout=30s;
}

какой из них вам больше подходит? мне просто нужно избавиться от проблемы 502.