如何为 Laravel 应用程序设置 Cloudfront CDN?

How do I setup Cloudfront CDN for Laravel application?

我们开发了一个 Laravel 应用程序,它运行良好。一旦我们启用了 CDN(Amazon Cloudfront),它就停止了所有形式的工作。只要有登录、联系我们等表单提交,它根本不起作用。

我们已经确定我们必须对 Laravel 应用程序进行一些更改,我们正在寻求一些成功配置 Laravel 应用程序与 CDN 的专家的帮助。

我们正在使用 PHP 7.1.20 和 Laravel 5.4 版本。

我认为您误解了将 CloudFront 用作 CDN 或与此相关的任何 CDN。

您不要将它放在整个网站的前面 - 它不会为您的网站提供服务。它充当您的静态资产的缓存:您的媒体、样式表和脚本。其他所有内容仍直接从您的 PHP 应用程序提供。

您可以为您的应用程序设置 ASSET_URL 环境变量,当您使用 asset()mix() 助手时,Laravel 将使用它指向您的资产。

您可以将 Cloudfront 分配设置为服务 2 个来源。一个是 S3 存储桶中的静态资产,而另一个来源是处理 Laravel 应用程序的 ELB 或 EC2。为此,您必须转发正确的 cookie,headers,并允许所需的方法到您的 Laravel 来源。

看起来像这样https://aws.amazon.com/blogs/aws/amazon-cloudfront-support-for-custom-origins/

在 re-reading 你的问题之后,你似乎已经设置了自定义来源,可能你只是没有转发 XSRF-TOKEN。如果 Laravel 以 419 响应,则很可能是这种情况。尝试将该令牌和 session 令牌列入白名单。