в настоящее время у меня есть сервер со следующими характеристиками:
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.