系列文章目录
`
文章目录
- 系列文章目录
- 一、常规的nginx正则表达式
- 1.location和rewrite的区别
- 2.常用的nginx的正则表达式
- 3.nginx里面的优先级
- 二、rewrite
- 1.Rewrite
- 2.实验
- 总结
一、常规的nginx正则表达式
1.location和rewrite的区别
从功能看 rewrite 和 location 似乎有点像,都能实现跳转,主要区别在于 rewrite 是在同一域名内更改获取资源的路径,而 locatio
是对一类路径做控制访问或反向代理,还可以proxy_pass 到其他机器。
rewrite对访问的域名或者域名内的URL路径地址重写
location对访问的路径做访问控制或者代理转发
2.常用的nginx的正则表达式
正则表达式的优势
1、精确匹配,减少遍历的消耗
2、节省服务响应的资源消耗
3、提高用户体验感
4、提高服务器并发时、处理效率/性能
3.nginx里面的优先级
精确匹配 = > 优先级 > 通用
二、rewrite
1.Rewrite
重写功能作用
重写功能(rewrite)用于实现URL的重写,URL的重写是非常有用的功能,比如它可以在我们改变网站结构之后,不需要客户端修改原来的书签,也无需其他网站修改我们的链接,就可以设置为访问,另外还可以在一定程度上提高网站的安全性。
fiag标记说明
last :本条规则匹配完成后,继续向下匹配新的location URL规则,一般用在 server 和 if 中。
break :本条规则匹配完成即终止,不再匹配后面的任何规则,一般使用在 location 中。
redirect :返回302临时重定向,浏览器地址会显示跳转后的URL地址。
permanent :返回301永久重定向,浏览器地址栏会显示跳转后的URL地址。
跳转实现
1、Nginx:通过ngx_http_rewrite_module 模块支持URL重写、支持if条件判断,但不支持else
2、跳转:从一个 location跳转到另一个location,循环最多可以执行10次,超过后nginx将返回500错误
3、PCRE支持:perl兼容正则表达式的语法规则匹配
4、重写模块 set 指令:创建新的变量并设其值
URL:就是具体的路径/位置
URI:指的就是一个拥有相同类型/特性的对象集合
location是为了匹配访问路径(URL)
if作为判断分支,并且if分支,仅支持单分支
rewrite:对访问路径进行改写
1、改写路径:nginx服务器上的配置-改写路径
2、改写路径:在后端、其他服务器上-跳转
2.实验
修改 /usr/local/nginx/conf/nginx.conf/
在主机里面需修改hosts文件加入要跳转的网站和要访问的网站
去浏览器验证
输入www.accp.com自动跳转到www.benet.com
总结
面试题:nginx你了解过哪些模块
ssl 安全加密认证模块
fastcgi 转发请求给PHP服务,默认安装
rewrite 重写模块
log 日志模块
gzip 压缩模块