NGINX 错误:'proxy_set_header' 指令不允许在此处使用
在这段代码中,可以看到 '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;
}
选择哪种方法取决于你的具体情况和需求。
原文地址: https://www.cveoy.top/t/topic/n4mh 著作权归作者所有。请勿转载和采集!