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

AWS部署Eureka架构时获取Swagger定义报UnknownHostException

问题根因

你遇到的UnknownHostException是默认配置下Eureka客户端会将自身所在AWS容器/EC2实例的内部主机名(即报错中出现的cff2a33fcf77,为容器的ID)上报给Eureka服务端,而服务端无法解析这个内部网络的主机名,因此无法拉取客户端的swagger接口文档。本地运行时主机名在本地网络可解析,因此不会出现该问题。

解决方案

方案1:客户端配置优先使用IP注册(适合无固定域名场景)

在event-catalog客户端的application.yml的eureka.instance节点下新增配置:

eureka:
  instance:
    prefer-ip-address: true
    # 如需指定公网IP可手动添加:ip-address: 你的AWS实例公网IP

配置后客户端上报给Eureka的地址将为IP而非主机名,只要Eureka服务端和客户端网络互通即可正常访问。

方案2:客户端指定自定义域名上报(适合有固定域名dev.event-catalog.rd.xxx.io的场景)

在event-catalog客户端的eureka.instance节点下直接指定对外可访问的域名:

eureka:
  instance:
    appname: event-catalog 
    hostname: dev.event-catalog.rd.xxx.io
    # 若对外暴露端口非默认80,可补充配置:non-secure-port: 8550

配置后Eureka服务端会直接使用你指定的域名拉取api-docs接口内容。

方案3:服务端配置Ribbon地址映射(适合不想修改客户端配置的场景)

在Eureka服务端的配置文件中增加Ribbon服务映射规则,直接指定event-catalog的访问地址:

event-catalog:
  ribbon:
    listOfServers: dev.event-catalog.rd.xxx.io:8550 # 替换为实际的对外访问地址

验证方式:配置重启后先查看Eureka首页的注册信息,确认显示的event-catalog服务地址已经替换为你预期的IP/域名,再访问swagger-ui验证功能是否正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 21:45:03