在单独的服务器上托管特定站点路径
Hosting a specific site path on a seperate server
要解决的问题的最小示例:
我 examplesite.com 目前托管在一个带有 apache2.4 的 ec2 实例上
examplesite.com 上的路径 /support 是供非开发团队管理客户并与客户互动的 wordpress 站点。出于安全原因,我想在单独的服务器上托管 /support 到应用程序的其余部分,作为需要进行的许多更改的一部分。
登录必须在主站点和 /support 之间保持不变,因为用户必须登录才能访问 /support,否则他们将被重定向回 examplesite。com/login。这意味着 cookie 必须共享,会话与会话生命周期、最后修改日期和其他数据一起存储在数据库中。
到目前为止我做了什么:
- 为支持站点启动并设置一个 ec2 实例,其中包含所有需要的 ssl 证书以及弹性 ip 和域。支持和主站点的代码库相同。
- 主实例和新实例共享一个域,一个有子域'app',另一个有子域'support'
- 尝试设置正向和反向代理(来自非生产环境的测试环境)以将新的 ec2 实例用于 /support。但是我一直得到
pass request body failed to {ip}
。我找不到解决方案,但我可能会重新尝试,或者有第三台服务器充当主站点和 /support 托管部分的代理(尽管我宁愿避免维护额外的服务器)。
- 在 htaccess 中设置重定向,以便支持 ec2 实例上的所有非 /support 路径都被重定向回来,主应用程序上的所有 /support 路径都被重定向到支持 ec2 实例。但是,这并不能解决持续存在的登录问题。虽然它可用于阻止用户在支持 ec2 实例上访问非 /support 路径。
aws 负载平衡是一个潜在的解决方案吗?我可以使用哪些其他解决方案?有谁知道我之前尝试的死胡同的任何解决方案?
谢谢
我最终通过在 aws 上设置应用程序负载均衡器解决了这个问题。我有 2 个负载平衡目标组,一个仅包含主站点,另一个仅包含支持服务器。在创建这些并设置目标/ssl 证书等之后,我选择了我创建的负载均衡器,转到侦听器,然后使用提供的 aws 工具编辑它们以将匹配 /support* 的任何路径转发到支持服务器,其余的默认情况下转到 webapp。如您所料,我对端口 80 和 443 都执行了此操作。剩下的就是将域从主应用程序服务器交换到负载均衡器 ip。
要解决的问题的最小示例:
我 examplesite.com 目前托管在一个带有 apache2.4 的 ec2 实例上
examplesite.com 上的路径 /support 是供非开发团队管理客户并与客户互动的 wordpress 站点。出于安全原因,我想在单独的服务器上托管 /support 到应用程序的其余部分,作为需要进行的许多更改的一部分。
登录必须在主站点和 /support 之间保持不变,因为用户必须登录才能访问 /support,否则他们将被重定向回 examplesite。com/login。这意味着 cookie 必须共享,会话与会话生命周期、最后修改日期和其他数据一起存储在数据库中。
到目前为止我做了什么:
- 为支持站点启动并设置一个 ec2 实例,其中包含所有需要的 ssl 证书以及弹性 ip 和域。支持和主站点的代码库相同。
- 主实例和新实例共享一个域,一个有子域'app',另一个有子域'support'
- 尝试设置正向和反向代理(来自非生产环境的测试环境)以将新的 ec2 实例用于 /support。但是我一直得到
pass request body failed to {ip}
。我找不到解决方案,但我可能会重新尝试,或者有第三台服务器充当主站点和 /support 托管部分的代理(尽管我宁愿避免维护额外的服务器)。 - 在 htaccess 中设置重定向,以便支持 ec2 实例上的所有非 /support 路径都被重定向回来,主应用程序上的所有 /support 路径都被重定向到支持 ec2 实例。但是,这并不能解决持续存在的登录问题。虽然它可用于阻止用户在支持 ec2 实例上访问非 /support 路径。
aws 负载平衡是一个潜在的解决方案吗?我可以使用哪些其他解决方案?有谁知道我之前尝试的死胡同的任何解决方案?
谢谢
我最终通过在 aws 上设置应用程序负载均衡器解决了这个问题。我有 2 个负载平衡目标组,一个仅包含主站点,另一个仅包含支持服务器。在创建这些并设置目标/ssl 证书等之后,我选择了我创建的负载均衡器,转到侦听器,然后使用提供的 aws 工具编辑它们以将匹配 /support* 的任何路径转发到支持服务器,其余的默认情况下转到 webapp。如您所料,我对端口 80 和 443 都执行了此操作。剩下的就是将域从主应用程序服务器交换到负载均衡器 ip。