Wir sollten zuerst die Dokumentation zu proxy_pass sorgfältig und vollständig lesen .
Der an den Upstream-Server übergebene URI wird basierend darauf bestimmt, ob die Direktive "proxy_pass" mit dem URI verwendet wird oder nicht. Ein abschließender Schrägstrich in der Anweisung proxy_pass bedeutet, dass der URI vorhanden und gleich ist /
. Der Unsinn eines abschließenden Schrägstrichs bedeutet, dass keine URI vorhanden ist.
Proxy_pass mit URI :
location /some_dir/ {
proxy_pass http://some_server/;
}
Mit dem oben genannten gibt es den folgenden Proxy:
http:// your_server/some_dir/ some_subdir/some_file ->
http:// some_server/ some_subdir/some_file
Grundsätzlich /some_dir/
wird ersetzt durch /
, um den Anforderungspfad von /some_dir/some_subdir/some_file
nach zu ändern /some_subdir/some_file
.
Proxy_pass ohne URI :
location /some_dir/ {
proxy_pass http://some_server;
}
Mit dem zweiten (kein abschließender Schrägstrich): Der Proxy sieht folgendermaßen aus:
http:// your_server /some_dir/some_subdir/some_file ->
http:// some_server /some_dir/some_subdir/some_file
Grundsätzlich wird der vollständige ursprüngliche Anforderungspfad ohne Änderungen weitergegeben.
In Ihrem Fall sollten Sie also einfach den abschließenden Schrägstrich fallen lassen, um das zu erhalten, was Sie möchten.
Vorbehalt
Beachten Sie, dass das automatische Umschreiben nur funktioniert, wenn Sie in proxy_pass keine Variablen verwenden. Wenn Sie Variablen verwenden, sollten Sie sich selbst neu schreiben:
location /some_dir/ {
rewrite /some_dir/(.*) /$1 break;
proxy_pass $upstream_server;
}
Es gibt andere Fälle, in denen das Umschreiben nicht funktioniert. Deshalb ist das Lesen der Dokumentation ein Muss.
Bearbeiten
Wenn Sie Ihre Frage noch einmal lesen, habe ich möglicherweise übersehen, dass Sie nur die HTML-Ausgabe bearbeiten möchten.
Dafür können Sie die Direktive sub_filter verwenden . Etwas wie ...
location /admin/ {
proxy_pass http://localhost:8080/;
sub_filter "http://your_server/" "http://your_server/admin/";
sub_filter_once off;
}
Grundsätzlich die Zeichenfolge, die Sie ersetzen möchten, und die Ersatzzeichenfolge