是否可以通过 NGINX 代理发送 webhook

Is it possible to send webhook through NGINX proxy

我有一个设置,可以通过 nginx 代理访问我的 docker 容器。所有容器都在内部网络中,无法访问互联网。 现在我需要从我的 docker 容器发送 webhook 到 slack。在容器中,我编辑了文件“/etc/hosts”,只是向我的代理添加了一条记录,类似于 hooks.slack.com。我这样做是因为容器向代理发送请求,在该代理获取它并重定向到互联网原始 hooks.slack.com.

server {
    listen 80;
    server_name hooks.slack.com;
    return 301 https://hooks.slack.com$reques_uri;
}

当我从我的 docker 容器中通过 CURL 对此进行测试时,我得到了答案 301,但什么也没发生,没有消息传递给 slack。

已解决:

需要添加这个而不是我的实际设置。

server {
listen 80;
server_name hooks.slack.com
location / {
    proxy_pass  https://hooks.slack.com;
    proxy_pass_header Server;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Scheme $scheme;
}

}

使用proxy_pass代替301重定向

server {
    listen 80;
    server_name hooks.slack.com;
    location / {
        proxy_pass  https://hooks.slack.com;
    }
}