nginx+;fcgiwrap错误“;fastcgi请求记录太大”;

nginx+;fcgiwrap错误“;fastcgi请求记录太大”;,nginx,github,limit,fastcgi,webhooks,Nginx,Github,Limit,Fastcgi,Webhooks,我有一个自动部署bash脚本,它由github-webhook通过nginx+fcgiwrap为任何推送事件调用。但当github webhook POST请求的有效负载大于64kb时,我在nginx error.log中得到以下错误,并且未调用脚本 fastcgi请求记录太大 下面是此webhook的nginx位置块: location /deploy { gzip off; client_body_buffer_size 1M; fastcgi_pass unix:/

我有一个自动部署bash脚本,它由github-webhook通过nginx+fcgiwrap为任何推送事件调用。但当github webhook POST请求的有效负载大于64kb时,我在nginx error.log中得到以下错误,并且未调用脚本

fastcgi请求记录太大

下面是此webhook的nginx位置块:

location /deploy {
    gzip off;
    client_body_buffer_size 1M;
    fastcgi_pass unix:/var/run/fcgiwrap.socket;
    include /etc/nginx/fastcgi_params;
    fastcgi_param DOCUMENT_ROOT /var/www;
    fastcgi_param REQUEST_BODY $request_body;
    fastcgi_param SCRIPT_FILENAME /var/www/deploy.sh;
}

有没有办法提高这个限额?或者是否有其他方法将请求正文传递给脚本并运行它?

通过使用以下解决方法解决了该问题:

        location /deploy {
           gzip off;
           client_body_in_file_only clean;
           client_body_temp_path /var/tmp;
           fastcgi_pass_request_body off;
           include /etc/nginx/fastcgi_params;
           fastcgi_param REQUEST_BODY_FILE $request_body_file;
           fastcgi_param SCRIPT_FILENAME /var/www/deploy.sh;
           fastcgi_pass unix:/var/run/fcgiwrap.socket;
        }
在这种情况下,我们通过临时文件将请求主体传递给脚本,并禁用直接传递以避免上述错误