我有一個 nginx Web 服務器,它代理將流量傳遞到我 LAN 上的不同服務。在最近更新其中一項服務后,重定向停止按預期作業。重定向背后的服務是Pi-Hole,所以我不能/不想修改 Web 服務的作業方式。我只想修復重定向。
我的實際 nginx 配置如下所示:
server {
listen 80;
listen [::]:80;
server_name servername.xyz localhost default;
access_log /var/log/nginx/servername-xyz.access.log;
error_log /var/log/nginx/servername-xyz.error.log;
location = /pihole {
return 301 http://servername.xyz/pihole/admin;
}
location = /pihole/ {
return 301 http://servername.xyz/pihole/admin;
}
location /pihole/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:31480/;
}
location = / {
return 418;
}
}
此配置運行良好。每次我在瀏覽器中寫東西時http://servername.xyz/pihole,我都會自動獲得重定向http://servername.xyz/pihole/admin并開始完美地使用 Pi-Hole Web 控制臺。
在最后一次 Pi-Hole 更新中,他們做了一個小改動,破壞了重定向。現在,每次您請求http://pi-hole.domain/adminWeb 控制臺時,都會自動重定向到http://pi-hole.domain/admin/. 請注意第二個 URL 末尾的斜杠。
在我的配置中,這意味著以下行為:
- 我問瀏覽器
http://servername.xyz/pihole - 我得到
301并去http://servername.xyz/pihole/admin - 在這里,我從 Pi-Hole Web 控制臺獲得了一個出乎我意料的重定向,它使我轉到:
http://servername.xyz/admin/. 注意結尾的斜線。
當我進入第三步時,重定向不允許我進入 Pi-Hole Web 控制臺。我已經嘗試對規則進行一些更改,但我沒有成功301實作http://servername.xyz/admin/避免 Pi-Hole Web 控制臺重定向的目標。
uj5u.com熱心網友回復:
非常感謝理查德的史密斯評論。它讓我修復了組態檔。現在proxy_pass檔案中的操作如下所示:
location /pihole/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:31480/;
proxy_redirect http://servername.xyz/admin/ http://servername.xyz/pihole/admin/;
}
包含proxy_redirect指令后,事情又開始作業了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/419840.html
標籤:
