在CloudBees上查找应用程序的IP地址

时间:2013-09-09 06:36:19

标签: ip-address cloudbees

我遵循了这里的建议:

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,然后按照他们的(通常是明确的建议)我完全迷失了。

拜托,我该怎么办?

非常感谢,

2 个答案:

答案 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