Chcę to zrobić,
Gdy ktoś odwiedza http://localhost/route/abc
odpowiedź serwera dokładnie tak samo jakhttp://localhost:9000/abc
Teraz konfiguruję Nginx w następujący sposób:
location /route {
proxy_pass http://127.0.0.1:9000;
}
Żądanie HTTP jest wysyłane 9000
poprawnie do portu , ale ścieżka do niego http://localhost:9000/route/abc
nie jest http://localhost:9000/abc
.
Jakieś sugestie ?
/
jest dobrze udokumentowane jako sposób na usunięcie prefiksu wymienionego w lokalizacji.Uważam, że możesz użyć przepisania, aby usunąć dodatkową część adresu URL. W twoim przypadku myślę, że możesz użyć:
Jeśli jednak aplikacja zawiera linki wewnętrzne, mogą nadal wskazywać na / abc / foo, a jeśli to zrobisz, zamiast tego muszą wskazać / route / abc / foo, aby nieprzetworzone żądanie zostało poprawnie przesłane. Być może lepiej zostawić konfigurację nginx taką, jaka jest, i zamiast tego konfigurować aplikację, aby była świadoma, że mieszka w podkatalogu, jeśli możesz.
Wiem, że to stare pytanie, ale było to dla mnie hit Google, gdy próbowałem rozwiązać ten sam problem!
źródło
Spróbuj wykonać następujące czynności
źródło
vim nginx.conf
Ten kod nasłuchuje na 8080 i przekierowuje do portu 8787 na compute-1-36. Możesz wybrać inną ścieżkę w lokalizacji /
źródło