是否可以通过 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;
}
}
我有一个设置,可以通过 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;
}
}