Kubernetes クラスターに 2 つの nginx サーバーがあります。1 つの nginx サーバーを、phpmyadmin ファイルを提供するもう 1 つのサーバーのリバース プロキシとして機能させたいと思います。
最初のサーバーから 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
修正しました!正規表現(/.*)の問題だったので、/を削除したら動作するようになりました。ご協力とご提案に感謝します。リンクをたどって、いくつかのことを学びましたx)