1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > nginx 配置指令之location使用

nginx 配置指令之location使用

时间:2019-06-23 23:55:54

相关推荐

nginx 配置指令之location使用

前言

location 指令是http模块中非常重要的配置指令之一,Location是Nginx中的块级指令(block directive),通过配置Location指令块,可以决定客户端发过来的请求URI如何处理(是映射到本地文件还是转发出去)及被哪个location处理

server { listen 80; server_name localhost; location / { }location /abc{}... }

location

用来设置请求的 URI

配置策略

uri变量是待匹配的请求字符串,可以不包含正则表达式,也可以包含正则表达式;nginx服务器在搜索匹配location的时候,是先使用不包含正则表达式进行匹配,找到一个匹配度最高的一个,然后在通过包含正则表达式的进行匹配;如果能匹配到直接访问,匹配不到,就使用刚才匹配度最高的那个location来处理请求;

具体属性介绍

1、不带符号

要求必须以指定模式开始

server {listen 80;server_name 127.0.0.1;location /abc {default_type text/plain;return 200 "access success";}}

在这种情况下,只要是以 /abc开头的都能被匹配到,以下访问都是正确的

http://IP/abc http://IP/abc?p1=TOM http://IP/abc/ http://IP/abcdef

2、“=”

= :用于不包含正则表达式的uri前,必须与指定的模式精确匹配

server {listen 80;server_name 127.0.0.1;location = /abc {default_type text/plain;return 200 "access success";}}

在这种情况下,访问的路径必须是以 /abc开头才能正确被访问,如下是正常的,

但是如果换成其他的路径,就不对了

3、“~ ”

~ : 用于表示当前uri中包含了正则表达式,并且区分大小写 ~*: 用于表示当前uri中包含了正则表达式,并且不区分大小写;换句话说,如果uri包含了正则表达式,需要用上述两个符合来标识;

配置案例

server {listen 80;server_name 127.0.0.1;location ~^/abc\w$ {default_type text/plain;return 200 "access success";}}server {listen 80;server_name 127.0.0.1;location ~*^/abc\w$ {default_type text/plain;return 200 "access success";}}

^~: 用于不包含正则表达式的 uri 前,功能和不加符号的一致,唯一不同的是,如果模式匹配,那么就停止搜索其他模式了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。