我有自动部署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;
}
有没有办法增加这个限制?或者是否有另一种方法可以将请求正文传递给脚本并运行它?
答案 0 :(得分:0)
使用以下解决方法解决了该问题:
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;
}
在这种情况下,我们将请求正文传递给通过临时文件的脚本并禁用直接传递以避免上述错误。