news 2026/4/17 4:13:48

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匹配abcaac
*前面字符0次或多次a*匹配aaaaaa
+前面字符1次或多次a+匹配aaaaaa等(不匹配空)
?前面字符0次或1次colou?r匹配colorcolour
[]匹配方括号内的任意一个字符[abc]匹配abc
[^]匹配不在方括号内的字符[^abc]匹配除abc外的字符
``或运算符
()分组(\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/4/13 4:50:11

21、Elasticsearch缓存、断路器与集群发现配置详解

Elasticsearch缓存、断路器与集群发现配置详解 1. 字段数据缓存 字段数据缓存并非简单功能,它旨在尽可能节省内存。Elasticsearch根据数据类型为字段数据缓存提供了几种格式,可通过在字段的 fielddata 对象中指定 format 属性来设置存储在字段数据缓存中的内部数据格式…

作者头像 李华
网站建设 2026/4/11 13:28:10

28、Elasticsearch高负载场景的优化策略

Elasticsearch高负载场景的优化策略 1. 引言 在高负载场景下使用Elasticsearch时,需要从多个方面进行准备和优化,以确保其性能和稳定性。本文将从通用的Elasticsearch调优建议以及高查询率场景的优化策略两个方面进行详细介绍。 2. 通用的Elasticsearch调优建议 2.1 选择…

作者头像 李华
网站建设 2026/4/6 19:30:39

【Open-AutoGLM安装终极指南】:手把手教你5步完成部署与配置

第一章:Open-AutoGLM安装环境准备 在开始使用 Open-AutoGLM 之前,必须正确配置运行环境以确保系统能够稳定执行模型训练与推理任务。本章将指导完成依赖库安装、Python 环境初始化及硬件驱动配置。 系统要求 Open-AutoGLM 支持主流 Linux 和 macOS 操作…

作者头像 李华
网站建设 2026/4/16 18:35:34

DataHub国际化完整指南:快速构建多语言数据平台的7个关键步骤

DataHub国际化完整指南:快速构建多语言数据平台的7个关键步骤 【免费下载链接】datahub 项目地址: https://gitcode.com/gh_mirrors/datahub/datahub 在全球化业务快速发展的今天,企业数据平台需要支持多语言环境已成为基本需求。DataHub作为领先…

作者头像 李华