当运维遇到要重写情况时,往往是要程序员把重写规则写好后,发给你,你再
到生产环境下配置。对于重写规则说到底就是正则匹配,做运维的岂能对正则
表达式不了解的?最起码最基本的正则表达式会写。套用一句阿里的话(某网友
说是阿里说的,不清楚到底是不是出自阿里)“不懂程序的运维,不是好运维;
不懂 运维的开发,不是好开发。”。 正则表达式也是一门语言哈。当你学习一
门语言时,必然会遇到该门语言的正则表达式这章节的。 在这里推荐一本非常
好的正则表达式书,包含常用的语言的正则写法如
sed、perl、bash、awk、php、c#、java、javascript、 python、ruby 等等,
《Regular Expressions Cookbook, 2nd Edition》,也有中文版的,大家可以到网
络上找找。
本文介绍 nginx 的重写模块,创建重写规则向导,便于快捷正确的创建新的重
写规则,不求救于人。同时,如果想把 apache 转换成 nginx,重写规则也是要
改的咯。
一. rewrite 模块介绍
nginx 的重写模块是一个简单的正则表达式匹配与一个虚拟堆叠机结合。依赖于
PCRE 库,因此需要安装 pcre。根据相关变量重定向和选择不同 的配置,从一
个 location 跳转到另一个 location,不过这样的循环最多可以执行 10 次,超过后
nginx 将返回 500 错误。同时,重写模块包 含 set 指令,来创建新的变量并设其
值,这在有些情景下非常有用的,如记录条件标识、传递参数到其他 location、
记录做了什么等等。
二. rewrite 模块指令
break