【发布时间】:2020-07-25 21:05:36
【问题描述】:
我需要一个项目由两部分组成,用例似乎比较典型:
- 一个 AWS Amplify react 项目,它有一些 API 端点和一个用 react 编写的漂亮仪表板。
- 一个带有博客的 wordpress 网站,由技术不高的人维护。
这种分离的原因是公司的所有者熟悉 wordpress,并希望管理 SEO 以及定期撰写博客文章。公司的主要目的(SaaS)是放大项目。所有者很可能会在 wordpress 网站上安装大量插件,并很可能导致其宕机,在这种情况下,amplify 项目必须保持正常运行。
理想情况下:
-
example.com-> WordPress -
example.com/portal-> 放大项目。
N.b 我想使用子目录而不是新的子域,因为有人告诉我这有助于 SEO,因为它们将共享相同的页面排名。博客的目的主要是为了 SEO 和吸引人们访问网站。
我的考虑:
设置一个 wordpress 站点,托管在 Apache 服务器上(可能使用 AWS lightail,bitnami 之一),并在该 Apache 服务器上设置反向代理以指向放大项目。
我认为这种方法会导致的问题:
- 可以从 2 个 URL 访问放大项目。放大应用程序直接和通过
example.com/portal;如何阻止它通过放大 URL 向全世界提供并且只能通过反向代理 (example.com/portal) 提供?。 - 如果 apache 服务器出现故障,则无法再访问 amplify 应用程序。 amplify 项目现在依赖于单个 EC2(或潜在的 Auto Scaling 组,但这意味着添加负载均衡器和更高的成本)。
- Amplify 将 Cloudfront 用作 CDN,通过代理将其全部路由,我们基本上失去了给我们带来的好处。
其他选项:将放大放在顶部
让 amplify 使用它的反向代理功能将请求发送到托管在其他地方的 wordpress 页面。这样,如果 wordpress 出现故障,amplify 将继续存在。我在这里担心的是:
- 可以从 2 个 URL 访问 Wordpress - 如何将其限制为仅允许反向代理 (example.com) 的 URL?
- 我需要弄清楚如何让 amplify 在不是域根目录的 URL 上运行,例如“example.com/service”,并且需要获取域的根目录才能访问反向代理。
对于其他人来说,理想的答案是什么:
- 您会选择以下哪个选项(或其他选项),这可能有助于在保持 AWS Amplify 相同级别的弹性的同时最大限度地降低成本,为什么?请尝试以可能对其他人遵循的典型设置有用的方式回答。
【问题讨论】:
-
您可以在选项之间进行选择吗?
标签: wordpress amazon-web-services reverse-proxy aws-amplify