码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • nginx优先级、规则及重定向


    目录

    一、location分类:

    1、精确匹配 locatin=/

    2、正则匹配:location~区分大小写进行匹配

    3、一般匹配

    二、locatoin匹配的优先级:

    三、三个必须选规则:

    1、location=/ 一般用于网站的首页,我们都用精确匹配,一般是静态页面,也可以是发送到后端的动态页面。

    2、处理静态文件的规则

    3、一般匹配:

    四、重定向:

    nginx内置的变量:

    flag的类型:


    location匹配的规则和优先级

    nginx匹配location和正则表达式结合使用

    location匹配uri字符串标识

    URL:www.baidu.com/test

    在nginx中匹配就是/test这一部分

    一、location分类:

    1、精确匹配 locatin=/

    匹配的字符要完全一致才会匹配到

    2、正则匹配:location~区分大小写进行匹配

    location^前缀匹配,匹配普通字符

    location~*不区分大小写进行匹配

    location!~对大小写的结果取反

    location!~*不区分大小写的结果取反

    3、一般匹配

    location /test一般通用匹配

    location / 通用匹配

    二、locatoin匹配的优先级:

    1、精确匹配(locatoin=)> 正则匹配(location^~)>(locatoin~~*)>带路径的通用匹配location /test>location/

    匹配的原则:一旦命中不再继续匹配

    在实际的网站中,如何配置location

    三、三个必须选规则:

    1、location=/ 一般用于网站的首页,我们都用精确匹配,一般是静态页面,也可以是发送到后端的动态页面。
    2、处理静态文件的规则

    两种规则:

    1)以什么为开头的正则匹配

    location^~ /static

    2)匹配后缀名

    location~*.(html|jpg|gif)

    3、一般匹配:

    location/{

    proxy_pass转发.jsp或者.php的动态页面请求

    }

    三个规则是最少规则

    四、重定向:

    rewrite:作用就是结合正则表达式实现URI的重写已经定向(页面跳转)

    rewrite:只能在server location if这三个位置之中

    nginx内置的变量:

    $uri:表示客户端请求的uri

    $host:请求的主机名

    $remote_port:客户端请求的端口

    $remote_addr:客户端请求的IP地址

    rewrite的语法:

    rewrite<正则表达式><表示跳转后的内容>flag(标记位)

    flag的类型:

    1、redirect:临时重定向,返回302

    2、permanent:永久重定向,301

    3、break本条规则匹配完成之后即停止,不再匹配其他跳转规则,URI地址也不会发生变化

    4、last本条规则匹配完之后。继续向下匹配新的location uri规则

    rewrite /test/(.*) /ky01/$1 redirect

    rewrite当前的捕获组(.*) $1表示捕获组,用于字符串中提取特定部分

    www.baidu.com/test/page.1

    /test/iindex.html

    (.*)index.html

    www.baidu.com/ky01/page.1

    /ky01/index.html

    nginx内部语法last方式,最多只能循环10次,超过之后会返回500错误码

    rewrite和location似乎都可以实现页面跳转,rewrite的就是跳转到新的或者是更改获取指定资源的路径

    location是控制访问,以及反向代理

    基于域名的跳转:现在公司的旧域名www.kgc.com,页面变更,网页要换www.benet.com,旧域名还要能提供访问,但是域名要变更成新域名,而且保证参数不变

    if ($host='www.kgc.com'){ rewrite ^/(.*)$ http://www.benet.com/$1 permanent ^/(. *)$ www.kgc.com/index.html www.benet.com/index.html

    基于客户端ip地址进行跳转 今天公司业务新版上线,维护一下。除了前端开发参与调试工作可以打开页面,其他地址 统─跳转到维护页面。 只有公司: 192.168.233.61可以正常访问。其他的一律跳转到维护页面。

  • 相关阅读:
    算法-有效括号
    Cell | 膳食糖诱导的微生物失调破坏免疫介导的代谢综合征保护
    Java中如何检测HashMap中是否存在指定Value呢?
    linux 使用 navicat 报错的各种问题
    哈希表9.24
    软考重点10 知识产权
    事务的四个特性以及应用
    JavaScript 的面向对象基础,设计模式中的原型模式(设计模式与开发实践 P2)
    C++二级指针的指向与解引用
    浅谈机器学习中的概率模型
  • 原文地址:https://blog.csdn.net/m0_73792056/article/details/134499994
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号