你知道雪为什么是白色的吗?因为她忘记了本来的颜色。 收藏本站
登陆 / 注册 搜索

阅读: 614   回复: 2

[# 其他] Nginx location 后各种符号的意思

小执念 古黑浩劫论坛大牛 2019-12-29 17:27 |显示全部楼层

可遇不可求的事:故乡的云,上古的玉,随手的诗,十九岁的你。

管理员
其实这玩意叫正则表达式,还挺有意思的,几乎所有的编程语言都可以使用。前面的帖子 网站安全配置优化 之 nginx 里面讲过用这种表达式来给网站做安全优化,今天具体讲讲。

nginx 官网上给出的语法规则
  1. Syntax: location [ = | ~ | ~* | ^~ ] uri { ... }
  2. location @name { ... }
  3. Default: -
  4. Context: server, location
复制代码


以下内容以域名 https://www.guhei.net 为例

1、= 开头
  1. location = /login { ... }
复制代码


精确匹配,以下内容会被匹配到
  1. https://www.guhei.net/login
复制代码


2、^~ 开头
  1. location ^~ /static/ { ... }
复制代码


表示 URL 以某个常规字符串开头,不区分大小写,并关闭正则匹配,当搜索到这个普通匹配模式后,将不再继续搜索正则匹配模式。

以下内容会被匹配到
  1. https://www.guhei.net/static/5.js
复制代码


3、~ 开头
  1. location ~ \.(gif|jpg|png|js|css)$ { ... }
复制代码


表示区分大小写的正则匹配,以gif、jpg、js、css结尾,以下内容会匹配到

  1. https://www.guhei.net/static/1.gif
  2. https://www.guhei.net/static/1.css
  3. https://www.guhei.net/static/1.js
复制代码


4、~* 开头
  1. location ~* \.png$ { ... }
复制代码


表示不区分大小写的正则匹配,以 .png 结尾的,以下内容会匹配到
  1. https://www.guhei.net/Static/1.png
复制代码


5、/ 开头
  1. location / { ... }
复制代码



通用匹配,任何请求都会匹配到。

各符号优先级:

  1. = > ^~ > ~|~* > /
复制代码



有大佬写了以下图形化界面,可以看到执行的顺序

https://detailyang.github.io/nginx-location-match-visible/

Nginx location 后各种符号的意思 TIM截图20191229172418.png




柔光的暖阳 「出类拔萃」 2019-12-29 17:27 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

有时候觉得,网站就像一个高贵冷艳的妹纸。
400,是她冷冰冰地说:“我听不懂你在说什么”;
401,是她无情地转身:“我不认识你,别说那些奇怪的话”;
403,是她残酷的拒绝:“我听懂你的话,也认出你的脸,可我不爱你”;
404,是她紧闭心门:“我这儿没有你想要的东西”;
503,是“呵呵我去洗澡”。
小执念 古黑浩劫论坛大牛 2019-12-29 17:28 |显示全部楼层

可遇不可求的事:故乡的云,上古的玉,随手的诗,十九岁的你。

管理员
论坛之前有人发了更加详细的正则表达式写法:
https://www.guhei.net/post/jb1677
您需要登录后才可以回帖 登录 | 注册账号  

本版积分规则

关于本站|大事记|小黑屋|古黑论 网站统计

GMT+8, 2020-7-13 08:46 , Processed in 0.032132 second(s), 22 queries , Redis On.

© 2015-2020 GuHei.Net

Powered by Discuz! X3.4

快速回复 返回列表