1

我刚刚使用 Vapor 部署了一个 Laravel 应用程序,并收到以下消息。我不相信我改变了任何东西(一些 html 刀片行)。

缓存 Laravel 配置{"message":"传递给 Symfony\Component\HttpKernel\Exception\HttpException::__construct() 的参数 1 必须是 int 类型,给定字符串,在 /var/task/vendor/laravel/framework/ 中调用src/Illuminate/Foundation/Application.php 在第 1014 行","context":{"exception":{"class":"Symfony\Component\Debug\Exception\FatalThrowableError","message":"参数 1 传递给 Symfony \Component\HttpKernel\Exception\HttpException::__construct() 必须是 int 类型,给定字符串,在 /var/task/vendor/laravel/framework/src/Illuminate/Foundation/Application.php 第 1014 行调用", "code":0,"file":"/var/task/vendor/symfony/http-kernel/Exception/HttpException.php:24"},"aws_request_id":null},"level":400,"level_name":"ERROR","channel":"production","datetime":"2019-09-27T13:18:45.338555+00:00","extra":{}}

该网站现在只显示{"message": "Internal server error"}

我是这样做的,还是这是 Laravel/Vapor 的错误?

4

1 回答 1

1

当您使用 gateway_version 2 时会发生这种情况。根据蒸汽文档,您需要使用 Cloudflare 等外部 DNS 进行 HTTPS 重定向。https://docs.vapor.build/1.0/projects/environments.html#gateway-versions

如果您选择使用 API Gateway 2.0 并希望支持 HTTP 到 HTTPS 的重定向,我们目前建议使用 Cloudflare 作为您的 Vapor 应用程序的外部 DNS 提供程序。Cloudflare 不仅提供 DNS,还充当应用程序的反向代理,并提供自动 HTTP 到 HTTPS 重定向的选项。

完成 Vapor 部署后,Vapor 将为您提供与您的环境关联的域的 CNAME 记录。这些记录会将域指向您的 Lambda 应用程序。您应该在 Cloudflare DNS 仪表板中手动将这些值添加为 CNAME 记录。

此外,在使用 Cloudflare 时,您应该将 Cloudflare SSL / TLS 模式设置为“完整”。“始终使用 HTTPS”配置选项可以在 SSL / TLS 菜单的“边缘证书”选项卡下找到。

一个简单的解决方案是使用网关版本 1。

于 2020-09-26T07:55:19.710 回答