^~    标识符匹配后面跟-一个字符串。匹配字符串后将停止对后续的正则表达式进行匹配,如location ^~ /images/ , 在匹配了/images/这个字符串后就停止对后续的正则匹配

=   精准匹配,如location=/,只会匹配url为/的请求。

~   区分大小写的匹配。
~*    不区分大小写的匹配。
!~     对区分大小写的匹配取非。
!~*    对不区分大小写的匹配取非。
/     通用匹配,如果没有其它匹配,任何请求都会被匹配到
 匹配顺序优先级:
 
(location =)> (location 完整路径)> (location ^~ 路径) > (location ~,~*正则顺序) >(location 部分起始位置) > (/)
 2、正则表达式
*:重复前面的字符0次或多次
?:重复前面的字符0次或1次
+:重复前面的字符1次或多次
.:匹配除换行符以外的任意一个字符
(a|b):匹配a或b
^:以...开头
$:以...结尾
{n}:重复前面的字符n次
{n,}:重复前面的字符n次或更多次
{n,m}:重复前面的字符n-m次
*?:重复前面的字符0次或多次,但尽可能少重复
+?:重复前面的字符1次或多次,但尽可能少重复
??:重复前面的字符0次或1次,但尽可能少重复
{n,m}?:重复前面的字符n-m次,但尽可能少重复
{n}?:重复前面的字符n次以上,但尽可能少重复
3、正则表达式补充
\W:匹配任意不是字母,数字,下划线,汉字的字符(特殊符号)
\S:匹配任意不是空白符的字符
\D:匹配任意非数字的字符
\B:匹配任意不是单词开头或结尾的位置
[a]:匹配单个字符a
[a-z]:匹配a-z小写字符的任意一个
[^a]:匹配除了a以外的任意字符
[^abc]:匹配除了abc这几个字母以外的任意字符
4、Nginx location应用规则
先写一个location,后面匹配挑任意一个,加url的地址(网页路径)花括号里写最终要处理的动作
location [=|~|~*|^~|!~|!~*] /url/{...}
默认值:no
使用字段:server
location参数根据URL的不同需求来进行匹配,可以使用字符串与正则表达式匹配
例:location ~* .*\.jsp$ {
  proxy_pass http://tomcat_server;
}
(1)
http://www.a.com/
location = / {
#精准匹配 / ,主机名后面不能带任何的字符串
[configuration A ]
}
(2)
location / {
#因为所有的地址都以 / 开头,所以这条规则将匹配到所有的请求
#但是正则和最长字符串会优先匹配
[configuration B ]
}
(3)
location / documents/ {
#匹配任意以documents开头的地址,匹配符合以后,还要继续往下搜索
#只有后面的正则表达式没有匹配到时,才会采用这一条
[configuration C ]
}
(4)
location ~  / documents/Abc {
#匹配任意以documents开头的地址,匹配符合以后,还要继续往下搜索
#只有后面的正则表达式没有匹配到时,才会采用这一条
[configuration CC ]
}
(5)
location ^~ /images/ {
#匹配任意以images开头的地址,匹配符合以后,还要继续往下搜索
[configuration D ]
}
(6)
location ~*\.(gif|jpg|jpeg) {
#匹配所有以gif,jpg或jpeg结尾的请求
#然而,所有的请求/images/ 下的图片会被config D 处理,因为 ^ ~ 到达不了这一条正则
[configuration E ]
}
(7)
location  /images/ {
#字符匹配到 /images/,继续往下,会发现 ^~ 存在
[configuration F ]
}
(8)
location /images/abc {
#最长字符串匹配到 /images/abc,继续往下,会发现 ^~ 存在
[configuration G ]
}
6、实验(需要两台虚拟机)
第一台虚拟机确保安装nginx
第二台虚拟机上安装确保搭建好LAMP
(1)在第二台虚拟机上:[root@localhost ~]# rpm -q nfs-utils rpcbind      //查看有没有安装nfs-utils rpcbind这两个软件包
[root@localhost ~]# mkdir /wwwroot         //创建一个文件
[root@localhost ~]# vim /etc/exports      //添加以下内容
/wwwroot 192.168.200.112  (ro) 
[root@localhost ~]# systemctl restart rpcbind
[root@localhost ~]# systemctl restart nfs
(2)[root@localhost ~]# cd /wwwroot/           //在里面添加一张图片
rz
(3)在第一台虚拟机上:
[root@localhost ~]# cd /usr/local/nginx/html/images/          //查看一下里面有在第二台虚拟机上添加的图片
[root@localhost html]# vim index.html          //添加以下内容(把图片加进去)
<img src="data:images/wyb.jpg" />
(4)在网页上访问:192.168.200.112

