2019.9.20 Nginx Location 及静动分离案例

Posted 猫南北y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2019.9.20 Nginx Location 及静动分离案例相关的知识,希望对你有一定的参考价值。

一、nginx正则及location匹配
1、Nginx 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 ]

}

5、匹配顺序优先级:

(location = )> (location 完整路径)>(location ^~路径)>(location ~,~*正则顺序)>(location 部分起始路径)>(/)

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="images/wyb.jpg" />

(4)在网页上访问:192.168.200.112

 

以上是关于2019.9.20 Nginx Location 及静动分离案例的主要内容,如果未能解决你的问题,请参考以下文章

2019.9.20 tomcat自定义网站测试

Nginx的location

Nginx系列Nginx之location

nginx location

Nginx Location

nginx中location配置及匹配详解