我有一個設定,可以通過 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;
}
}
uj5u.com熱心網友回復:
使用proxy_pass而不是 301 重定向
server {
listen 80;
server_name hooks.slack.com;
location / {
proxy_pass https://hooks.slack.com;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/315307.html
