美文网首页
nginx配置备忘

nginx配置备忘

作者: menglj | 来源:发表于2018-05-17 16:32 被阅读6次

    1. location匹配

    1.1. location类型

    location主要分为普通匹配和正则匹配:

    1 正则匹配的location形式如下:

    location ~ /uri/ {...}  #区分大小写
    location ~* /uri/ {...} # 不区分大小写
    

    2 普通匹配的location形式如下:

    location /uri/ {...}     #最大前缀匹配; 当严格匹配时,不再继续进行正则匹配
    location = /uri/ {...}   #严格匹配,不再继续进行正则匹配
    location ^~ /uri/ {...}  #最大前缀匹配,不再继续进行正则匹配
    

    3 命名的location

    error_page 404 = @named_location;
    location @named_location {
      proxy_pass http://www.baidu.com;
    }
    

    1.2. location匹配原则

    1. 先匹配普通,再考虑匹配正则。
    2. 普通匹配时,如果严格匹配或使用了^~,则不再进行正则匹配,直接使用匹配上的普通location中的规则。
    3. 普通匹配的优先级为最大前缀匹配优先,与规则在文档中的顺序无关。
    4. 正则匹配的顺序与文档中的规则顺序有关,按照文档内容从上到下进行匹配,匹配上则停止下面的正则匹配。
    5. 如果正则匹配上,则使用正则location中的规则。
    6. 如果正则没有匹配上,则使用普通location里的规则。

    2. proxy_pass相关

    location /some/path/ {
        proxy_pass http://www.example.com/link/;
    }
    
    location /another/path/ {
        proxy_pass http://www.example.com;
    }
    

    上面的配置中,第一个规则中,被代理的服务后面指明了一个URI/link/,则转发时,会用这个URI替代location参数,例如:请求的URI为/some/path/page.html会被代理到http://www.example.com/link/page.html。如果没指定URI,如第二条规则,则会把请求URI直接转发给被代理的服务。

    如果location为正则匹配,则代理服务后不可以跟着URI。

    3. 参考文档

    1. 关于一些对location认识的误区
    2. Passing a Request to a Proxied Server

    相关文章

      网友评论

          本文标题:nginx配置备忘

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