通过Cloudflare在AWS Lambda上部署SSR Nuxt.js吗?

时间:2019-05-02 11:36:59

标签: amazon-web-services vue.js nuxt.js cloudflare serverless-framework

我正在尝试通过nuxt.js在支持Cloudflare的AWS Lambda上实现一个vue.js服务器(少)侧渲染的webshop-a-like-site。

由于http / 3,图像优化功能,抵御攻击的安全性,brotli以及Cloudflare提供的现成功能,我更喜欢Cloudflare,而不是Cloudfront。

不幸的是,如果有人以前做过这件事,我找不到任何资源,要注意什么才能正常工作。

现在我的设置就像:

User -> Route53 -> AWS API Gateway -> AWS Lambda
 -> S3 (for static files)
 -> another AWS Lambda for dynamic data from Elasticsearch indexes

我不确定在哪里正确集成Cloudflare。

`我发现了有关以下内容的博客文章和主题:

  1. 使用Cloudflare Workers代替AWS API Gateway https://news.ycombinator.com/item?id=16747420
  2. 为Cloudfront提供的Lambda创建CNAME,但是我不确定这是否会触发另一次Cloudfront往返和额外费用? https://forums.aws.amazon.com/thread.jspa?threadID=261297
  3. 将子域连接到API网关 https://medium.com/@bobthomas295/combining-aws-serverless-with-cloudflare-sub-domains-338a1b7b2bd
  4. 另一种解决方案可能是直接在Cloudflare Worker中构建nuxt.js,但由于Pro Plan中的CPU时间非常有限,我不确定该解决方案有何缺点? `

此外,我已经阅读了一篇有关仅允许Cloudflare IP保护API-Gateway免受攻击者攻击的文章。

你们中有人已经使用Cloudflare设置了Vue + Nuxt吗?愿意接受任何其他建议或想法。

非常感谢! 菲利普

1 个答案:

答案 0 :(得分:1)

  

我不确定在哪里正确集成Cloudflare。

假设这是问题的症结所在,那么使用您提供的表示法可能就是这样。

User -> Route53 -> Cloudflare -> AWS API Gateway -> AWS Lambda -> S3 -> Another lambda

基本思想是,您希望Cloudflare成为DNS(Route53)解析的第一件事,以便可以在 到达应用程序之前正确地提供缓存的内容。在这种情况下,将从API网关开始。