千家信息网

Nginx中location匹配及rewrite重写跳转的方法

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍"Nginx中location匹配及rewrite重写跳转的方法"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Nginx中location匹配
千家信息网最后更新 2026年11月03日Nginx中location匹配及rewrite重写跳转的方法

这篇文章主要介绍"Nginx中location匹配及rewrite重写跳转的方法"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"Nginx中location匹配及rewrite重写跳转的方法"文章能帮助大家解决问题。

    一、rewrite跳转实现

    Nginx:通过ngx_http_rewrite_module模块支持URL重写、支持if条件判断,但不支持else

    跳转:从一个location跳转到另一个location,循环最多可以执行10次,超过后nginx将返回500错误

    PCRE支持:perl兼容正则表达式的语法规则匹配

    重写模块set指令:创建新的变量并为其赋值

    二、rewrite执行顺序

    ①执行server快里面的rewriter指令

    ②执行location匹配

    ③执行选定的location中的rewrite指令

    三、rewrite跳转场景

    调整用户浏览的URL,看起来更规范,合乎开发及产品人员的需求

    为了让搜索引擎搜录网站内容及用户体验更好,企业会将动态URL地址伪装成静态地址提供服务

    网址换新域名后,让旧的访问跳转到新的域名上;例如,访问京东的 360buy.com 会跳转到 jd.com

    服务端某些业务调整,比如根据特殊变量、目录、客户端的信息进行URL调整等

    四、语法与flg标记说明

    语法rewrite [flag];

    regex:表示正则匹配规则

    replacement:表示跳转后的内容

    flag:表示 rewrite 支持的 flag 标记

    flag标记说明:

    • last :本条规则匹配完成后,继续向下匹配新的location URI规则,一般用在 server 和 if 中

    • break :本条规则匹配完成即终止,不再匹配后面的任何规则,一般使用在 location 中

    • redirect :返回302临时重定向,浏览器地址会显示跳转后的URL地址

    • permanent :返回301永久重定向,浏览器地址栏会显示跳转后的URL地址

    五、Nginx常用的正则表达式符号

    六、location

    1.分类

    location大致可以分为以下三类:

    • 精准匹配:location = / {…}

    • 一般匹配:location / {…}

    • 正则匹配:location ~ / {…}

    2.常用匹配规则

    3.优先级

    • 首先精准匹配 =

    • 其次前缀匹配 ^~

    • 其次是按文件中顺序的正则匹配 ~ 或 ~*

    • 然后是匹配不带任何修饰的前缀匹配,即一般匹配

    • 最后交给 / 通用匹配,优先级最低

    4.示例

    localtion = / {}

    =为精准匹配 /,主机名后面不能带任何字符串,比如访问 / 和 /xcf,则 / 匹配,/xcf 不匹配

    location / {}

    因为所有的地址都以 / 开头,所以这条规则将匹配到所有的请求,比如访问 / 和 /data,则 / 匹配,/data也匹配

    但若后面是正则表达式,则会和最长字符串优先匹配(最长匹配)

    location /documents/ {}

    匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索其它 location

    location /documents/abc {}

    匹配任何以 /documents/abc 开头的地址,匹配符合后,还要继续往下搜索其他 location

    只有其他 location 后面的正则表达式没有匹配到时,才会采用这一条

    location ^~ /images/ {}

    匹配任何以 /images/ 开头的地址,匹配符合以后,停止往下搜索正则,并采用这条

    location ~* .(gif|jpg|jpeg)$ {}

    匹配所有以 gif、jpg、jpeg 为结尾的请求

    然而,所有请求 /images/ 下的图片会被 location ^~ /images/ 处理,因为 ^~ 的优先级更高,所以到达不了这一条正则

    location /images/abc {}

    最长字符匹配到 /images/abc,优先级最低,继续往下搜索其它 location,会发现 ^~ 和 ~ 存在

    location ~ /images/abc {}

    匹配以 /images/abc 开头的,优先级次之,只有去掉 location ^~ /images 才会采用这一条

    location /images/abc/1.html {}

    匹配 /images/abc/1.html 文件,如果和正则 ~ /images/abc/1.html 相比,正则优先级更高

    优先级总结:

    (location = 完整路径) > (location ^~ 路径) > (location ,* 正则顺序) > (location 部分起始路径) > (location /)

    5.匹配规则定义

    ①第一个必选规则:

    直接匹配网站根,通过域名访问网站首页比较频繁,使用这个会加速处理,比如说官网

    可以是一个静态首页,也可以直接转发给后端"应用服务器"——>PHP、Apache(应用服务器如下图所示)

    location / {    root    html;    index    index.html index.html;}

    ②第二个必选规则:

    处理静态文件请求,这是nginx作为http服务器的强项(①静态请求处理的能力②高并发处理能力③资源消耗较低)

    有两种配置模式,目录匹配或后缀匹配,任选其一或搭配使用

    location ^~ /static/ {    root /webroot/static/;} location ~* \.(html|gif|jpg|jpeg|png|css|js|ico)$ {    root /webroot/res/ ;}

    ③第三个必选规则:

    就是通用规则,比如用来转发带.php、.jsp后缀的动态请求到后端应用服务器

    非静态文件请求就默认是动态请求(跳转/反向代理)

    upstream tomcat_server {                192.168.126.12:80                192.168.126.23:80}
    location / {    proxy_ pass http://tomcat_server;

    总结:

    1.比较rewrite和location

    相同点:都实现跳转

    不同点:rewrite是在同一域名内更改获取资源的路径

    location是对一类路径做控制访问或反向代理,还可以proxy_pass到其他机器

    2.rewrite会写在location里,执行顺序

    • 执行server块里面的rewrite指令

    • 执行location匹配

    • 执行选定的location中的rewrite指令

    3.location优先级是怎么排列的?

    匹配某个具体文件

    (location = 完整路径) > (location ^~ 完整路径) > (location ~* 完整路径) > (location ~ 完整路径)> (location /)

    用目录做匹配访问某个文件

    (location = 目录) > (location ^~ 目录) > (location ~ 目录) > (location ~* 目录)> (location /)

    4.文件、目录为什么只会在区不区分大小写上会有变动

    正则表达式:目的是为了尽量精确的匹配

    文件——>尽量精确匹配,区分大小写 精确,不区分更为精确

    目录——>尽量精确匹配,区分大小写 更为精确,优先级更高

    关于"Nginx中location匹配及rewrite重写跳转的方法"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

    正则 规则 地址 优先级 目录 路径 文件 精确 服务 开头 指令 表达式 静态 处理 搜索 支持 方法 域名 服务器 顺序 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州紫鲸互联网科技有限公司 湖南永感互联网科技有限公司 科技平台互联网 电子科技大学互联网 互联网科技logo设计 万达互联网科技 广州紫鲸互联网科技 成都狮子座互联网科技 丰台科技园 互联网公司 哈尔滨新华互联网科技 恒生科技互联网指数分析 南山科技园互联网公司有哪些 速维有品互联网信息科技(苏州)有限公司 互联网科技公司营业执照怎么办理 信承诺互联网科技有限公司 中国新注册互联网科技 求路客互联网科技电话 平安好医生打造互联网科技医疗 互联网科技快速发展优美句子 小牛互联网科技有限公司地址 新华互联网科技学校 互联网扶贫科技 金融科技 互联网金融 艾特科技互联网 玖二柒互联网科技公司待遇 恒银科技与互联网金融 广州慧亚互联网科技怎么样 厦门比较好的科技互联网公司 科技类公司包括互联网吗 版纳互联网科技选哪家
    0