首页 > 解决方案 > 如何更改 Pivotal Cloud Foundry Web 应用程序的 URL

问题描述

我刚刚将 Spring Boot / VueJS 应用程序推送到 Pivotal Cloud Foundry 并且想知道如何更改网站的 URL?

当我推送应用程序时,他们给了我一个http://crdeckhelper.cfapps.io/的 URL

我去godaddy买了一个crwardecks.com的域名

如何让我的应用程序在 crwardecks.com 上运行?

我目前让 Godaddy 将该人重新路由到 Cloud Foundry 为我生成的 URL,但这不是我想要的行为。

我已经阅读了关于 Pivotal 的文档,但由于某种原因它让我感到困惑。我也在网上搜索过这个,但找不到好的资源。

标签: httpdnscloud-foundry

解决方案


你需要做几件事。

  1. 将您的域添加到 Cloud Foundry。运行cf create-domain

    https://docs.run.pivotal.io/devguide/deploy-apps/routes-domains.html#private-domains

  2. 将此域下的路由映射到您的应用程序。运行cf map-route <app> <domain> ...

    https://docs.run.pivotal.io/devguide/deploy-apps/routes-domains.html#map-route

此时,您将在 CF 中设置域和路由,但没有向 CF 发送流量。

要将流量发送到您的 CF,您需要在 DNS 记录中进行调整。同样,有几个选择。

  1. 您可以通过创建一条从您的自定义域指向 CF 分配的域的 CNAME 记录,将仅一个子域的流量路由到应用程序。例如:CNAME: www.example.com -> crdeckhelper.cfapps.io

  2. 您可以使用通配符路由所有子域的流量。我们再次使用 CNAME 记录,但这次我们使用通配符。例如:(CNAME: *.example.com -> *.cfapps.io或者您可以使用一些子域,例如 *.sub.cfapps.io)。

两者都在这里进行了更多描述。此外,cfapps.io它也是 Pivotal Web 服务的一部分。如果您使用不同的提供商,那么您的共享域将会不同。

此时,您应该将流量路由到 CF 并且 CF 应该将流量路由到您的特定应用程序。您已完成并且您可以停止阅读,除非您尝试将根域映射到您的应用程序。

根域有一个边缘案例(即example.com,不是www.example.com),因为 DNS CNAME 记录不适用于根域。一些 DNS 提供商支持 ALIAS 或 ANAME 记录,它们的工作方式类似于根域的 CNAME 记录。如果您的提供商这样做,您可以试一试(有关如何使用的说明,请参阅您的 DNS 提供商的文档)。如果没有,请查看您的提供商是否支持 URL 转发。许多 DNS 提供商会自动将根域上的 HTTP 流量重定向到您指定的子域,例如example.com -> HTTP 302 -> www.example.com.

有关根域设置的更多信息,请参阅Configuring DNS for Your Registered Root Domain以下链接。

https://docs.run.pivotal.io/devguide/deploy-apps/routes-domains.html#domains-dns

作为最后的手段,您可以使用 A 记录,但您需要非常小心,因为您的 CF 提供商可能没有静态公共 IP,而是他们的 IP 可以更改。如果您使用 A 记录并且您的提供商的 IP 发生更改,流量将停止流向您的应用程序,您需要更新您的 A 记录以指向他们的新 IP(您可以通过运行dig <app-dns>或获取您的提供商的 IP nslookup <app-dns>。如果您这样做路由,请确保您有监控,以便在 IP 更改时快速捕捉到。

希望有帮助!


推荐阅读