-
-
Save jrom/1760790 to your computer and use it in GitHub Desktop.
if ($request_uri = /) { | |
set $test A; | |
} | |
if ($host ~* teambox.com) { | |
set $test "${test}B"; | |
} | |
if ($http_cookie !~* "auth_token") { | |
set $test "${test}C"; | |
} | |
if ($test = ABC) { | |
proxy_pass http://teambox-cms.heroku.com; | |
break; | |
} |
Seems, you are not familiar with map, or do not like it. More short and elegant:
":" is used just like delimiter, you can use any other symbol not used in checked variables.
map "$request_uri:$host:$http_cookie" $test { default 0; "/:teambox.com:auth_token" 1; } server { if ( $test ) { proxy_pass http://teambox-cms.heroku.com; break; } }
@songsfromthewood Actually no, yours does not match "test.teambox.com" while the original post does.
this is awesome!
Need explanation.... what actually this does:
if ($host ~* teambox.com) {
set
}
Does it takes "this".teambox.com or what? Thanks!
How to write this condition?
if ($host *.teambox.com) {
set $subdomain_name = ?;
}
Thanks!
Awesome!!!! Thanks!
If somebody needs an explanation what the code does is it sequentially appends different letters to one variable.
When all the letters are present that means that all the required conditions have been met.
This works great!
I recommend initializing the $test
variable outside and above all the conditional statements to avoid endless using uninitialized "test" variable
errors piling up in /var/log/nginx/error.log
as follows:
set $test "";
Awesome man, thanks.