在这段代码中,可以看到 'proxy_set_header' 指令在 if 语句块内部,而在 location 块内部。因此,nginx 会报错,因为 'proxy_set_header' 指令不允许在这里使用。为了解决这个问题,可以将 'proxy_set_header' 指令移到 location 块外部,或者将 if 语句块移到 location 块内部。

location = / {
    # 将 proxy_set_header 指令移到 location 块外部
    proxy_set_header Host $host;

    if ($cookie_safe != "") {
        proxy_pass http://127.0.0.1;
        add_header X-Cache $upstream_cache_status;

        #Set Nginx Cache


        if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2|ico)$" ) {
            expires 365d;
        }
        proxy_ignore_headers Set-Cookie Cache-Control expires;
        proxy_cache my_cache;
        proxy_cache_key $host$uri$is_args$args;
        proxy_cache_valid 200 304 301 302 5s;
    }
    try_files /123.html =200;
}

或者:

location = / {
    # 将 if 语句块移到 location 块内部
    if ($cookie_safe != "") {
        proxy_pass http://127.0.0.1;
        proxy_set_header Host $host;
        add_header X-Cache $upstream_cache_status;

        #Set Nginx Cache


        if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2|ico)$" ) {
            expires 365d;
        }
        proxy_ignore_headers Set-Cookie Cache-Control expires;
        proxy_cache my_cache;
        proxy_cache_key $host$uri$is_args$args;
        proxy_cache_valid 200 304 301 302 5s;
    }
    try_files /123.html =200;
}

选择哪种方法取决于你的具体情况和需求。

NGINX 错误:'proxy_set_header' 指令不允许在此处使用

原文地址: https://www.cveoy.top/t/topic/n4mh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录