Avec cette configuration:
server {
listen 8080;
location / {
if ($http_cookie ~* "mycookie") {
proxy_set_header X-Request $request;
proxy_pass http://localhost:8081;
}
}
}
J'ai cette erreur lorsque je recharge le service 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
Cette configuration fonctionne bien, mais elle ne fait pas ce que je veux:
server {
listen 8080;
location / {
proxy_set_header X-Request $request;
if ($http_cookie ~* "mycookie") {
proxy_pass http://localhost:8081;
}
}
}
Pourquoi je ne peux pas mettre la directive proxy_set_header dans une clause if?
nginx
proxy
configuration
Neuquino
la source
la source
Réponses:
En supposant que vous vouliez réellement demander, `` comment puis-je faire fonctionner cela '', que diriez-vous de simplement réécrire pour que l'en-tête soit toujours passé, mais a-t-il la valeur ignorée si vous ne le voulez pas?
la source
""
, non?'If' est généralement une mauvaise pratique dans la configuration de nginx. Vous pouvez utiliser le module de carte pour faire fonctionner les choses. voir http://nginx.org/en/docs/http/ngx_http_map_module.html http://wiki.nginx.org/HttpMapModule
la source