从 NGINX 迁移到矩尺
概述
本文档面向熟悉 NGINX 配置的工程师,通过一个完整的迁移示例和差异对照,帮助您将 NGINX 配置翻译为矩尺平台配置。概念层面的对照请参考 核心概念与产品对照。
建议阅读顺序:先读 核心概念与产品对照 建立概念映射,再回到本文档看实战迁移流程。
迁移工作流
从 NGINX 迁移到矩尺,按以下顺序创建资源:
1. 添加转发引擎 → 对应 NGINX 所在的主机
2. 上传 SSL 证书(可选) → 对应 .crt / .key 文件
3. 创建健康检查策略 → 对应 nginx-plus 的 health_check(开源版无内置)
4. 创建服务器池 → 对应 upstream 块
5. 创建分发策略 → 对应 location 匹配条件 / if 指令
6. 创建七层/四层策略 → 对应 proxy_set_header、gzip、rewrite 等指令
7. 创建会话保持策略 → 对应 sticky cookie / ip_hash
8. 创建虚拟服务 → 对应 server 块(组合以上所有组件)
9. 变更执行 → 对应 nginx -s reload完整迁移示例
假设您有以下 NGINX 配置,我们逐步将其翻译为矩尺配置:
upstream app_backend {
server 10.1.9.114:8000 weight=5 max_fails=3 fail_timeout=30s;
server 10.1.9.117:8000 weight=5 max_fails=3 fail_timeout=30s;
keepalive 32;
}
upstream admin_backend {
server 10.1.9.200:8000;
}
server {
listen 443 ssl http2;
server_name www.example.com;
ssl_certificate /etc/ssl/certs/example.crt;
ssl_certificate_key /etc/ssl/keys/example.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_session_cache shared:SSL:10m;
gzip on;
gzip_types text/plain application/json;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location /admin/ {
allow 10.0.0.0/8;
deny all;
proxy_pass http://admin_backend;
}
location /api/ {
proxy_pass http://app_backend;
}
location /static/ {
root /var/www;
}
location / {
return 301 https://www.example.com/;
}
}步骤 1:添加转发引擎
将 NGINX 所在的主机(或新主机)作为转发引擎添加到矩尺平台。入口:【平台系统 → 基础设施 → 转发引擎】。
步骤 2:上传 SSL 证书
将 example.crt 和 example.key 上传到矩尺。【平台系统 → SSL 证书管理】。注意证书和私钥需使用相同名称配对。
详细步骤参见 快速创建HTTPS虚拟服务 - 上传证书。
步骤 3:创建健康检查策略
NGINX 配置中的 max_fails=3 fail_timeout=30s 约定了健康检查行为,但开源 NGINX 只做被动检查(请求失败才计数)。矩尺可配置主动健康检查:
- 创建健康检查策略(例如 HTTP 协议,GET
/health,期望 200) - 高级配置:下线检测快(间隔 3s,连续 2 次失败),上线确认慢(间隔 10s,连续 3 次成功)
详细配置参见 健康检查配置指南。
步骤 4:创建服务器池
创建两个服务器池,分别对应 upstream app_backend 和 upstream admin_backend:
| upstream | 矩尺服务器池 | 节点 |
|---|---|---|
app_backend | app-pool | 10.1.9.114:8000 (权重5), 10.1.9.117:8000 (权重5) |
admin_backend | admin-pool | 10.1.9.200:8000 |
配置要点:
- 负载均衡算法:加权轮询(对应 NGINX 默认的加权 round-robin)
- 健康检查:绑定步骤 3 创建的检查策略
keepalive 32→ 七层策略中配置 TCP 连接复用(见步骤 6)
步骤 5:创建分发策略
将 NGINX 的 location 匹配条件和 allow/deny 翻译为分发策略:
| NGINX | 矩尺分发策略 |
|---|---|
location /admin/ | URL 前缀匹配 = /admin/ |
allow 10.0.0.0/8; deny all | 源地址 = 10.0.0.0/8(内网 IP 段) |
location /api/ | URL 前缀匹配 = /api/ |
location /static/ | URL 前缀匹配 = /static/ |
步骤 6:创建七层策略
NGINX 中的 proxy_set_header、gzip 等指令,在矩尺中集中配置为一个七层策略对象:
| NGINX 指令 | 矩尺七层策略配置 |
|---|---|
proxy_set_header Host $host | Host 头部传递策略 |
proxy_set_header X-Real-IP $remote_addr | 开启 X-Forwarded-For |
gzip on; gzip_types ... | HTTP 压缩策略(Gzip / Brotli) |
keepalive 32 | TCP 连接复用 |
步骤 7:创建 SSL 策略和会话保持策略
| NGINX | 矩尺配置 |
|---|---|
ssl_certificate / ssl_certificate_key | SSL 客户端策略 → 选择步骤 2 上传的证书 |
ssl_protocols TLSv1.2 TLSv1.3 | SSL 客户端策略 → 支持的 SSL 协议 |
ssl_session_cache shared:SSL:10m | SSL 客户端策略 → 开启 Session 缓存 |
无(需 sticky cookie 指令) | 会话保持策略 → Cookie 插入 |
步骤 8:创建虚拟服务
创建虚拟服务 www-https,将以上组件组合在一起:
虚拟服务 "www-https"
协议: HTTPS, 监听: 0.0.0.0:443
服务域名: www.example.com
SSL 客户端策略: (步骤 7)
启用 HTTP/2: 是
├── 分发规则 "admin-rule"(高优先级)
│ 分发策略: URL 前缀 /admin/ + 源地址 10.0.0.0/8
│ 处理方式: HTTP代理 → admin-pool
│
├── 分发规则 "admin-deny"(高优先级)
│ 分发策略: URL 前缀 /admin/
│ 处理方式: 指定错误码 403
│
├── 分发规则 "api-rule"(中优先级)
│ 分发策略: URL 前缀 /api/
│ 处理方式: HTTP代理 → app-pool
│ 七层策略: (步骤 6)
│
├── 分发规则 "static-rule"(中优先级)
│ 分发策略: URL 前缀 /static/
│ 处理方式: 静态资源 → 去前缀 /static
│
└── 默认分发规则
处理方式: 重定向 → https://www.example.com/步骤 9:变更执行
相当于 nginx -s reload。点击"变更执行"按钮使所有配置在转发引擎上生效。
关键行为差异
从 NGINX 迁移时,需特别注意以下行为差异:
| 场景 | NGINX | 矩尺 |
|---|---|---|
| 匹配优先级 | location 书写顺序 + 修饰符(= ~ ^~) | 显式优先级(高/中/低)+ URL 类型(正则>完全>前缀)+ 先后顺序 |
| 健康检查 | 开源版仅被动检查(请求失败才标记 down) | 主动健康检查,支持 20+ 协议和 AND/OR 协作 |
| 静态资源 | 依赖服务器本地文件路径 | 压缩包上传到管理节点,自动同步到转发引擎,支持目录映射 |
| 会话保持 | ip_hash 仅支持源地址;sticky 需 Plus | 六种方式,支持跨虚拟服务共享 |
| 日志 | access_log 输出到文件 | 图形化日志中心 + Syslog 外发,支持客户端全景分析 |
| 证书管理 | 文件路径直接引用 | 证书上传到平台统一管理,过期自动预警 |
| 配置生效 | nginx -s reload | 点击"变更执行",变更期间长连接可保持(由集群网络策略控制) |
| 多租户 | 无内置支持 | RTBAC 多租户权限体系,控制面和数据面双重隔离 |
概念层面的详细映射请参考 核心概念与产品对照。从 NGINX 配置到矩尺配置的匹配逻辑对照参见 分发规则匹配逻辑详解。
