我们已经开发了运行良好的Laravel应用程序。一旦启用CDN(Amazon Cloudfront),它就会停止处理所有表单。无论在何处提交表单表单,例如“登录”,“与我们联系”等,都无法正常工作。
我们已经确定需要对Laravel应用程序进行一些更改,我们正在寻求一些成功使用CDN配置Laravel应用程序的专家的帮助。
我们正在使用PHP 7.1.20和Laravel 5.4版本。
答案 0 :(得分:1)
您可以使用https://github.com/publiux/laravelcdn
Require publiux/laravelcdn in your project:
composer require "publiux/laravelcdn:~2.0"
答案 1 :(得分:1)
我认为您误解了将CloudFront用作CDN或与此相关的任何CDN。
您不会将其放在整个网站的前面-它不会为您的网站提供服务。它充当您的静态资产的缓存:您的媒体,样式表和脚本。其他所有内容仍然可以直接从您的PHP应用程序中获得。
您可以为应用程序设置ASSET_URL
环境变量,当您使用asset()
或mix()
助手时,Laravel将使用它来指向您的资产。
答案 2 :(得分: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响应,则很可能是这种情况。尝试将该令牌和会话令牌也列入白名单。