De ce proxy_pass http://backends/;
sub locație /textcat
adu-mă la rădăcina serverului (localhost:8081
) și proxy_pass http://backend-uri;
(fără urmă /) mă aduce la (aparent) localhost:8081/textcat
.
Încerc să găzduiesc două aplicații care rulează local pe server. Aceste două aplicații rulează pe port 8081
și 8082
. Aș dori să accesez aplicația la 8081
prin intermediul /textcat
locație și 8082
prin intermediul /ner
. Am reușit să fac asta cu configurația de mai jos. Dar nu prea înțeleg de ce funcționează asta?
backend-uri în amonte {
server localhost:8081; # schimbați portul pe care ascultă aplicația web.
}
backends în amonte_NER {
server localhost:8082; # schimbați portul pe care ascultă aplicația web.
}
Server {
asculta 443 ssl;
numele serverului "";
...Lucruri SSL...
locație = /textcat {
proxy_pass http://backends/;
}
locație /ner {
proxy_pass http://backends_NER/;# Acest lucru pare să funcționeze din cauza slash-ului final. Deoarece http_referrer este /ner calea noastră proxy trebuie să aibă următorul /
}
# trebuie să redirecționeze la orice solicitare de locație, iar dacă referrerul este /textcat face localhost:8081
Locație / {
dacă ($http_referer ~* (/textcat) ) {
proxy_pass http://localhost:8081;
}
dacă ($http_referer ~* (/ner) ) {
proxy_pass http://localhost:8082;
}
}
}