Com esta configuração:
server {
listen 8080;
location / {
if ($http_cookie ~* "mycookie") {
proxy_set_header X-Request $request;
proxy_pass http://localhost:8081;
}
}
}
Eu tenho esse erro quando recarrego o serviço 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
Essa configuração funciona bem, mas não faz o que eu quero:
server {
listen 8080;
location / {
proxy_set_header X-Request $request;
if ($http_cookie ~* "mycookie") {
proxy_pass http://localhost:8081;
}
}
}
Por que não consigo colocar a diretiva proxy_set_header em uma cláusula if?
nginx
proxy
configuration
Neuquino
fonte
fonte
Respostas:
Supondo que você realmente quis perguntar: 'como posso fazer isso funcionar', que tal reescrever para que o cabeçalho seja sempre passado, mas que tenha definido algum valor ignorado, se você não quiser.
fonte
""
né?'If' geralmente é uma má prática na configuração do nginx. Você pode usar o módulo de mapa para fazer as coisas funcionarem. consulte http://nginx.org/en/docs/http/ngx_http_map_module.html http://wiki.nginx.org/HttpMapModule
fonte