首页 > 解决方案 > 使用 Pivotal Cloud Foundry 将用户重定向到另一个 URL

问题描述

有没有办法将传入的 URL 重定向到另一个 URL?

EX - 当用户点击https://www.website1.com时,用户应该被重定向到https://www.website2.com

标签: cloud-foundry

解决方案


CloudFoundry 本身不提供在请求到达应用程序之前重定向任意请求的方法(即在 Gorouter 层)。

不过,您有一些选择:

  1. 在负载均衡器上执行重定向。如果您需要尽早重定向请求,那么在负载均衡器上执行此操作将是最早的地方。例如,如果您想将所有请求从 HTTP 重定向到 HTTPS,这很有用。它确实假设您的负载均衡器将允许这样做,但并非所有人都这样做。

  2. 您可以从应用程序重定向。因此,在您的示例中,您已将路由www.website1.com映射到的应用程序将监听并发出重定向响应以向www.website2.com发送请求。

    这个应用程序可以像nginx.conf使用Nginx Buildpack推送一样简单,或者您可以开发一个自定义应用程序来发出重定向。这样做的好处是您可以将任意数量的路由(包括通配符)映射到应用程序,并且正确配置的单个 Nginx 服务器可以为所有路由发出重定向。如果您将许多单独的 URL 重定向到一个中心 URL,这很有效。

    如果您在www.website1.com上有一个现有应用程序并且无法将其替换为 Nginx 应用程序来执行重定向,您可以修改您的自定义应用程序以执行重定向。您不必使用 Nginx,它只是一种方便且开销非常低的重定向方式。

  3. 您可以使用路线服务。路由服务能够过滤请求,因此您可以使用一个来拦截请求并为某些路由/域发出重定向。

    如果您有复杂的路由逻辑,或者如果您有许多需要应用该逻辑的应用程序,则路由服务可能会有意义。原因是路由服务需要自定义应用程序作为路由服务。因此,如果您有一个应用程序并且您试图将对该应用程序的请求重定向到其他地方,那么将第二个应用程序添加到组合中只是为了执行一些重定向是没有意义的。现在,如果您有 500 个应用程序并且它们都需要某种重定向逻辑,那么使用路由服务可能更有意义。


推荐阅读