Apache 将运行在CloudFoundry VM上的应用程序公开到Internet
如果这个问题已经在其他地方被问到,我很抱歉,但我已经为此挣扎了好几天了 我正在尝试在私有服务器上设置CloudFoundry虚拟机。CloudFoundry实例运行良好,我的测试REST服务部署在路径Apache 将运行在CloudFoundry VM上的应用程序公开到Internet,apache,cloud-foundry,mod-proxy,Apache,Cloud Foundry,Mod Proxy,如果这个问题已经在其他地方被问到,我很抱歉,但我已经为此挣扎了好几天了 我正在尝试在私有服务器上设置CloudFoundry虚拟机。CloudFoundry实例运行良好,我的测试REST服务部署在路径REST上 使用ssh连接时,使用curl进行的以下测试与预期一样有效: curl rest.10.244.0.34.xip.io 我试图在私有服务器上设置apache配置,以便将部署在CloudFoundry VM上的应用程序公开给internet 我创建了一个DNS条目,如cloud.MY_P
REST
上
使用ssh连接时,使用curl进行的以下测试与预期一样有效:
curl rest.10.244.0.34.xip.io
我试图在私有服务器上设置apache配置,以便将部署在CloudFoundry VM上的应用程序公开给internet
我创建了一个DNS条目,如cloud.MY_PUBLIC_IP
和*.cloud.MY_PUBLIC_IP
引用MY_PUBLIC_IP
,并希望能够使用以下两个URL之一访问部署在CloudFoundry VM上的应用程序:
application route.cloud.MY\u PUBLIC\u IP
cloud.MY\u PUBLIC\u IP/应用程序路由
vhost
或proxy
是否可以做到这一点。
到目前为止,我创建了以下vhost配置:
<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>
ServerName cloud.MY\u PUBLIC\u NAME.ch
ProxyPass/http://10.244.0.34.xip.io/
ProxyPassReverse/http://10.244.0.34.xip.io/
代理请求关闭
重新启动发动机
RewriteCond%{HTTP\u HOST}^cloud\.MY\u PUBLIC\u NAME\.ch$[NC]
重写规则^/([^/]+)/(.*)$http://$1.10.244.0.34.xip.io/$2[P,L]
cloud.MY_PUBLIC_IP
确实将我重定向到10.244.0.34.xip.io
,但我无法访问任何已部署的应用程序
非常感谢您的帮助。您不必将代理服务器反向转到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>
域的输出应如下所示:
$ 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
我这里没有完整的答案,但一般来说,CF安装的流量如下:浏览器->HTTP(S)->LB->HTTP->gorouter(S)->应用程序。重要的部分是a.)流量来自用户到负载均衡器b.)负载均衡器在需要时终止SSL,c.)负载均衡器转发到可能多个go路由器实例中的一个。您应该知道gorouter实例的IP地址,因为您在CF安装期间设置了它们。在您的情况下,如果HTTPD是负载平衡器,那么您需要设置ProxyPass以指向您的服务器。具体配置可能会有所不同。
$ cf routes
Getting routes as admin ...
host domain apps
app cloud.myname.ch app