所以我在 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;
}
}
答案1
我修好它 了 !這是我的正規表示式 (/.*) 的問題,我刪除了 /,現在它可以工作了。