nginx-location正则表达式匹配规则及动静分离
发表于 2018年03月5日 | 分类于 nginx
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/ }
|
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端