来自 Github 的 Webhook 正在通过 Nginx 代理。
Webhook 使用机密,并且标头以 X-Hub-Signature-256 的形式发送。
我想要发出 Nginx 过滤请求,即我需要 Nginx 获取 webhook 标头值并将其与 $SECRET_TOKEN 进行比较。如果密钥正确,它将发送 200,如果不正确,它将发送 403。
我想到过这样的事情,但找不到实现它的方法:
server {
listen 80;
server_name _;
location /payload {
#Read the header sent by the webhook
#If the header content matches $SECRET_TOKEN I defined on Nginx then return 200
#Else, return 403
}
}
请帮助实现这个伪,因为我在网上找不到任何示例。
提前致谢。
答案1
在http
级别上,创建一个map
:
map $http_x_hub_signature_256 $retcode {
<token> 200;
default 403;
}
您的位置是:
location /payload {
return $retcode;
}