码农知识堂 - 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可以正常访问。其他的一律跳转到维护页面。

  • 相关阅读:
    校验算法总结
    java计算机毕业设计水星家纺网站源码+系统+数据库+lw文档+mybatis+运行部署
    抽奖基本算法讨论
    猿创征文| Unity之C#高级开发①
    记录在一次bufio.Reader的错误使用中引起的思考
    快速了解 Kubernetes 的架构及特性
    Linux防火的常用命令
    驱动开发中函数名和变量名前的下划线有什么用?
    通用后台管理系统前端界面Ⅹ——前端数据表格的删除、查找
    【面试题】 经典但依然超难做的 前端面试题 (值得收藏)
  • 原文地址:https://blog.csdn.net/m0_73792056/article/details/134499994
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号