我的应用程序 (openmrs) 在 ubuntu、apache、mysql 上运行。它在 apache 中配置了公共 DNS 名称:ec2-174-129-227-190.compute-1.amazonaws.com。问题出在应用程序的系统 ID 中。它显示内部 DNS 名称:ip-10-250-78-208.ec2.internal。我如何更改它以便它确实路由到内部 DNS 名称。
答案1
亚马逊提供的 DNS 解析器代表您的实例执行递归查找,它具有一些内置的魔法,当内部主机查找该名称时,它会将您的外部主机名转换为您的内部 IP 地址。
请注意这些例子中的区别。
从我的 EC2 网络外部 ping 一台机器的外部名称将返回外部地址,正如您所期望的那样:
user@dev:~$ ping ec2-54-x-x-x.compute-1.amazonaws.com
PING ec2-54-x-x-x.compute-1.amazonaws.com (54.x.x.x) 56(84) bytes of data.
64 bytes from ec2-54-x-x-x.compute-1.amazonaws.com (54.x.x.x): icmp_req=1 ttl=49 time=25.2 ms
但是,从我的内部 EC2 网络内的一台机器 ping 一台机器的外部 DNS 名称时,结果令人惊喜:我们实际得到的地址是内部地址。请注意,尽管我已经对其进行了清理,但我还是 ping 了确切地这两个例子中的主机名相同。
user@i-0dxxxxxx:~$ ping ec2-54-x-x-x.compute-1.amazonaws.com
PING ec2-54-x-x-x.compute-1.amazonaws.com (10.x.x.x) 56(84) bytes of data.
64 bytes from ip-10-x-x-x.ec2.internal (10.x.x.x): icmp_req=1 ttl=64 time=1.29 ms
如果您的安全组配置正确,则使用外部主机名针对您的主机的请求无论是在 EC2 内部还是外部发起都应该有效。