Nginx Location指令使用

2020-06-16  本文已影响0人  Jason_lai

一、语法结构

location   [ = | ~ | ~* | ^~ ]   /uri/  { configuration }

二、匹配模式

1、普通字符串

=
^~
/uri
/

2、正则表达式

~
~* 

三、匹配优选级

=
^~
~、~*
/、/uri

四、运算符

1、精确前缀匹配

//写法
location   =    / 
//匹配
192.168.2.1
192.168.2.1/

2、普通字符串匹配

//写法
location   ^~   /home 
//匹配
192.168.2.1/home
192.168.2.1/home/
192.168.2.1/home?id=10
192.168.2.1/home/index.php

3、区分大小写的正则匹配

//写法
location   ~    /home
//匹配
192.168.2.1/home
192.168.2.1/home/
192.168.2.1/home?id=10
192.168.2.1/home/index.php

4、忽略大小写的正则匹配

//写法
location   ~*   /home
//匹配
192.168.2.1/HOME
192.168.2.1/home
192.168.2.1/home/
192.168.2.1/home?id=10
192.168.2.1/home/index.php
192.168.2.1/Home/index.php

5、不带任何修饰符,表示前缀匹配

//写法
location   /home
//匹配
192.168.2.1/home
192.168.2.1/home/
192.168.2.1/home?id=10
192.168.2.1/home/index.php

6、通用匹配,任何未匹配到其他location的请求都会匹配到

//写法
location   / 
//匹配
192.168.2.1
192.168.2.1/

五、举例

location = / {
  # 只匹配 / 的查询.
  [ configuration A ]
}

location ^~ /images/ {
  # 匹配任何以 /images/ 开始的查询并且停止搜索,不检查正则表达式。
  [ configuration B ]
}

location ~* \.(gif|jpg|jpeg)$ {
  # 匹配任何以gif, jpg, or jpeg结尾的文件,但是所有 /images/ 目录的请求将在Configuration C中处理。
  [ configuration C ]
}

location / {
  # 匹配任何以 / 开始的查询,但是正则表达式与一些较长的字符串将被首先匹配。
  [ configuration D ]
}
上一篇下一篇

猜你喜欢

热点阅读