【问题标题】:Expose Applications running on a CloudFoundry VM to the Internet将在 CloudFoundry VM 上运行的应用程序公开到 Internet
【发布时间】:2015-03-22 20:22:54
【问题描述】:

如果这个问题已经在其他地方被问过,我很抱歉,但我已经为此苦苦挣扎了好几天。

我正在尝试在私有服务器上设置 CloudFoundry 虚拟机。 Cloud Foundry 实例运行良好,我的测试 REST 服务部署在路由 rest 上。

使用 ssh 进行连接时,以下使用 curl 的测试按预期工作:

curl rest.10.244.0.34.xip.io

我正在尝试在私有服务器上设置 apache 配置,以便将部署在 CloudFoundry VM 上的应用程序公开到互联网。

我创建了一个 DNS 条目,例如 cloud.MY_PUBLIC_IP*.cloud.MY_PUBLIC_IP,同时引用 MY_PUBLIC_IP,并希望能够使用以下两个 URL 之一访问部署在 CloudFoundry VM 上的应用程序:

  • application-route.cloud.MY_PUBLIC_IP
  • cloud.MY_PUBLIC_IP/application-route

防火墙已禁用。

我不确定使用 apache vhostproxy 是否可行。 到目前为止,我创建了以下虚拟主机配置:

<VirtualHost *:80>
 ServerName cloud.MY_PUBLIC_NAME.ch
 ProxyPass         /  http://10.244.0.34.xip.io/
 ProxyPassReverse  /  http://10.244.0.34.xip.io/
 ProxyRequests     Off

 RewriteEngine On
 RewriteCond %{HTTP_HOST} ^cloud\.MY_PUBLIC_NAME\.ch$  [NC]
 RewriteRule ^/([^/]+)/(.*)$ http://$1.10.244.0.34.xip.io/$2  [P,L]

</VirtualHost>

cloud.MY_PUBLIC_IP 确实将我重定向到10.244.0.34.xip.io,但我无法访问任何已部署的应用程序...

非常感谢您的任何帮助。

【问题讨论】:

  • 我在这里没有完整的答案,但通常到您的 CF 安装的流量是这样的:浏览器 -> HTTP(S) -> LB -> HTTP -> gorouter(s) - > 应用程序。重要的部分是 a.) 流量来自用户到负载均衡器 b.) 负载均衡器在需要时终止 SSL 和 c.) 负载均衡器转发到可能的许多 go 路由器实例之一。您应该知道 gorouter 实例的 IP 地址,因为您在 CF 安装期间设置了它们。在您的情况下,如果 HTTPD 是您想要设置 ProxyPass 以指向您的 gorouter 的负载均衡器。确切的配置可能会有所不同。

标签: apache cloud-foundry mod-proxy


【解决方案1】:

您不必反向代理到 xip.io 自定义 dns 服务器。

直接反向代理到 10.244.0.34,这是 CloudFoundry 代理的默认 ip。

然后,此代理将根据路由检查访问它的域名,并相应地重定向请求。

您的 Apache 配置应如下所示:

<VirtualHost *:80>
    ServerName cloud.myname.ch
    ServerAlias *.cloud.myname.ch

    ProxyPreserveHost On

    <Location />
        ProxyPass http://10.244.0.34/
        ProxyPassReverse http://10.244.0.34/
        Order allow,deny
        Allow from all
    </Location>

</VirtualHost>

然后使用 CloudFoundry CLI,使用以下命令创建域和路由:

$ cf create-domain ORG DOMAIN
$ cf create-route SPACE DOMAIN [-n HOSTNAME]

域的输出应如下所示:

$ cf domains
Getting domains in org org-name as admin...
name                 status   
10.244.0.34.xip.io   shared   
myname.ch             owned   
cloud.myname.ch       owned 

路线也是这样:

$ cf routes
Getting routes as admin ...

host                domain            apps   
app                 cloud.myname.ch   app  

那么您应该可以通过http://app.cloud.myname.ch 访问您的应用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-16
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 2014-01-23
    • 1970-01-01
    相关资源
    最近更新 更多