Nginx multiple upstream map conditions
c0nw0nk
nginx-forum at forum.nginx.org
Tue Aug 30 18:25:28 UTC 2016
So this is a fun one.
As allot of people probably already know you can't use "IF" on upstream
values since if conditions are executed before any "$upstream_" conditions.
But with a map directive it might just be possible to combine 2 upstream
maps together and have a output based on the conditions matched.
Here is what I am trying to achieve.
If the upstream returns with a logged_in value of 1 then we forward and pass
the Set-Cookie header to the client "add_header".
Else the "add_header Set-Cookie" should be empty.
##logged in value 0 = guest
##logged in value 1 = has an account
map $upstream_cookie_logged_in $upstream_logged_in_value {
default $upstream_cookie_logged_in;
}
map $upstream_http_set_cookie $upstream_md5_value {
default $upstream_http_set_cookie;
}
add_header Set-Cookie $upstream_md5_value; ##Only want to send the MD5
cookie when the logged in value is 1
fastcgi_hide_header Set-Cookie; ##Removed the set-cookie and to be added in
only when conditions are met. "add_header"
Thanks in advance to anyone who can help me out :D
Posted at Nginx Forum: https://forum.nginx.org/read.php?2,269296,269296#msg-269296
More information about the nginx
mailing list