3

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

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

我们使用的是 PHP 7.1.20 和 Laravel 5.4 版本。

4

2 回答 2

5

我认为您误解了将 CloudFront 用作 CDN 或任何 CDN 的用途。

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

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

于 2019-03-26T06:40:37.653 回答
0

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

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

重新阅读您的问题后,您似乎已经设置了自定义来源,并且您可能只是没有转发 XSRF-TOKEN。如果 Laravel 以 419 响应,则很可能是这种情况。尝试将该令牌和会话令牌列入白名单。

于 2019-08-23T19:14:07.507 回答