当前位置: 首页 > 网络应用技术

nginx配置文件匹配规则

时间:2023-03-07 02:45:54 网络应用技术

  在上一个代理中,为了限制对背景的IP访问,添加了以下配置:

  结果呢?在所有路径下都没有对文件的分析,它成为文件下载。那时,我不知道问题是什么,但是在删除了这种配置后,问题就消失了。因此,我可以确定必须是必须必须的是,必须必须的是,必须是必须是,必须是,必须是,匹配这条路的问题已经导致了对决不。

  为了探索原因,我找到了信息并尝试了信息。如果您想直接查看结果,则可以跳过此部分。

  在上面问题的场景中,配置文件通常如下:

  在考虑之后,当我访问时,我没有执行第二个匹配规则,也没有将文件提交给解析器以执行,这导致它直接下载为静态文件。

  接下来,是验证这个想法。最简单的验证方法是直接在匹配规则中返回HTTP响应。这样,请查看响应代码,并知道执行哪个规则。

  如果您谈论干燥,请按以下方式修改配置文件:

  与猜想一样,即使匹配规则在前面,它仍然首先匹配规则。也就是说,规则高于规则的优先级。

  但是,还有另一点无法确定。即使与以下规则匹配,也无法解释以前的规则不会执行。它也可以按顺序匹配。

  为了验证,我们删除第三个配置规则。目前,如果可以匹配的规则,则将返回响应代码200。如果不可能,应提示找到该文件。测试它。

  在这一点上,当它与规则匹配时,它将直接执行,而无需随后的匹配。然后,这可能是因为两个匹配规则的优先级不同,因此它忽略了低优先级匹配规则。

  为了验证是否将执行相同优先级的匹配规则,是否将执行后续匹配,并再次执行实验。配置文件的修改如下:

  配置文件中的两个常规匹配。我的想法就是这样。目前,访谈将返回响应400,表明第一条规则是匹配的,然后我删除了第一个规则。解释说,在匹配第一条规则后,继续进行下一场比赛。非常严格。首先访问:

  非常好,根据期望,然后删除第一条规则,然后再次访问:

  这次我返回了404,这表明在执行第一场比赛时,匹配将停止,并且将不会执行随后的匹配。

  在这一点上,匹配规则基本上已经复制了。

  接下来,找出路径的匹配规则。以下优先级从高到结尾排序:

  它将根据从高到低点的优先级进行匹配,并在第一场比赛成功时执行操作并停止匹配。

  匹配规则看起来非常简洁。现在,您可以回顾一下我们第一次遇到的问题。

  我们想要一个背景地址来限制IP访问,因此我们添加了此配置:

  现在应该清楚所有路径,因为规则更优先,因此对以下规则和未执行的解析操作的分析。由于没有分析操作,因此将PHP文件作为资源文件返回。

  因此,问题是,如果要在路径下的路径上执行访问限制,该怎么办?

  这不是死亡周期吗?我想再次限制路径的执行。如果您有限制,则需要能够正常分析。如何打破它?我在这里探索的想法是他不知道该文件。不知道和理解。匹配分析过程是直接编写的,配置文件通常如下:

  在这种情况下,您可以在执行IP限制的前提下实现正常分析。

  因此,一个新的问题出现了,这是否等同于再次复制PHP的解析?太优雅了。我认为的解决方案是文件的命令。在文件中,内容如下:

  这样,可以将原始配置文件重写为以下表格:

  目前,可以实现以前的目的。路径下的文件仅为指定的IP打开,并且可以在通过时正常解析。

  可能有更多优雅的解决方案。我在互联网上看到了一些实现,但是我已经尝试了很多次,但没有成功。如果您有更好的方法,我仍然希望能启发我。

  经过几天的实验,我终于理解了执行顺序。感谢我的中学老师教我控制可变方法。

  原始:https://juejin.cn/post/7102373360981524493