Con esta configuración:
server {
listen 8080;
location / {
if ($http_cookie ~* "mycookie") {
proxy_set_header X-Request $request;
proxy_pass http://localhost:8081;
}
}
}
Tengo este error cuando vuelvo a cargar el servicio nginx:
Reloading nginx configuration: nginx: [emerg] "proxy_set_header" directive is not allowed here in /etc/nginx/conf.d/check_cookie.conf:5
nginx: configuration file /etc/nginx/nginx.conf test failed
Esta configuración funciona bien, pero no hace lo que quiero:
server {
listen 8080;
location / {
proxy_set_header X-Request $request;
if ($http_cookie ~* "mycookie") {
proxy_pass http://localhost:8081;
}
}
}
¿Por qué no puedo poner la directiva proxy_set_header dentro de una cláusula if?
nginx
proxy
configuration
Neuquino
fuente
fuente
Respuestas:
Suponiendo que realmente quisiste preguntar, '¿cómo puedo hacer que esto funcione?', ¿Qué tal si simplemente reescribes para que el encabezado siempre se pase, pero lo tiene configurado en algún valor ignorado si no quieres que se establezca?
fuente
""
verdad?'If' es generalmente una mala práctica en la configuración de nginx. Puede usar el módulo de mapa para hacer que las cosas funcionen. ver http://nginx.org/en/docs/http/ngx_http_map_module.html http://wiki.nginx.org/HttpMapModule
fuente