Nginx
Nginx 重寫 url 以進行代理傳遞
所以我在一個 kubernetes 集群中有兩個 nginx 伺服器。我希望一個 nginx 伺服器充當另一個為我的 phpmyadmin 文件提供服務的反向代理。
要從第一台伺服器訪問我的 phpmydadmin,使用者必須輸入:
https://mynginx.example/phpmyadmin
我希望我的 nginx 伺服器在代理通過之前重寫 URI,並將 /phpmyadmin 替換為 /。我現在寫這個
location /phpmyadmin { rewrite /phpmyadmin(/.*) $1 break; proxy_pass https://phpmyadmin.default.svc.cluster.local:5000; }
但實際上,當它返回 404 錯誤並且當我看到服務於 phpmyadmin 的 nginx 上的日誌時,我看到:
19 open() "/var/www/localhost/htdocs/phpmyadmin/phpmyadmin" failed (2: No such file or directory)
它似乎沒有用 / 替換我的 /phpmyadmin。
我所有的配置文件是:
server { listen 80 default_server; listen [::]:80 default_server; return 301 https://$host$request_uri; } server { listen 443 ssl default_server; root /www; index index.html; ssl_certificate /tls/tls.crt; ssl_certificate_key /tls/tls.key; location /phpmyadmin { rewrite /phpmyadmin(/.*) $1 break; proxy_pass https://phpmyadmin.default.svc.cluster.local:5000; } location ~ /wordpress(.*) { return 307 $scheme://$host:5050$1; } }
我修好了它 !這是我的正則表達式 (/.*) 的問題,我刪除了 /,現在它可以工作了感謝您的幫助和建議,我點擊連結並學到了一些東西 x)