Nginx - rewrite模块深度学习
2018-03-07 本文已影响113人
AKyS佐毅
1、Nginx的rewrite规则
-
作用:
-
1、实现url重写与重定向。
-
场景:
- 1、URL访问跳转,支持开发设计。 页面跳转、兼容性支持(新旧版本更迭)、展示效果(网址精简)等。
- 2、SEO优化(Nginx伪静态的支持)
- 3、后台维护、流量转发等。
- 4、安全(动态界面进行伪装)。
-
语法讲解
Syntax: rewrite regex replacement [flag];
只能支持 Context: server,location,if -
实例
rewrite ^(.*)$ /pages/maintain.html break; -
flag
- last 停止rewrite检测,但是会建立新的请求,看后边的location 是否匹配。使用last的话,会继续搜索下面是否有符合条件.
- break 停止rewrite检测,访问根目录,如果没有发现访问的文件,将返回404.使用break会停止匹配下面的location.
- redirect 返回302临时重定向,地址栏会显示跳转后的网址
- parmenent 返回301永久重定向,地址栏会显示跳转后的网址
-
补充知识 正则表达式
-
2、 实战
- 配置Nginx的config文件
- 访问
http://www.heartmusicbeat.com/test/ 返回json数据。
http://www.heartmusicbeat.com/break/ 返回404 错误。
http://www.heartmusicbeat.com/last/ 返回json数据
3 、Rewrite规则_redirect和permanent区别
- 修改conf 文件,将 last,修改为redirect 。
- 重新请求数据 curl -vL http://www.heartmusicbeat.com/last/
从上边可以看出,它是先去请求了一个,返回了一个 location. 然后去请求返回的location 的请求。
-
临时重定向 与 永久重定向
image.png- permanent : 访问这个网站,将永久重定向到 特定的网站。
- redirect: 访问这个网站,临时重定向到 特定的网站,当nginx 服务关闭的时候,将无法定向到特定的网站。
4、 rewrite优先级规则
- 执行server 块的rewrite 指令。将所有的网站都重定向同一个网站。
- 执行location匹配。
- 执行选定的location中的rewrite。
微信扫码关注java技术栈,每日更新面试题目和答案,并获取Java面试题和架构师相关题目和视频。