如何配置Azure Application Gateway实现与现有Nginx反向代理相同功能?
迁移Nginx路径转发配置到Azure应用网关的正确操作
原Nginx配置核心逻辑
- 监听443端口HTTPS请求,绑定域名
subdomain.domain.com - 请求路径匹配
/domain-folder1时,转发到http://127.0.0.1:5678/(末尾斜杠会移除匹配的路径前缀,比如/domain-folder1/abc会转成/abc发给后端) - 请求路径匹配
/domain-folder2时,转发到http://127.0.0.1:4151/(同样移除路径前缀)
Azure应用网关对应配置步骤
1. 创建后端池
分别为两个后端服务创建独立池:
- 后端池1:添加目标服务器
127.0.0.1,端口5678(如果是云服务,替换为实际VM/IP/应用服务地址) - 后端池2:添加目标服务器
127.0.0.1,端口4151
2. 配置HTTP设置
对应Nginx的proxy_params(包含请求头转发等逻辑):
- 为每个后端池创建HTTP设置:
- 协议选
HTTP(后端是HTTPS则对应修改),端口匹配后端服务端口 - 建议开启自定义健康探测,确保后端状态可监控
- 关键:
路径字段填写/,这会模拟Nginx proxy_pass末尾斜杠的效果,转发时自动移除匹配的路径前缀 - 主机头设置:勾选「从后端地址拾取主机名」或手动填写对应值,对应Nginx的
proxy_set_header Host $host;
- 协议选
3. 配置路径路由规则
这是路径转发生效的核心,注意Azure的匹配规则和Nginx不同:
- 创建基于路径的路由规则,关联已配置的HTTPS监听(需先上传SSL证书并绑定域名
subdomain.domain.com) - 添加两个路径匹配项:
- 路径1:
/domain-folder1/*(Azure用*作为通配符,匹配该路径下所有子路径,对应Nginx的location /domain-folder1) - 路径2:
/domain-folder2/*
- 路径1:
- 每个路径匹配项关联对应的后端池和HTTP设置
- 若有多个规则,确保具体路径优先级更高(此处两个路径平级,顺序不影响)
4. SSL证书配置
- 在应用网关的「SSL设置」中上传与Nginx一致的PEM证书和私钥,对应
ssl_certificate和ssl_certificate_key - 监听端口设为443,协议选
HTTPS,绑定域名subdomain.domain.com
常见问题排查
- 路径匹配失效:检查路径规则是否用了
/*通配符,Azure不支持Nginx式的前缀匹配(如/domain-folder1),必须用/domain-folder1/*才能覆盖所有子路径 - 转发路径错误:若后端收到的请求仍包含
/domain-folder1前缀,说明HTTP设置的「路径」未填/,导致未移除前缀 - SSL握手失败:确认证书上传完整、域名与证书绑定一致、监听端口和协议配置正确
内容的提问来源于stack exchange,提问作者Fynenix
相关产品推荐
相关产品推荐

