关于nginx优先级问题

时间:2021-10-22 05:52:19

location匹配首先考虑匹配的精确度,比如

location ^~ /m/ { }location ^~ /m/1/2 { }

以上两行,即便匹配/m/放在上方,依然会先匹配到更精确的/m/1/2


if的匹配(假如都能都匹配成功):

  1. 当两个if块中都是rewrite时,会先匹配上方

  2. 当两个if块内部都是proxy_pass时,会先匹配下方的

  3. 当一个是rewrite一个是proxy_pass会先匹配rewrite,无论上下



        location / {            root   www;                if ($remote_addr ~* "^(124.193.66.139)"){                        rewrite ^(.*)$ http://www.motie.com;#                       proxy_pass http://test1Server;                }                if ($request_method = GET ){#                        rewrite ^(.*)$ http://www.baidu.com;                        proxy_pass http://testServer;                }            index  index.html index.htm;        }

以上在Ninx1.2、1.6测试