阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Nginx的location区块的作用及设置

158次阅读
没有评论

共计 1233 个字符,预计需要花费 4 分钟才能阅读完成。

1.location 的作用

location 指令的作用是根据用户请求的 URI 来执行不同的应用,也就是根据用户请求的网站 URL 进行匹配,匹配成功即进行相关的操作。

2.location 的语法

location 的语法是:

location  [= | ~ | ~* | ^~]    uri          {….}
# | 指令  | |    匹配标识    |  | 匹配的网站网址 |  | 匹配 URI 之后要执行的配置段 |

其中 ”=” 的优先级为最高,为精确匹配;特殊字符 ”~” 和 ”~*” 的区别在于前者区分大小写,后者不区分大小写,他们还可以用逻辑操作符 ”!” 来取反匹配;”^~” 的意思是匹配之后不做正则表达式的检查,就是不用匹配类似于 ”\.(gif|jpg|jpeg)$” 的正则表达式了,也就是说 ”^~” 后面跟了正则表达式也没有用的。

location 的匹配示例:

location = / {[ configuration A] }                    #用户请求 ”/” 时,匹配 A,例如:www.pcm.com/
location / {[ configuration B] }                      #当用户请求 ”/index.html” 时,匹配 B,例如:www.pcm.com/index.html
location /documents/ {[ configuration C] }            #当用户请求 ”/documents/” 时,匹配 C,例如:www.pcm.com/documents/index.html     
location ^~ /images/ {[ configuration D] }            #当用户请求 ”/images/” 时,匹配 D,:www.pcm.com/images/1.jpg
location ~* \.(gif|jpg|jpeg)$ {[ configuration E] }    #当用户请求 ”.gif|.jpg|.jpeg” 时,匹配 E,例如:www.pcm.com/documents/1.jpg
 #上面的反斜杠是转义字符,$ 的意思是结尾

3.location 实验验证

我们在 bbs 的主机上做验证,配置文件如下:

server {
 listen      80;
 server_name  bbs.pcm.com;
 root  html/bbs;
 location = / {
  return 401;
 }
 location / {
  return 402;
 }
 location /documents/ {
  return 403;
 }
 location ^~/images/ {
  return 404;
 }
 location ~* \.(gif|jpg|jpeg)$ {
  return 405;
 }
}

    检查语法,没问题的话重新加载配置文件,平滑重启 nginx

Nginx 的 location 区块的作用及设置

    实验的结果如下:

Nginx 的 location 区块的作用及设置

    从上图可以验证到结果没问题的。其中 location 配对的方法是每条规则都去匹配,直到匹配到最为匹配的结果才输出;还有就是 ”/” 这个是默认匹配的,如果都匹配不上的时候,最后就会默认匹配 ”/”,所以输出的结果为 402.

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计1233字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中