Ich habe also zwei Nginx-Server in einem Kubernetes-Cluster. Ich möchte, dass ein Nginx-Server als Reverse-Proxy für den anderen fungiert, der meine phpMyAdmin-Dateien bereitstellt.
Um vom ersten Server aus auf meinen phpmydadmin zuzugreifen, muss der Benutzer Folgendes eingeben:
https://mynginx.example/phpmyadmin
Daraufhin möchte ich, dass mein Nginx-Server die URI vor dem Proxy-Pass neu schreibt und dabei /phpmyadmin durch / ersetzt.
Ich schreibe dies jetzt
location /phpmyadmin {
rewrite /phpmyadmin(/.*) $1 break;
proxy_pass https://phpmyadmin.default.svc.cluster.local:5000;
}
Aber tatsächlich wird mir ein 404-Fehler zurückgegeben und ich sehe mir die Protokolle auf Nginx an, das phpMyAdmin bedient. Dabei sehe ich:
19 open() "/var/www/localhost/htdocs/phpmyadmin/phpmyadmin" failed (2: No such file or directory)
Es scheint mein /phpmyadmin nicht durch / zu ersetzen.
Meine gesamte Konfigurationsdatei ist:
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;
}
}
Antwort1
Ich habe es repariert! Es war ein Problem mit meinem regulären Ausdruck (/.*), ich habe das / entfernt und jetzt funktioniert es. Danke für eure Hilfe und Vorschläge. Ich bin den Links gefolgt und habe einiges gelernt x)