Jestem przyzwyczajony do używania Apache z mod_proxy_html i próbuję osiągnąć coś podobnego w NGINX. Konkretny przypadek użycia jest to, że mam interfejs administracyjny działa w Tomcat na porcie 8080 na serwerze w kontekście głównego:Jak przerobić adresy URL w odpowiedzi serwera proxy w NGINX
http://localhost:8080/
muszę powierzchnia to na porcie 80, ale mam inne konteksty na serwerze nginx uruchomiony na tym komputerze, więc spróbować i uzyskać dostęp do tego na:
http://localhost:80/admin/
miałem nadzieję, że poniższy bardzo prosty dom serwer zrobi to, ale to nie całkiem:
server {
listen 80;
server_name screenly.local.akana.com;
location /admin/ {
proxy_pass http://localhost:8080/;
}
}
Problem polega na tym, że zwrócona zawartość (html) zawiera adresy URL skryptów i informacji o stylu, do których dostęp jest dostępny w kontekście głównym, więc muszę przekonwertować te URL-e na początek z/admin/zamiast /.
Jak to zrobić w NGINX?
Dzięki, że bardzo pomaga.Myślę, że sub_filter to zrobi. – IanG
jestem osobliwości do jakiego stopnia nginx jest już przepisywanie wyjście, woudln't musiał ponownie napisać hosta/nazwę hosta w linki na minimum? Tak na przykład, czy nie jesteś 'sub_filter "http: // localhost /" "http: // localhost/admin /"' – ThorSummoner
Aby umożliwić przepisywanie inny niż 'text/html' mimetype, musiałem dodać również' sub_filter_types *; '. – anttikoo