多语言展示
当前在线:1470今日阅读:26今日分享:39

uri too large怎么解决

URI Too Long表示客户端请求的URI(例如url)比服务器愿意解释的要长,因此服务器拒绝服务请求。通过简单地配置服务器(Apache或Nginx)可能更容易地解决问题,但不同场合也需要其他的方法。下面让我们看看如何解决这个问题。
工具/原料
1

Nginx

2

Apache

3

Http

4

浏览器

方法/步骤:Apache配置
1

Apache配置。您可以通过更改httpd.conf文件中的LimitRequestLine值来修改此限制。注意:如果使用了基于名称的虚拟主机(NameVirtualHost),LimitRequestLine指令放在默认(首先列出)的virtual host(VirtualHost部分)中。配置完以后重新启动服务器。

2

LimitRequestLine指令说明。LimitRequestLine是设置HTTP请求行(request line)将允许的字节数,也就是说LimitRequestLine指令允许服务器管理员设置客户端HTTP请求行的大小。请求行由HTTP方法,URI和协议版本组成。服务器需要这个值足以容纳其任何资源名称(uri),包括可能在GET请求的查询部分中传递的任何信息。该指令使服务器管理员能够更好地控制异常客户端请求行为,这可能有助于避免攻击。

方法/步骤2:Nginx配置
1

Nginx配置。首先,找到nginx.conf文件。它通常在/etc/nginx/nginx.conf中找到。然后,在该文件server or http and https部分添加以下内容:large_client_header_buffers 4 16k(这是示例大家可以根据需求去配置)

2

完成后,请确保保存配置文件并重新启动nginx。一些重启nginx的方法:①service nginx restart②/usr/sbin/nginx -c /etc/nginx/nginx.conf

方法/步骤3:其他方法
1

将GET请求更改为POST请求。请注意,如果您真的遇到这个限制,您不要滥用GET,您应该使用POST来传输这种数据 。如果您查看Apache官网关于LimitRequestLine说明时,您会注意到Apache甚至说“在正常情况下,该值不能从默认值更改”。因此我可以将GET请求更改为POST请求,就不必更改服务器配置了。

2

将URL地址缩减。将URL地址缩减到服务器可接收的大小。

3

requests分批。将requests分成批次(将请求分片并发送一批较小的请求),并通过AJAX同时发送,而不是发送一个巨大的请求。

推荐信息