Sam*_*fee 4 wordpress amazon-cloudfront elastic-beanstalk
我们有一个由 Elastic Beanstalk (AWS) 提供服务的网站,它运行良好。我们使用内置负载均衡器通过 HTTPS 等方式为我们的站点提供服务。我们的数据库通过 RDS 服务进行分离,而不是与我们的 Web 服务器位于同一 EC2 实例上。到目前为止,我们对设置很满意。
现在,我们想在我们网站域(不是单独的或子域,出于 SEO 原因)的“/blog”下建立一个 WordPress 博客。我们的站点是一个定制的 PHP 应用程序(使用 Laravel 框架),我宁愿不在同一个地方同时托管 WP 应用程序和我们的站点。
我相信我们可以使用 CloudFront(亚马逊的 CDN)只为我们网站的 /blog 部分提供服务,并将这些请求路由到不同 EC2 实例上的单独 WP 安装。我已经使用 CloudFront 来做常规的 CDN 类型的东西(静态资产),但我对如何设置这种特殊类型的配置有点迷茫。
首先,这是一个疯狂的想法,还是听起来不错?其次,如果它是合理的,我需要知道什么来设置它?
是的,如果您将整个站点设置为在 CloudFront 后面运行,则可以。然后,您可以为站点配置默认的后端源服务,并创建一个例外,为 /blog 采取不同的路径。
配置新的 CloudFront 分配。使用主站点的 ELB 或 EB 主机名作为来源。在 CloudFront 中将站点的域名配置为备用域名。
接下来,添加第二个源,目标是可以到达 WP 部署的主机名。创建具有匹配并使用第二个原点的路径模式的行为/blog*。
(如果 /blog* 匹配站点根目录中的任何其他内容...不太可能,但假设您在根目录中有另一个名为 /blogosphere 的页面,这将不正确匹配,因此您实际上需要创建两个模式,/博客和/博客/*)。
问题:请注意,在创建原点时,原点路径有一个框。 这可能不会达到您的预期。如果不确定,请将其留空。
源路径是一个前缀,您希望 Cloudfront 将其添加到它发送到源的请求之前,即使它在 URL 中不可见。因此,如果您将其设置为 /test 并且来自浏览器的请求是针对 /blog 的,那么后端服务器将看到针对 /test/blog 的请求。
Origin path 允许您在将要请求的路径之前添加,否则传入的路径将按照从浏览器接收的方式发送。这意味着在您的 WP 安装中,/blog当您直接连接到 WP 服务器时,内容的根目录需要位于,而不是/. CloudFront 当前不提供任何从路径中删除组件的机制。
还请记住,将查询字符串和 cookie 转发到 WordPress 后端,以便 WordPress 根据需要工作所需的任何程度。当然,您的主站点也是如此。
如果您的服务器需要,您可能需要将标头列入白名单Host:。可能还有其他人,取决于服务器需要查看哪些标头,但通常,您转发的标头越多,CloudFront 可以执行的缓存就越少,因为如果它将标头转发到源,它必须假设任何后续请求标头变化可能会从服务器收到不同的响应,因此除非所有转发的标头匹配,否则无法从缓存中提供请求。
最终,在配置和测试之后,您将您的主机名指向 CloudFront 终端节点,然后您就可以上线了。
| 归档时间: |
|
| 查看次数: |
3369 次 |
| 最近记录: |