在单独的服务器上托管特定站点路径



要解决的问题的最小示例

我目前 examplesite.com 托管在带有 apache2.4 的 ec2 实例上

examplesite.com 上的路径/支持是一个WordPress网站,供非开发团队管理和与客户互动。出于安全原因,我想在应用程序的其余部分的单独服务器上托管/support,作为需要进行的许多更改的一部分。

登录必须在主站点和/support 之间保留,因为用户必须登录才能访问/support,否则他们将被重定向回 examplesite.com/login。这意味着必须共享 Cookie,会话与会话生存期、上次修改日期和其他数据一起存储在数据库中。

到目前为止我做了什么

  • 为支持站点启动并设置一个 ec2 实例,其中包含所有必需的 SSL 证书以及弹性 IP 和域。支持和主站点的代码库是相同的。
  • 主实例和新实例共享一个域,一个具有子域"app",而另一个具有子域"支持">
  • 已尝试设置正向和反向代理(来自非生产环境的测试环境(以将新的 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。

最新更新