news 2026/10/1 13:34:08

HoRain云--Nginx中的正则表达式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HoRain云--Nginx中的正则表达式

🎬 HoRain云小助手:个人主页

🔥 个人专栏: 《Linux 系列教程》《c语言教程》

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

专栏介绍

专栏名称

专栏介绍

《C语言》

本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。

《网络协议》

本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制!

《docker容器精解篇》

全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。

《linux系列》

本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。

《python 系列》

本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。

《试题库》

本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等)

目录

⛳️ 推荐

专栏介绍

Nginx正则表达式:从菜鸟到规则巫师的进阶指南

🌟 为什么Nginx正则表达式这么重要?

🔍 Nginx正则匹配的"四大金刚"

📜 正则表达式基础符号速查

🧪 实战案例:让正则表达式"活"起来

1. 静态资源优化(图片缓存)

2. URL重写(旧URL到新URL)

3. 域名迁移(旧域名跳转新域名)

4. IP访问控制(仅允许特定IP)

⚠️ 重要注意事项

💡 我的小经验

📚 总结


Nginx正则表达式:从菜鸟到规则巫师的进阶指南

嘿!看到你对Nginx正则表达式感兴趣,太棒了!我最近也在研究这个"服务器魔法",正好来给你分享一下我的心得。别被那些"^"、"$"符号吓到,掌握了它,你就能像魔法师一样操控Nginx,让网站配置变得游刃有余!

🌟 为什么Nginx正则表达式这么重要?

想象一下,你面对这些场景:

"那个该死的爬虫,天天来扫我的后台登录页面,日志都爆了!" "我的网站换了新版,旧URL一大堆,怎么让用户无感跳转到新地址?" "我想只允许某个特定目录下的图片被外部引用,其他的统统拦截!"

这时候,正则表达式就是你的"瑞士军刀"!掌握了它,你就能轻松解决这些头疼的问题。

🔍 Nginx正则匹配的"四大金刚"

Nginx中,正则表达式主要通过location指令使用,关键看这四个匹配符号:

匹配符号说明例子
=精确匹配,完全匹配location = /login { ... }
^~前缀匹配,匹配到就不再尝试正则location ^~ /images/ { ... }
~区分大小写的正则匹配location ~ \.php$ { ... }
~*不区分大小写的正则匹配location ~* \.jpg$ { ... }

💡 小贴士:匹配优先级是:=>^~>~/~*> 普通前缀匹配

📜 正则表达式基础符号速查

符号说明示例
^匹配行的开头^/api匹配以/api开头的请求
$匹配行的结尾\.jpg$匹配以.jpg结尾的文件
.匹配任意单个字符a.c匹配abc、aac等
*前面字符0次或多次a*匹配a、aa、aaa等
+前面字符1次或多次a+匹配a、aa、aaa等(不匹配空)
?前面字符0次或1次colou?r匹配color和colour
[]匹配方括号内的任意一个字符[abc]匹配a、b或c
[^]匹配不在方括号内的字符[^abc]匹配除a、b、c外的字符
``或运算符
()分组(\d+)匹配数字并捕获

🧪 实战案例:让正则表达式"活"起来

1. 静态资源优化(图片缓存)

location ~* \.(jpg|jpeg|png|gif)$ { root /data/www; expires 30d; # 缓存30天 }

说明:匹配所有图片文件,设置30天缓存,减少重复请求。

2. URL重写(旧URL到新URL)

location /old/ { rewrite ^/old/(.*)$ /new/$1 permanent; }

说明:将/old/xxx重写为/new/xxx,301永久重定向。

3. 域名迁移(旧域名跳转新域名)

if ($host = 'old.com') { rewrite ^/(.*)$ http://new.com/$1 permanent; }

说明:将所有来自old.com的请求重定向到new.com。

4. IP访问控制(仅允许特定IP)

set $allow false; if ($remote_addr = "192.168.1.1") { set $allow true; } if ($allow = false) { rewrite ^ /deny.html; }

说明:仅允许IP为192.168.1.1的访问,其他跳转到拒绝页。

⚠️ 重要注意事项

  1. 优先级规则:Nginx匹配时,优先级是=>^~>~/~*> 普通前缀匹配

  2. 性能考量:正则匹配比前缀匹配更耗性能,能用^~就别用~,能用普通匹配就别用正则

  3. 调试建议:

  4. rewrite的flag:

💡 我的小经验

刚开始用正则时,我也经常被"匹配不到"或"匹配太广"困扰。后来我总结了几条经验:

  1. 先写简单,再优化:先用前缀匹配,再用正则,逐步细化
  2. 多用测试:用curl -I http://yourdomain.com/test测试匹配
  3. 善用工具:在regex101.com上测试表达式,确认匹配效果
  4. 别怕犯错:Nginx配置出错时,nginx -t会告诉你问题所在

🌟终极小贴士:记住,正则表达式不是魔法,而是工具。用对了,它能让你的Nginx配置如虎添翼;用错了,它会让你的服务器"冒烟"。所以,先从简单开始,慢慢积累经验!

📚 总结

Nginx正则表达式是配置的"高级技能",掌握它需要:

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/29 9:19:35

终极指南:如何快速搭建免费的PartKeepr开源库存管理系统

终极指南:如何快速搭建免费的PartKeepr开源库存管理系统 【免费下载链接】PartKeepr Open Source Inventory Management 项目地址: https://gitcode.com/gh_mirrors/pa/PartKeepr 在当今电子元件管理日益复杂的背景下,寻找一款功能强大且完全免费…

作者头像 李华
网站建设 2026/9/29 9:19:35

多层板PCB工艺在复杂原型中的实现路径

多层板PCB工艺:如何在复杂原型中实现高性能与高可靠性的统一? 你有没有遇到过这样的困境? 手里的芯片引脚密密麻麻,BGA封装的pitch已经小到0.4mm,DDR走线时序总是对不上,电源一上电系统就复位,…

作者头像 李华
网站建设 2026/9/30 22:13:46

ESP固件烧录工具esptool实战指南:从入门到精通

ESP固件烧录工具esptool实战指南:从入门到精通 【免费下载链接】esptool 项目地址: https://gitcode.com/gh_mirrors/esp/esptool 在物联网开发领域,ESP系列芯片凭借其强大的性能和丰富的功能成为众多开发者的首选。而esptool作为乐鑫科技官方提…

作者头像 李华
网站建设 2026/9/26 4:30:00

GPT-SoVITS训练日志分析:判断模型收敛的关键指标

GPT-SoVITS训练日志分析:判断模型收敛的关键指标 在个性化语音合成需求日益增长的今天,如何用极少量语音数据快速克隆出高保真音色,已成为许多开发者和创作者关注的核心问题。传统TTS系统往往需要数小时标注语音才能训练稳定模型,…

作者头像 李华
网站建设 2026/9/30 20:51:08

【限时揭秘】Open-AutoGLM manus未发布的10个隐藏功能,你知道几个?

第一章:Open-AutoGLM manus 技术架构全景解析Open-AutoGLM manus 是一个面向自动化自然语言理解与生成任务的开源架构,融合了图神经网络(GNN)、大语言模型(LLM)推理引擎与动态知识图谱构建能力。其核心设计…

作者头像 李华