【发布时间】:2021-10-18 03:29:16
【问题描述】:
我在使用 EB 时遇到了问题,希望能得到帮助。
我有一个使用 nginx 在端口 80 上路由 nextjs + 烧瓶流量的 HTTP 站点。该站点的本地版本运行良好,香草 Elastic Beanstalk 上传也是如此。设置和使用负载均衡器时会遇到问题。目前我正在使用“经典负载均衡器”,它连接到 Cloud Front 分配。发生的事情是响应标头没有传递回客户端。
标头应该是什么样子:[HTTP 上没有负载平衡器]
HTTP/1.1 400 Bad Request
Server: nginx/1.17.10
Date: Mon, 16 Aug 2021 01:10:02 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: state=; Max-Age=0; Path=/
Set-Cookie: _state=; Max-Age=0; Path=/
Set-Cookie: max_age=; Max-Age=0; Path=/
Set-Cookie: _max_age=; Max-Age=0; Path=/
Set-Cookie: code_verifier=; Max-Age=0; Path=/
Set-Cookie: _code_verifier=; Max-Age=0; Path=/
Set-Cookie: nonce=; Max-Age=0; Path=/
Set-Cookie: _nonce=; Max-Age=0; Path=/
它们的实际外观:[在 HTTP/HTTPS 上使用负载均衡器 + 云端]
HTTP/1.1 500 Internal Server Error
Transfer-Encoding: chunked
Connection: keep-alive
Server: nginx/1.17.10
Date: Mon, 16 Aug 2021 01:11:27 GMT
X-Cache: Error from cloudfront
Via: 1.1 71d15e4317f9ba4644f6c17f42ef94c9.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: MXP64-C2
X-Amz-Cf-Id: BYxDl-eFkhRPzAsPUxFv8gxOYT1jeDL6yoPjwqzZ2u4qcSS20B4ReQ==
我尝试通过 HTTP 访问 Cloud Front url,但标题仍然没有显示。弹性负载均衡器文档指出“如果您在应用程序 cookie 的 Set-Cookie 字段中有一个尾随分号,负载均衡器将忽略该 cookie”。上面的例子是否符合条件?如果是的话,有什么办法可以解决这个问题吗?
【问题讨论】:
-
我认为您在这里关注错误的部分。这两个请求给出了不同的响应代码,400 与 500(这可能也解释了不同的标头)。查看您的服务器日志,了解为什么它在从云端请求时返回 500。
-
尝试从响应头读取值时,由于出现空错误,因此返回 500 错误。
-
试图从响应中读取什么?
-
该请求是对 NextJS /api/auth/login 调用的代理传递,该调用尝试读取各种身份验证参数(在此特定实例中未能这样做)。
标签: amazon-web-services amazon-elastic-beanstalk amazon-elb aws-load-balancer