next.js 请求标头部分太大:您的请求标头部分超出了允许的最大大小

e0bqpujr  于 2022-11-05  发布在  其他
关注(0)|答案(3)|浏览(226)

我们正在为我们的NextJS Web应用程序使用AWS Amplify,一旦部署到Amplify,当我试图加载应用程序时,总是收到错误。本地没有问题。

我正在使用Amplify的默认认证配置,基本的电子邮件和密码认证。看起来可能与标头中设置的Amplify cookie有关,但我在AWS中找不到任何文档来防止这种情况或减少标头中传递的信息量。如有任何帮助,将不胜感激。

wbrvyc0a

wbrvyc0a1#

我也遇到过同样的问题,并且能够解决它。下面是我的解决方法--
1.识别应用程序的CloudFront分发ID。您可以在应用程序构建控制台的部署日志中找到它。

1.搜索并打开特定的CF分布,然后转到行为选项卡。
1.选择默认行为(在我的情况下是第5个),然后点击编辑。

1.向下滚动到缓存关键字和原始请求部分。在这里你会找到控制发送到服务器的请求的标题中包含什么的设置。在我的例子中,我不需要任何Cookie,所以我选择了,它为我解决了这个问题。在你的例子中,你可以做同样的事情,或者选择所有信息需要在标题中。

b0zn9rqh

b0zn9rqh2#

检查该域是否有任何不必要的Cookie。
我收到了这个错误(在一个我不拥有的网站上)。我看了一下请求标题,发现网站的域有大量的cookie(几十个)。我清理了看起来不重要的cookie,错误就消失了。
正如该错误所暗示的,整个请求头部分的大小超过了8192字节。请求头包含接受头、用户代理、Cookie等等。所有的组合可以得到相当大。大的标题看起来恶意的一些WAFs。我曾经有一个单一的用户有麻烦与我们的网站。原来他们是一个多语种的人,并将他们的浏览器配置为接受几十种语言,导致他们的接受语言头长得令人怀疑,WAF拒绝代理请求。

anhgbhbe

anhgbhbe3#

我在使用Nextjs、amplify和外部Auth提供程序时也遇到了同样的问题。
问题是AWS S3服务的请求头最大允许大小为8192字节,因此当您尝试访问Nextjs的静态生成页面时,它会返回该错误。
在我的例子中,我使用了一个外部Auth提供程序,我能够解决只为'/api/'路径配置cookie的问题。这样,Auth cookie只被发送到Nextjs api端点,所以当你试图获取静态页面时,你的请求头会更轻。

相关问题