Nginx - rewrite模块深度学习

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面试题和架构师相关题目和视频。

你可能感兴趣的:(Nginx - rewrite模块深度学习)