Jak skonfigurować wspólny blok konfiguracji dla zestawu lokalizacji?
location / {
proxy_pass http://127.0.0.1:9000/;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache cache-test;
proxy_cache_valid 200 302 24h;
proxy_cache_valid 404 60s;
add_header X-Cache-Status $upstream_cache_status;
}
location /api/0.1/user{
proxy_cache_key /user/$http_authorization;
}
Teraz, jeśli spróbuję uzyskać dostęp do /api/0.1/user, dostanę 404, ponieważ nie przekazuje żądania do 127.0.0.1:9000
Większość zmiennych konfiguracyjnych proxy_ * jest również dozwolonych w kontekście serwera, więc można je przenieść w górę, aby udostępnić te same ustawienia w kilku lokalizacjach.
Jednak proxy_pass powinien być używany tylko w obrębie lokalizacji. Powinieneś więc mieć przynajmniej tę dyrektywę w każdej lokalizacji, opcjonalnie zastępując wartości niektórych dodatkowych zmiennych proxy_ *.
źródło
proxy_set_header
dyrektywy specyficzne dla lokalizacji, ponieważ „Te dyrektywy są dziedziczone z poprzedniego poziomu wtedy i tylko wtedy, gdy na bieżącym poziomie nie zdefiniowano dyrektyw proxy_set_header”. nginx.org/en/docs/http/…