502 Bad Gateway при 100 последовательных запросах AJAX

alexandr_kulik

Новичок
Добрый день. Нужен совет профи, т.к. уже все перерыл ничего не помогает и не могу решить проблему.
VPS Ubuntu стоит Nging +PHP-FPM7.4
Сайт работает нормально, но как только клиент загружает у себя в кабинете свои профили их там 100+, то они прогружаются через AJAX последовательно, т.е. пошел запрос ответ запрос ответ и т.д. не параллельно, и вот каждый раз на какой то шаге обрывает и выдает ошибку 502 Bad Gateway

Настройки PHP такие
Код:
[rkoffice]
pm = dynamic
pm.max_children = 25
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 25
pm.max_requests = 500
php_admin_value[display_errors] = stderr
php_admin_value[log_errors] = On
php_admin_value[error_log] = /opt/php74/var/log/php.log
slowlog = /opt/php74/var/log/php_slow.log
request_slowlog_timeout=30s
php_admin_value[error_reporting] = E_ALL & ~E_NOTICE
;listen = /var/www/php-fpm/rkoffice.sock
listen = 127.0.0.1:9000
listen.mode = 0660
listen.owner = rkoffice
listen.group = www-data
user = rkoffice
group = rkoffice
chdir = /
Настройки NGINX
Код:
user www-data;
worker_processes auto;
worker_cpu_affinity auto;
worker_rlimit_nofile 30000;
 
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
 
 
events {
    use epoll;
    worker_connections 2048;
    multi_accept on;
}
 
 
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
 
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
 
    #access_log  /var/log/nginx/access.log  main;
    access_log  off;
  
    limit_conn_zone $binary_remote_addr zone=lone:10m;
    limit_req_zone $binary_remote_addr zone=ltwo:10m rate=20r/s;
    limit_req_zone $binary_remote_addr zone=highspeed:10m rate=50r/s;
  
    proxy_connect_timeout 5;
    proxy_send_timeout 10;
    proxy_read_timeout 10;
    proxy_buffer_size 4k;
    proxy_buffers 32 16k;
    proxy_busy_buffers_size 32k;
  
 
    set_real_ip_from  127.0.0.1;
    sendfile        on;
    tcp_nopush     on;
    tcp_nodelay on;
    types_hash_max_size 2048;
  
    client_body_buffer_size 128k;
        client_header_buffer_size 4k;
        ###fastcgi_buffers 64 4K;
        fastcgi_buffer_size 32k;
        fastcgi_buffers 256 16k;
        fastcgi_max_temp_file_size 0;
        fastcgi_connect_timeout 300;
        large_client_header_buffers 8 32k;
        client_body_timeout   10;
        client_header_timeout 10;
        keepalive_timeout     65000;
        send_timeout          10;
        reset_timedout_connection on;
        server_names_hash_bucket_size 64;
        server_tokens off;
      
        gzip  on;
        gzip_static 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;
      
        ##proxy_connect_timeout  600s;
        ##proxy_send_timeout  600s;
        ##proxy_read_timeout  600s;
        fastcgi_send_timeout 600s;
        fastcgi_read_timeout 600s;
        server_name_in_redirect off;
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/vhosts/*/*.conf;
    client_max_body_size 1024m;
    server {
        server_name localhost;
    disable_symlinks if_not_owner;
    include /etc/nginx/vhosts-includes/*.conf;
    location @fallback {
        error_log /dev/null crit;
        proxy_pass http://127.0.0.1:8080;
        proxy_redirect http://127.0.0.1:8080 /;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        access_log off ;
    }
    listen 80;
    listen [::]:80;
    }
}
В настройках Loaction так

Код:
location / {
        location ~ [^/]\.ph(p\d*|tml)$ {
            try_files /does_not_exists @php;
        }
        location / {
            try_files $uri $uri/ /index.php?$uri&$args; index index.php index.html;
            limit_req zone=highspeed burst=600 nodelay;
            fastcgi_buffers 16 256k;
            fastcgi_buffer_size 512k;
            #fastcgi_pass 127.0.0.1:9000;
            #fastcgi_pass unix:/var/www/phpfpm/rkoffice.sock;
        }
        limit_req zone=highspeed burst=600 nodelay;
        fastcgi_pass 127.0.0.1:9000;
        #fastcgi_pass unix:/var/www/php-fpm/rkoffice.sock;
    }
    location @php {
        fastcgi_index index.php;
        fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f [email protected]";
        #fastcgi_pass unix:/var/www/php-fpm/rkoffice.sock;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
        try_files $uri =404;
        include fastcgi_params;
        limit_req zone=highspeed burst=600 nodelay;
    }
Может кто то сталкивался, поделитесь опытом, потому что уже много чего пробовал но не помогает вот вылазит периодически и все, думаю может какие то настройки по количесвту запросов в какой то промежуток времени где то срабатывает, потому что если меньше грузить не 100, а к пример 20 то нормально все отрабатывает, а когда 100 бывает на 50 обрывает бывает на 90 по разному
 

AmdY

Пью пиво
Команда форума
Посмотрите в логах конкретную ошибку. Быть может что угодно, вроде банального втыкания в лок файла сессий.
 

alexandr_kulik

Новичок
Посмотрите в логах конкретную ошибку. Быть может что угодно, вроде банального втыкания в лок файла сессий.
Да вот все логи просмотрел нет ничего, по PHP бывает выдает что не хватает памяти на скрипт но они по времени не совпадают, т.е. ошибка по памяти там утро раз была и все, а ошибка 502 постоянно как хочу прогрузить список.
Вот думаю PHP реализован на сокетах может где то есть ограничения по кол-ву запросов в единицу времени
 

alexandr_kulik

Новичок
а зачем? в чем смысл сей процедуральной коммуникации?
У пользователя есть 100 аккаунтов ВК и в кабинете они прогружаются все со всеми счетчиками и информацией по кабинету.
Выдать сразу все много запросов т.к. по каждому аккаунту нужно CURL через API получать данные, вот и реализовано на AJAX последовательная загрузка страниц друг за другом, но на каком то шаге получаю 502, это не от ВК ответ не ошибка по запросу это именно по серверу, и пробовал когда вообще такая ошибка выходит и ничего не работает, то перезапускаю службу nginx не помогает, а вот перезапускаю php-fpm все работает, т.е. думаю затык где то в php
php7.4 стоит
 

fixxxer

К.О.
Партнер клуба
Надо не гадать, а смотреть логи.

Код:
php_admin_value[error_log] = /opt/php74/var/log/php.log
slowlog = /opt/php74/var/log/php_slow.log
Не для красоты же это написано?
 
Сверху