代码之家  ›  专栏  ›  技术社区  ›  dovka

Nginx+fcgiwrap以高请求率抛出502坏网关

  •  0
  • dovka  · 技术社区  · 7 年前

    我正在尝试扩展在nginx下运行的立交桥fastcgi脚本,通过fcgiwrap连接。

    在m4上大约每秒140个请求之前,配置工作正常。2个大型AWS实例。

    CPU使用率仅为15%,许多请求开始失败,错误代码为502。

    显然没有权限问题。

    Nginx日志显示:

    连接()到unix:/var/run/fcgiwrap。连接到上游时套接字失败(11:资源暂时不可用),客户端:10.0.16.100,服务器:,请求:“POST/api/解释器HTTP/1.1”,上游:fastcgi://unix:/var/run/fcgiwrap.socket:“,主持人:xxxxx

    epoll_wait()报告客户端过早关闭了连接,因此在向上游发送请求时,上游连接也被关闭,客户端:10.0.31.48,服务器:,请求:“POST/api/interpreter HTTP/1.1”,上游:fastcgi://unix:/var/run/fcgiwrap.socket:",

    我得到了一个关于fcgiwrap的印象。socket或socket后面的overpass程序无法足够快地处理请求,但不确定如何优化。

    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 回复  |  直到 7 年前
        1
  •  1
  •   dovka    7 年前

    看起来像是立交桥的具体问题, 据此,当前立交桥调度员v0。7.55可以处理的并发请求数量非常有限:

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