Альтернатива оператора 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.