Nginx + fcgiwrap выбрасывает 502 Bad Gateway с высокой частотой запросов - PullRequest
0 голосов
/ 27 декабря 2018

Я пытаюсь масштабировать мой сценарий overpass fastcgi, который работает под nginx, подключаясь через fcgiwrap.

Конфигурация работает нормально до 140 запросов в секунду на экземпляре m4.2xlarge AWS.

Используется процессор только 15%, и многие запросы начинают сбой с кодом ошибки 502.

Очевидно, что нет никаких проблем с разрешениями.

Журналы Nginx показывают:

connect () к unix: /var/run/fcgiwrap.socket не удалось (11: ресурс временно недоступен) при подключении к восходящему каналу, клиенту: 10.0.16.100, серверу:, запрос: «POST / api / интерпретатор HTTP/1.1 ", upstream:" fastcgi: // unix: /var/run/fcgiwrap.socket: ", хост: xxxxx

и

epoll_wait () сообщилиэтот клиент преждевременно закрыл соединение, поэтому восходящее соединение также закрывается при отправке запроса в восходящий поток, клиент: 10.0.31.48, сервер:, запрос: «POST / api / интерпретатор HTTP / 1.1», восходящий поток: «fastcgi: // unix: /var / run / fcgiwrap.socket: ",

У меня складывается впечатление, что fcgiwrap.socket или программа обхода за сокетом не могут передавать запросы достаточно быстро, однако не уверены, как это можно оптимизировать.

Конфигурация Nginx:

server {
   listen 80;

location / {
     add_header Allow "GET, POST, PUT, DELETE" always;
} 

location /cgi-bin/ {
                    include        fastcgi_params;
                    fastcgi_param  SCRIPT_FILENAME  /app/$fastcgi_script_name;
                    fastcgi_param  PATH_INFO        $fastcgi_path_info;
                    fastcgi_pass   unix:/var/run/fcgiwrap.socket;
                    fastcgi_buffers 8 16k;
                    fastcgi_buffer_size 32k;
                    fastcgi_connect_timeout 300;
                    fastcgi_send_timeout 300;
                    fastcgi_read_timeout 300;
            }

}

1 Ответ

0 голосов
/ 03 января 2019

Похоже на проблему, связанную с путепроводом, в соответствии с этим текущий диспетчер путепровода v0.7.55 имеет очень ограниченное число одновременных запросов, которые он может обработать:

https://github.com/drolbr/Overpass-API/issues/340

...