Итак, у меня есть два сервера nginx в кластере kubernetes. Я хочу, чтобы один сервер 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 и я смотрю логи на nginx, который обслуживает phpmyadmin, я вижу:
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)