如何为Nginx请求设置允许的URL长度(错误代码:414,uri太大)


Answers:


106

来自:http : //nginx.org/r/large_client_header_buffers

语法: 预设:内容 HTTP,伺服器large_client_header_buffers number size ;
large_client_header_buffers 4 8k;

设置用于读取大型客户端请求标头的最大值numbersize缓冲区。请求行不能超过一个缓冲区的大小,否则将向客户端返回414(请求URI太大)错误。请求标头字段也不能超过一个缓冲区的大小,否则将400(错误请求)错误返回给客户端。缓冲区仅按需分配。默认情况下,缓冲区大小等于8K字节。如果在请求处理结束后将连接转换为保持活动状态,则会释放这些缓冲区。

因此您需要将该行末尾的size参数更改为更大的值,以适合您的需求。


2
谢谢@VBart-当我回答这个问题时,Wiki是唯一的文档,所以我没有意识到他们添加了“官方”文档部分。
Stobor 2014年

嗨你应该加; 至语法large_client_header_buffers 4 4k / 8k的末尾;有一些像我这样的懒人复制贴,可以通过添加它们来节省时间...;)
talsibony

1
感谢@talsibony-这是7年前从文档中直接复制/粘贴的内容,看来他们从那时起就对其进行了更新。我会在这里更新...
Stobor '16

3
它解决了414错误,但现在nginx给出了502-错误的网关错误。
Sohel Pathan

我不确定哪个文件应该具有该配置,有人知道吗?
Guido

10

对于在https://forge.laravel.com上对此有疑问的任何人,我都设法使用一揽子SO答案使它起作用。

您将需要sudo密码。

sudo nano /etc/nginx/conf.d/uploads.conf

用以下内容替换内容;

fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;

client_max_body_size 24M;
client_body_buffer_size 128k;

client_header_buffer_size 5120k;
large_client_header_buffers 16 5120k;

通过forge创建新服务器时,该文件似乎不再存在,这意味着您可以通过forge管理面板将其直接添加到服务器块中。
卢克·斯诺登
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.