¿Cómo puedo configurar un bloque de configuración compartido para un conjunto de ubicaciones?
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;
}
Ahora, si intento acceder a /api/0.1/user, obtendré 404 porque no pasa la solicitud a 127.0.0.1:9000
La mayoría de las variables de configuración de proxy_ * también están permitidas dentro del contexto del servidor, por lo que puede moverlas hacia arriba para compartir la misma configuración en varias ubicaciones.
Sin embargo, proxy_pass solo debe usarse dentro de la ubicación. Por lo tanto, debe tener al menos esta directiva dentro de cada ubicación, opcionalmente anulando los valores de algunos proxy_ * vars adicionales.
fuente
proxy_set_header
directivas específicas de ubicación porque "Estas directivas se heredan del nivel anterior si y solo si no hay directivas proxy_set_header definidas en el nivel actual". nginx.org/en/docs/http/…