Альтернатива оператора else и не равный оператор в nginx

В моем приложении, на основе cookie, я должен отправить запрос на определенный порт apache. Я хочу что-то вроде этого:

server {
 listen 80;
 server_name example.com;
 location /
 {
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header Host $http_host;
 proxy_set_header X-FORWARDED_PROTO https;
 if ($http_cookie ~ 'ver=1' ) {
 proxy_pass http://127.0.0.1:6060;
 }
 else {
 proxy_pass http://127.0.0.1:7070;
 }
 }
}

Как "else" и "! ~" Не разрешены в nginx.conf, что я могу сделать для такого типа требований?

1 ответ

Назначение переменной и ее использование:

server {
 listen 80;
 server_name ver.jeevansathi.com;
 location /
 {
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header Host $http_host;
 proxy_set_header X-FORWARDED_PROTO https;
 set $cookie_redirect 0;
 if ($http_cookie ~ 'ver=1' ) {
 set $cookie_redirect 1;
 }
 if ($cookie_redirect ~ 1) {
 proxy_pass http://127.0.0.1:6060;
 }
 if ($cookie_redirect ~ 0 ) {
 proxy_pass http://127.0.0.1:7070;
 }
 }
}

licensed under cc by-sa 3.0 with attribution.