我有以下 nginx 代码,我想让 json 文件通过这两个位置。具有以下代码,json 文件仅通过第二个位置传递。为 json “启用”两个位置需要什么。我想确保第一个位置包含 /new URI(+几个其他子 URI)。
location /new/ {
proxy_http_version 1.1;
proxy_pass http://new_upstream;
}
location ~* \.(?:jpg|jpeg|json|fs)$ {
proxy_pass http://upstream;
}
正如关于 location 的 nginx 文档中所解释的那样,nginx 首先匹配完全匹配 (
= /path
),然后匹配前缀 (/path
),并记住最佳匹配。然后它继续检查正则表达式匹配,如果找到了就使用它。
如果要防止正则表达式匹配 a
location
,则需要使用 中的^~
说明符location
:但是,此配置强制所有带有前缀
/new
的请求由该块处理。第二个块将不提供 JPG / JPEG / JSON / FS 扩展/new
。