如何通过try_files传递变量?

如何通过try_files传递变量?

考虑这种配置(假设/foo不存在):

server {
    set $x 1;

    location = / {
        set $x 0;
        try_files /foo @l;
    }

    location / {
        try_files /foo @l;
    }

    location @l {
        set_header X $x;
        proxy_pass http://localhost:1000/;
    }
}

当我导航到 时,响应标头X始终是偶数。这是为什么?我如何使变量通过 传播?1/try_files

答案1

根据您的评论,正确的做法是使用fastcgi_no_cache与地图结合的指令。以下示例显示了它的样子:

map $uri $cache {
    default      "1";
    "~^/myuri"   "0";
}

server {

    ...

    location / {
        fastcgi_no_cache $cache;
        fastcgi_pass ...
    }

}

相关内容