我遵循了这里的建议:
http://wiki.cloudbees.com/bin/view/Main/Finding+out+app+port+and+hostname
public String getIp() throws UnknownHostException {
String hostName = InetAddress.getLocalHost().getHostName();
String urlToRead = "http://instance-data/latest/meta-data/public-hostname";
String iVeALsoTriedThis = "http://instance-data/latest/meta-data/" + hostName;
URL url;
HttpURLConnection conn;
BufferedReader rd;
String line;
String result = "";
try {
url = new URL(urlToRead);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
while ((line = rd.readLine()) != null) {
result += line;
}
rd.close();
} catch (Exception e) {
e.printStackTrace();
}
return hostName + " ------ " + result;
}
在主页上使用简单的标签来获取详细信息:
IP: <s:property value="ip"/>
我得到的结果是:
IP:ip-10-34-128-137.eu-west-1.compute.internal ------ ec2-46-51-131-172.eu-west-1.compute.amazonaws。 COM
这不是我所期待的 - 即使我试图访问10.34.128.137我只是得到一个超时错误。同时ping 46.51.131.172也会超时并试图访问ec2-46-51-131-172.eu-west-1.compute.amazonaws.com也带来了时间。
我知道你们中的大多数人会认为这很简单,但是在云计算中没有简单的方法可以从控制台识别你的应用程序的IP,然后按照他们的(通常是明确的建议)我完全迷失了。
拜托,我该怎么办?
非常感谢,
肯
答案 0 :(得分:0)
要调用以检索公共主机名的URL是
http://instance-data/latest/meta-data/public-hostname
不要附加您自己的主机名或其他任何内容。
答案 1 :(得分:0)
您通常不希望运行您的应用程序的服务器的IP地址 - 它位于路由器后面,它可以执行PaaS所做的各种精彩工作(群集,负载平衡,故障转移,加密等)
如果要为www.example.com
(或域顶点的A记录 - 例如example.com
)分配CNAME,则应将其分配给RUN控制台中显示的A记录。
如果您的应用是fred并且您的帐户是示例:
$ host fred.example.cloudbees.net
fred.example.cloudbees.net has address 75.101.143.131
然后分配
CNAME
反对fred.example.cloudbees.net
;或A
75.101.143.131
记录
有关配置中非常重要的更多信息,请参阅此文档: https://developer.cloudbees.com/bin/view/RUN/Custom+Application+Domains