【发布时间】:2021-10-08 21:47:14
【问题描述】:
我有一个设置,我可以通过 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;
}
当我通过 CURL 从我的 docker 容器中对此进行测试时,我得到了答案 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;
}
}
【问题讨论】:
标签: docker nginx proxy webhooks