You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure应用容器环境中Nginx无法解析Symfony-app主机名求助

问题排查与解决方案

核心问题分析

你的nginx容器能通过IP访问symfony-app,但主机名解析到错误IP,说明容器间的DNS服务发现配置存在问题,而非网络连通性故障。

排查与修复步骤

1. 确认容器服务名称一致性

如果使用Docker Compose部署多容器,检查docker-compose.yml中symfony-app的服务名称是否为symfony-app,确保nginx配置中使用的主机名与该服务名完全一致(大小写敏感)。

示例正确的Compose配置片段:

services:
  nginx:
    image: nginx:latest
    ports:
      - "80:80"
  symfony-app:
    image: your-symfony-image:latest
    ports:
      - "9000:9000"

2. 检查容器内部DNS解析

在nginx容器内执行nslookup symfony-app,查看解析出的IP是否与symfony-app的实际IP(100.100.0.116)一致:

root@nginx--dxl9wvh-7b456fdcd-zpqdq:/# nslookup symfony-app

如果解析结果仍然是错误IP,说明Azure内部DNS服务未正确同步容器信息,可尝试:

  • 重启两个容器(优先重启symfony-app,再重启nginx)
  • 检查Azure App Service实例是否处于正常运行状态,无资源配额不足等问题

3. 临时绕过DNS解析(测试用)

在nginx容器的/etc/hosts中手动添加IP映射,验证是否能通过主机名连通:

echo "100.100.0.116 symfony-app" >> /etc/hosts
telnet symfony-app 9000

如果连通成功,说明DNS服务存在异常,可联系Azure支持排查内部DNS同步问题,或在部署脚本中自动添加hosts映射作为临时解决方案。

4. 验证容器网络配置

确保两个容器处于同一个Azure App Service实例的多容器部署中(而非独立的两个App Service),且未配置自定义隔离网络。Azure App Service多容器默认使用bridge网络,容器间应自动支持服务名称解析。

内容的提问来源于stack exchange,提问作者Fpasquer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 16:05:05