80

我在 10 个杂种面前使用 Nginx。

当我提出大小大于 2900 的请求时,我得到一个:

错误代码 414:uri 太大

有谁知道 nginx 配置文件中确定允许的 uri 长度的设置?

4

3 回答 3

118

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

语法: 默认值:上下文: http,服务器large_client_header_buffers number size ;
large_client_header_buffers 4 8k;

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

因此,您需要将该行末尾的 size 参数更改为更大以满足您的需要。

于 2009-07-01T05:46:45.603 回答
13

对于在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;
于 2019-01-18T16:12:32.650 回答
0

我有非常相似的问题,但有不同的错误

上游从上游读取响应标头时发送了太大的标头

为了解决它,我改变了

server {
....
proxy_buffers   4 32k;
proxy_buffer_size   32k;
...
}

有关更多信息,您可以访问nginx-doc

于 2022-02-23T13:30:19.940 回答