系列文章目录

`


文章目录

  • 系列文章目录
  • 一、常规的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的正则表达式

nginx rewrite 和 upstream 一起用 nginx rewrite redirect 区别_正则表达式


正则表达式的优势

1、精确匹配,减少遍历的消耗

2、节省服务响应的资源消耗

3、提高用户体验感

4、提高服务器并发时、处理效率/性能

3.nginx里面的优先级

精确匹配 = > 优先级 > 通用

nginx rewrite 和 upstream 一起用 nginx rewrite redirect 区别_优先级_02

nginx rewrite 和 upstream 一起用 nginx rewrite redirect 区别_服务器_03

nginx rewrite 和 upstream 一起用 nginx rewrite redirect 区别_正则表达式_04

二、rewrite

1.Rewrite

nginx rewrite 和 upstream 一起用 nginx rewrite redirect 区别_正则表达式_05


重写功能作用

重写功能(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、改写路径:在后端、其他服务器上-跳转

nginx rewrite 和 upstream 一起用 nginx rewrite redirect 区别_优先级_06

2.实验

修改 /usr/local/nginx/conf/nginx.conf/

nginx rewrite 和 upstream 一起用 nginx rewrite redirect 区别_正则表达式_07


在主机里面需修改hosts文件加入要跳转的网站和要访问的网站

nginx rewrite 和 upstream 一起用 nginx rewrite redirect 区别_优先级_08

去浏览器验证

输入www.accp.com自动跳转到www.benet.com

nginx rewrite 和 upstream 一起用 nginx rewrite redirect 区别_运维_09

总结

面试题:nginx你了解过哪些模块
ssl 安全加密认证模块
fastcgi 转发请求给PHP服务,默认安装
rewrite 重写模块
log 日志模块
gzip 压缩模块

nginx rewrite 和 upstream 一起用 nginx rewrite redirect 区别_优先级_10