在带内部负载均衡器的现有Nginx前部署Azure应用网关的步骤及健康探测超时排查
配置Azure应用网关对接带内部负载均衡器的Nginx部署步骤
前置检查
- 确认带内部负载均衡器(ILB)的Nginx部署已正常运行,ILB后端池已关联Nginx实例,Nginx监听80端口
- 确保Azure应用网关所在虚拟网络与Nginx的VNet连通(同VNet或已配置VNet对等)
- 拥有应用网关的配置权限
1. 应用网关基础配置
- 新建或选择现有应用网关,配置核心参数:
- 虚拟网络:选与Nginx同VNet/对等的VNet
- 子网:分配专属子网(需≥/28)
- 前端IP:按需选公共IP(外部访问)或内部IP(仅内部访问),绑定80端口
- 前端端口:创建80端口的端口配置
2. 配置后端池
- 进入应用网关「后端池」页面,点击「添加」
- 目标类型选内部负载均衡器,选择已有的Nginx ILB
- 确认后端池关联的ILB后端Nginx实例状态正常
3. 后端HTTP设置
- 进入「后端HTTP设置」页面,点击「添加」
- 关键配置:
- 端口:80(匹配Nginx监听端口)
- 协议:HTTP
- 健康探测:先使用默认探测,后续按需调整
- 超时时间:建议先设为60秒(适配可能的后端延迟)
- 可选:启用Cookie关联(如需会话保持)
4. 配置监听器
- 进入「监听器」页面,点击「添加」
- 配置:
- 前端IP:选之前创建的前端IP配置
- 前端端口:选80端口
- 协议:HTTP
- 监听规则类型:按需选「基本」或「路径基」
5. 路由规则配置
- 进入「规则」页面,点击「添加」
- 关联已创建的监听器、后端池和后端HTTP设置,保存配置
健康探测超时问题解决
问题根源
默认健康探测超时为30秒,若Nginx后端响应超过该阈值,会触发告警。常见诱因:
- Nginx实例负载过高,请求处理延迟
- ILB到Nginx的网络链路存在延迟
- 探测目标路径(默认
/)在Nginx上处理逻辑复杂
解决措施
1. 调整探测超时阈值
- 进入应用网关「健康探测」页面,选中当前使用的探测规则
- 修改「超时」参数:先调至60秒,若仍超时可逐步提升(最大支持3600秒)
- 可选:调整「间隔」参数(默认30秒),降低探测频率减轻后端压力
- 保存后等待1-2分钟,观察探测状态是否恢复正常
2. 排查Nginx后端问题
- 登录Nginx实例,查看
/var/log/nginx/access.log和error.log,检查来自应用网关IP的探测请求响应时间 - 简化Nginx根路径
/的处理逻辑,避免复杂计算或数据库查询 - 查看Nginx实例CPU、内存负载,若负载过高需扩容或优化配置
- 在应用网关子网内的虚拟机上执行
curl -w "%{time_total}\n" http://<Nginx内部IP>,测试网络延迟
3. 优化网络链路
- 确认VNet对等连接(跨VNet场景)状态正常,无带宽瓶颈
- 检查ILB的健康状态,确保后端Nginx实例均处于健康状态
- 验证NSG规则,确保允许应用网关IP段访问Nginx的80端口
内容的提问来源于stack exchange,提问作者Andrew Vergara
相关产品推荐
相关产品推荐

