【问题标题】:alternative of else operator and not equal operator in nginxnginx中else运算符和不等于运算符的替代
【发布时间】:2014-09-12 12:46:28
【问题描述】:

在我的应用程序中,基于 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;
        }
    }
}

由于 nginx.conf 中不允许使用 "else" 和 "!~",我该怎么办?

【问题讨论】:

    标签: cookies nginx webserver operators


    【解决方案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;
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-02-23
      • 2011-05-04
      • 2012-09-03
      • 2016-07-29
      • 2014-03-22
      • 1970-01-01
      • 1970-01-01
      • 2011-12-29
      • 2017-11-06
      相关资源
      最近更新 更多