我正在尝试优化我的“location”指令,但是找不到一种好的方法来确定是否尝试了特定的位置匹配。在location块中使用echo在这里没有帮助。
The NGINX ngx_http_core_module documentation有点让人困惑。
要使用正则表达式,必须使用前缀:
区分大小写的matching
~*的~不区分大小写的matching匹配的执行方式:
与查询完全匹配的带有=前缀的
使用常规字符串
^~前缀,则按照配置文件中定义的顺序搜索stops.这里的2号表示“传统字符串”,但随后又表示它可以与^~前缀一起使用。~不是暗示了一个RegExp吗?如果不是,它如何确定什么是不是RegExp?
具体地说,我想要以下内容:
/assets之外的任何内容。通过fast停止SEARCH.\.php$|/$匹配的内容-CGI通过文字/直接停止所有其他内容
这样,仅对从资源外部提供的非动态文件进行/匹配尝试。
我有:
location ^~ /assets {} # search-terminating literal? or regex?
location ~ \.php$|/$ {}
location / {} # is this match always attempted?从文档中看,实际的顺序似乎是1-3-2,始终运行文字/匹配。是的,这种优化不会对真正的性能产生任何影响,但我只是想澄清一些模棱两可的地方。
https://stackoverflow.com/questions/8437613
复制相似问题