码迷,mamicode.com
首页 > 其他好文 > 详细

nginx-location正则表达式匹配规则及动静分离

时间:2019-10-08 14:18:07      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:服务器   comm   自己   creat   data   文章   https   oca   2018年   

nginx-location正则表达式匹配规则及动静分离

nginx,location常用正则表达式,及nginx动静分离

nginx匹配规则

1
2
3
4
5
6
~      波浪线表示执行一个正则匹配,区分大小写
~* 表示执行一个正则匹配,不区分大小写
^~ ^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录
= 进行普通字符精确匹配
@ "@" 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files
!~(!~*) 表示区分大小写不正则匹配和不区分大小写不正则匹配

nginx正则表达式

1
2
3
4
5
6
7
8
9
10
11
. : 匹配除换行符以外的任意字符
? : 重复0次或1次
+ : 重复1次或更多次
* : 重复0次或更多次
\d :匹配数字
^ : 匹配字符串的开始
$ : 匹配字符串的介绍
{n} : 重复n次
{n,} : 重复n次或更多次
[c] : 匹配单个字符c
[a-z] : 匹配a-z小写字母的任意一个

注意 当正则表达式中含有 {} 是,必须将 正则表达式用 “” 引起来否则会报错
nginx: [emerg] pcre_compile() failed: missing ) in “/one/(\d” in /usr/local/nginx/conf/nginx.conf:56

例如:

1
2
3
4
5
6
#rewrite ^/test/([\d]{3})/$ /index.php?id=$1 break;  #报错
#修改为
rewrite "^/test/([\d]{3})/$" /index.php?id=$1 break;

#本条可以不用引号
rewrite ^/(\d+)/$ /index.php?id=$1 break;

 

动静分离清单

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 第一个必选规则
location = / {
proxy_pass http://127.0.0.1:9000/index
}
# 第二个必选规则是处理静态文件请求,这是nginx作为http服务器的强项
# 有两种配置模式,目录匹配或后缀匹配,任选其一或搭配使用
location ^~ /static/ {
root /web/static/;
}
location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ {
root /web/res/;
}
#第三个规则就是通用规则,用来转发动态请求到后端应用服务器
#非静态文件请求就默认是动态请求,自己根据实际把握
#毕竟目前的一些框架的流行,带.php,.jsp后缀的情况很少了
location / {
proxy_pass http://127.0.0.1:9000/
}
 

nginx-location正则表达式匹配规则及动静分离

标签:服务器   comm   自己   creat   data   文章   https   oca   2018年   

原文地址:https://www.cnblogs.com/python-cat/p/11634824.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!