您的位置:首页 > 运维架构 > Nginx

nginx配置中location的语法

2016-06-15 15:15 253 查看
语法: location [=|~|~*|^~|@] /uri/ {......}

配置块: server

localtion 会尝试根据用户请求的URI 来匹配上面的/uri 表达式,如果可以匹配,就选择 location {}块中的配置来处理用户请求. 当然匹配的方式是多样的,下面介绍location的匹配规则.

1.
= 表示把URI作为字符串,以便与参数中的uri做完全匹配.


       例如:    location  = / {

                       #只有当用户请求的是 / 时,才会使用改location下的配置

                       . . . . . .

                   }

2.
~ 表示匹配URI时,字母大小写是敏感的.


3.
~*
[b]表示匹配URI时,忽略字母大小写的问题.
[/b]

[b]4.
^~ [b][b]表示匹配URI时
[/b]只需要其前半部分与uri参数匹配即可.

[/b][/b]

       例如:    location  ^~ /images/ {

                        #以 /images/ 开始的请求都会配上

                        . . . . . .

                  }

5.
@ 表示仅用于Nginx服务器内部请求之间的重定向, 带有@的location不直接处理用户请求.




当然, 在uri中的参数是可以用正则表达式的,例如:

location  ~* \.(gif|jpg|jpeg)$ {

       #匹配以  .gif .jpg .jpeg 结尾的请求

       . . . . . .

}

注意:location是有顺序的,当一个请求可能匹配多个location时,实际上请求会被第一个location处理.

注意:在以上各种匹配方式中,都只能表达为 "如果匹配.....则....."   ,如果需要表达 "如果不匹配....则...." ,就很难直接做到. 有一种解决方式就是在最后一个location中使用/作为参数,它会匹配所有的HTTP请求,这样就可以表示如果不能匹配前面所有的location,则由
"/" 这个location处理.

例如:location / {

             # / 可以匹配所有请求

             . . . . . .

        }

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: