nginx

作者: John13 | 来源:发表于2018-09-06 10:58 被阅读0次

    nginx的配置、虚拟主机、负载均衡和反向代理一
    nginx的配置、虚拟主机、负载均衡和反向代理二
    nginx的配置、虚拟主机、负载均衡和反向代理三

    nginx配置location总结及rewrite规则写法 --- 很棒
    一文弄懂Nginx的location匹配 --- 很棒

    前端必须知道的Nginx的常用配置

    主要功能

    • 负载均衡
    • 反向代理
    • 动静分离
    • 配置https

    location

    • 语法规则
      location [ = | ~ | ~* | ^~ ] uri { ... }
      location @name { ... }

    一个location关键字,后面跟着可选的修饰符,后面是要匹配的字符,花括号中是要执行的操作。

    • 修饰符
    • =:精确匹配。只有请求的url路径与后面的字符串完全相等时,才会命中。
    • ~:该规则是使用正则定义的,区分大小写。
    • ~*:该规则是使用正则定义的,不区分大小写。
    • ^~:如果该符号后面的字符是最佳匹配,采用该规则,不再进行后续的查找。
    • 匹配过程
    • 对请求的url序列化。例如,对%xx等字符进行解码,去除url中多个相连的/,解析url中的.,..等。这一步是匹配的前置工作。
    • location有两种表示形式,一种是使用前缀字符,一种是使用正则。如果是正则的话,前面有*修饰符。

    具体的匹配过程如下:

    首先先检查使用前缀字符定义的location,选择最长匹配的项并记录下来。

    如果找到了精确匹配的location,也就是使用了=修饰符的location,结束查找,使用它的配置。

    然后按顺序查找使用正则定义的location,如果匹配则停止查找,使用它定义的配置。

    如果没有匹配的正则location,则使用前面记录的最长匹配前缀字符location。

    基于以上的匹配过程,我们可以得到以下两点启示:

    使用正则定义的location在配置文件中出现的顺序很重要。因为找到第一个匹配的正则后,查找就停止了,后面定义的正则就是再匹配也没有机会了。

    使用精确匹配可以提高查找的速度。例如经常请求/的话,可以使用=来定义location。

    相关文章

      网友评论

          本文标题:nginx

          本文链接:https://www.haomeiwen.com/subject/yawtgftx.html