为什么nginx位置在前缀检查之前不检查uri是否匹配任何正则表达式?

时间:2019-10-24 12:48:23

标签: nginx nginx-config

通过nginx文档

  

要查找与给定请求匹配的位置,nginx首先检查使用前缀字符串定义的位置(前缀位置)。其中,将选择并记住具有最长匹配前缀的位置。然后按照在配置文件中出现的顺序检查正则表达式。正则表达式的搜索在第一个匹配项上终止,并使用相应的配置。如果未找到与正则表达式匹配的内容,则使用之前记住的前缀位置的配置。

为什么Nginx位置在前缀检查之前不检查uri是否匹配正则表达式?我认为它比现在更快?

1 个答案:

答案 0 :(得分:1)

我无法说明为什么设计师以任何特定方式实现Nginx,但是...

前缀检查被优化为非常快。

并且,如果在前缀检查期间标识的location被标记为^~ modifier,则不再需要扫描正则表达式。