星途物语 星途物语
首页
  • 随手记录
  • 故障处理
  • Nginx
  • MySQL
  • Ansible
  • Nexus
  • Tomcat
  • Docker
  • Zabbix
  • Prometheus
  • Git
  • GitLab
  • Jenkins
  • Kubernetes
  • Shell
  • Python
  • 圈圈空间
  • 做饭这件事
收藏站点
留言板
归档
GitHub (opens new window)

星途物语

尚记时,记之
首页
  • 随手记录
  • 故障处理
  • Nginx
  • MySQL
  • Ansible
  • Nexus
  • Tomcat
  • Docker
  • Zabbix
  • Prometheus
  • Git
  • GitLab
  • Jenkins
  • Kubernetes
  • Shell
  • Python
  • 圈圈空间
  • 做饭这件事
收藏站点
留言板
归档
GitHub (opens new window)
  • 随手记录

    • QPS优化记录
    • 阿里云SLB演示
    • DDOS预防
    • Linux内核优化
    • rsync同步守护进程
    • NFS文件同步
    • Tomcat升级
    • 编译安装mysql后添加到systemd管理
    • 防火墙笔记
    • python自动化巡检服务器
  • 故障处理

    • 处理防MIME攻击后出现的问题解决
  • MySQL学习笔记

    • MySQL5.7安装
    • MySQL常用操作语句
    • MySQL主从架构实施
    • MySQL主主架构实施
    • MySQL MHA高可用实施
    • MyCat读写分离
    • MySQL创建用户时的授权
    • MySQL备份
    • MySQL通配符
  • Nginx学习笔记

    • 状态码含义
    • 匹配优先级
    • Nginx常用操作
    • 添加第三方模块
    • 关于路径匹配
    • 转发和重写
      • 内置变量
      • Nginx配置文件结构
    • Tomcat学习笔记

      • 部署Tomcat
      • 修改发布目录
      • Tomcat调优
    • Redis学习笔记

      • 通过 tar.gz 包安装部署 redis
      • redis 配置文件
      • 哨兵集群
      • redis常用命令
      • 虚拟机安装 redis.tar.gz 遇到的问题
    • Ansible学习笔记

      • 部署和使用 ansible
      • ansible 自带的密码认证参数
      • 批量免密操作:批量分发公钥
      • 配置主机清单
      • ansible 小知识
      • 模块介绍
      • 剧本
      • 一键部署 rsync 环境
      • 批量安装一个tomcat
      • 批量安装一个nginx
      • 批量安装 zabbix-agent
    • Zabbix学习笔记

      • 部署 zabbix 服务端、客户端
      • 自定义监控
      • 触发器
      • 监控项类型
      • 简单检查模式
      • zabbix web 界面结构信息
      • 邮件报警
      • 微信报警
      • snmp 监控网络设备
      • 部署 zabbix 服务端、客户端
      • jmx 监控 java 应用
      • ipmi 监控硬件
      • 自动化注册
      • 监控项的主要项和相关项
      • percona 监控 mysql
    • Git学习笔记

      • 配置 git
      • 常用命令
    • GitLab学习笔记

      • 环境准备
      • 安装 gitlab
      • gitlab 忘记 root 管理员密码的处理办法
    • Jenkins学习笔记

      • 安装部署
      • jenkins 使用脚本完成项目构建
      • jenkins 自动构建最新项目
      • 将 jenkins 自动部署的结果返回给 gitlab
      • jenkins 上线 java 项目
      • jenkins pipeline
    • Docker学习笔记

      • 安装 docker
      • 配置 docker 源
      • docker 中的常见名词
      • 镜像管理命令
      • 容器管理命令
      • 创建容器
      • 数据卷
      • docker network
      • 搭建 LNMP
      • Dockerfile
      • Dockerfile 搭建 tomcat
      • docker 镜像磁盘扩容
      • docker composer
      • Harbor 私有镜像仓库
      • docker 面试题
      • docker desktop 运行时与虚拟机冲突
      • docker离线安装
    • Nexus学习笔记
    • Prometheus学习笔记

      • 核心组件
      • 工作原理
      • 安装和配置
      • 启动 Prometheus
      • PromQL 使用
      • 数据模型
      • Exporter
      • 演示服务
      • Grafana 数据可视化
      • Prometheus 告警
    • Kubernetes学习笔记

      • K8S的介绍
      • K8S集群环境的搭建
      • K8S资源管理
      • K8S的实战入门
    • 运维
    • Nginx学习笔记
    星途物语
    2025-01-01
    目录

    转发和重写

    # 转发

    将用户的请求代理到另一个服务器或服务上进行处理,然后将结果返回给用户,通常用于反向代理或负载均衡

    主要属性:

    • proxy_pass:将请求转发到后端服务器
    • upstream:定义后端服务器池(用于负载均衡)

    这两种方式在 3.常用场景 已经介绍了

    # 重写

    修改用户请求的 URI 或 URL,而不改变服务器的响应地址

    主要属性:

    • rewrite:重写请求 URI,不会暴露实际资源路径
    • return:直接返回重写后的地址或状态码
    • try_files:优雅地尝试多个文件路径或重写后的路径

    例子:

    # 简单重写路径
    location /old-path/ {
        rewrite ^/old-path/(.*)$ /new-path/$1 permanent;
    }
    # 将 /old-path/anything 重写为 /new-path/anything
    # permanent 表示返回 301 状态码,告诉浏览器这是永久的地址变更
    # 去掉 URL 中的文件扩展名
    rewrite ^/(.*)\.html$ /$1 break;
    # 请求 /about.html 会重写为 /about
    # 尝试多个文件路径
    location / {
        try_files $uri $uri/ /index.html;
    }
    # 依次尝试:
    # 文件路径 $uri(如 /about.html)。
    # 目录路径 $uri/(如 /about/)。
    # 如果都不存在,重写为 /index.html
    # 重写路径后转发到后端
    location /api/v1/ {
        rewrite ^/api/v1/(.*)$ /v2/$1 break;
        proxy_pass http://backend_server;
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    特性 转发 重写
    作用范围 转发请求到另一个服务器或服务 修改请求的 URI 路径
    指令 proxy_pass、upstream rewrite、try_files、return
    最终目的 后端处理请求并返回响应 可能修改 URI 后仍由 Nginx 本地处理
    使用场景 后端服务分发、负载均衡、反向代理 URL 优化、旧路径迁移、文件路径映射
    影响的层面 改变请求发送的目标地址 改变请求路径,通常在同一服务器内解析

    #

    #Nginx
    关于路径匹配
    内置变量

    ← 关于路径匹配 内置变量→

    Theme by Vdoing | Copyright © 2025-2025 | 鄂ICP备2024086820号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式