Nginx location规则匹配的更多相关文章

  1. nginx location 正则匹配

    nginx 统计语句1.根据访问IP统计UV awk '{print $1}' access.log|sort | uniq -c |wc -l2.统计访问URL统计PV awk '{print $7 ...

  2. Nginx Location规则

    Nginx由内核和模块组成,其中内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端的请求映射到一个location block,而location是Nginx配置中的一个指令 ...

  3. Nginx location指令匹配顺序规则

    location匹配命令 1. “= ”,字面精确匹配, 如果匹配,则跳出匹配过程.(不再进行正则匹配) 2. “^~ ”,最大前缀匹配,如果匹配,则跳出匹配过程.(不再进行正则匹配) 3. 不带任何 ...

  4. nginx里面的location 规则匹配

    nginx location语法 ~ # 区分大小写的正则匹配 location ~ \.(gif|jpg|png|js|css)$ { #规则D } ~* # 不区分大小写的正则匹配(和~的功能相同 ...

  5. nginx location模块--匹配规则

    Location语法语法:location [=|~|~*|^~] /uri/ { … } = --> 开头表示精确匹配 ^~ --> 开头表示uri以某个常规字符串开头,理解为匹配url ...

  6. nginx location URI匹配规则

    当nginx收到一个请求后,会截取请求的url部份,去搜索所有location指令中定义的URI匹配模式.在server模块中可以定义多个location指令来匹配不同的url请求,多个不同的loca ...

  7. nginx location匹配顺序及CI框架的nginx配置

    Nginx location匹配顺序如下: 用前缀字符串定义的location规则对URI进行匹配测试. =号定义了精确的前缀字符串匹配,如果发现精确匹配则使用当前规则.否则继续下一步匹配. 匹配其它 ...

  8. nginx location 语法

    location 语法location 有”定位”的意思, 根据Uri来进行不同的定位.在虚拟主机的配置中,是必不可少的,location可以把网站的不同部分,定位到不同的处理方式上.比如, 碰到.p ...

  9. nginx location 路由的几个配置纪要

    1:网上没有查到在线测试 nginx location 规则的网址 在服务器上可以通过 return 返回测试比如  把#号去掉 # location /admin\.php(.*) # { #def ...

随机推荐

  1. centos 防火墙相关命令

    防火墙关闭: systemctl stop firewalld systemctl disable firewalld 重启防火墙: systemctl enable firewalld system ...

  2. Max coverage disjoint intervals

    Assume you have k<=10^5 intervals [a_i, b_i] \in [1,10^18] (some of them may overlap), and you ne ...

  3. PO,VO,DAO,BO,POJO之间的区别与解释

    VO value object:值对象 通常用于业务层之间的数据传递,由new创建,由GC回收. PO persistant object:持久层对象 对应数据库中表的字段. VO和PO,都是属性加上 ...

  4. C++之父给 C 程序员的建议

    1. 在 C++中几乎不需要用宏, 用 const 或 enum 定义显式的常量, 用 inline 避免函数调用的额外开销,用模板去刻画一族函数或类型,用 namespace 去避免命名冲突. 2. ...

  5. 第3章:LeetCode--算法:strStr KMP算法

    https://leetcode.com/problems/implement-strstr/  28. Implement strStr() 暴力算法: int ViolentMatch(char* ...

  6. python-django-天天生鲜项目

    1 需求分析 github源码:https://www.github.com/wangyingchuang/dailyfresh 1.1  用户模块 1) 注册页 l  注册时校验用户名是否已被注册. ...

  7. ORA-07445: exception encountered: core dump [opiaba()+639] [SIGSEGV] [ADDR:0x0] [PC:0x1858C3F] [SI_KERNEL(general_protection)] []

    开发反馈应用无法连接数据库,发现数据库实例崩溃,且数据库为11.2.0.4 单实例. 数据库告警日志发现,数据库崩溃之前出现ORA- ORA-: exception encountered: core ...

  8. C语言并查集例子——图问题巧用parent[]数组

    输入:测试输入包含若干测试用例.每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000 )和道路数目M:随后的M行对应M条道路,每行给出一对正整数,分别是该条道路直接连通的两个城 ...

  9. 【微信支付】公众号 JSAPI支付 HTML5(使用MUI前端框架)+WebApi 实现流程

    必要参数:      1) AppID,AppSecret : 在微信公众号后台管理—>(菜单栏)开发 —> 基本设置     2)商户号 :在微信公众号后台管理—>(菜单栏)微信支 ...

  10. shell脚本使用记录

    一些比较功能需求比较简单的可以考虑使用shell脚本来写,这样可以方便快捷稳定 1. 读取文件值,根据文件值1 或 0 来开启和关闭某些程序 a.  while : do done 是无限循环. b. ...