Moje pytanie jest podobne do Nginx Relative URL to Absolute Rewrite Rule? - ale z dodatkowym akcentem.proxying względne adresy URL z nginx
Mam nginx działające jako serwer proxy, który proxy dla wielu aplikacji, podobny do tego (uproszczony) config:
server {
listen 80;
server_name example.com;
location /app1 {
proxy_pass http://app1.com;
}
location /app2 {
proxy_pass http://app2.com;
}
}
Działa to dobrze, ale jak w drugim pytaniu tych aplikacji (app1
i app2
) użyj względnych adresów URL, takich jak /css/foo.css
lub /js/bar.js
. Również dużym problemem jest poproszenie wszystkich aplikacji o zmianę na coś takiego jak /app1/css/foo.css
.
Czy możliwe jest inteligentne sprawdzenie, która aplikacja powinna obsłużyć żądanie? FTR, użytkownicy mieliby dostęp do takich aplikacji:
http://example.com/app1/fooaction
lub http://example.com/app2/baraction
.
Jeśli ma to znaczenie, wszystkie aplikacje są oparte na Java/Tomcat.
TIA!
można wyjaśnić trochę więcej, co staramy się osiągnąć? Czy chcesz przekazać żądanie "/css/foo.css" do app1 i "/js/bar.js" do app2? – danielgpm
Tak. Jeśli app1 prosi o /css/foo.css, powinien być proxowany do app1.com/css/foo.css. Jeśli app2 żąda pliku /js/bar.js, powinien być proxited do app2.com/js/bar.js. – ragebiswas