服务器技术

 首页 > 服务器技术 > apache > Apache中Cookie长度的设置|限制-Apache教程

Apache中Cookie长度的设置|限制-Apache教程

分享到:
【字体:
导读:
          ...

今天在调试Ucenter的同步登陆和同步登出的过程中,浏览器突然出现以下错误提示:
Your browser sent a request that this server could not understand.
Size of a request header field exceeds server limit.

开始是以为P3P协议设置cookie的问题,查阅了P3P的文档,没有相关的条目。经过不懈的搜索,终于发现原来是apache中资源使用限制的设置问题。

技术背景:
Apache中“资源使用限制”就是要限制用户对网站特定资源(如目录、服务器硬件等)的访问。相关指令包括:LimitRequestBody、LimitRequestFields、LimitRequestFieldSize、LimitRequestLine、RLimitCPU、RLimitMEM、RLimitNPROC和ThreadStackSize。LimitRequest*系列指令用来限制Apache在读取客户端请求的过程中使用的资源数量。通过限制这些值,可以减轻某些拒绝服务(DOS)攻击;RLimit*系列指令限制被Apache子进程所派生的进程使用的资源数量,通常这些指令用来控制CGI脚本和SSI exec命令所使用的资源;ThreadStackSize指令在某些平台上用来控制堆栈大小。

 

LimitRequestLine
LimitRequestLine指令用来限制接收客户端发送的HTTP请求行的字节数,允许服务器管理员增加或减少客户端HTTP请求行允许大小的限制。因为请求行包括HTTP方法、URI、协议版本,所以LimitRequestLine指令会限制请求URI的长度。服务器会需要这个值足够大以装载它所有的资源名,包括可能在GET请求中所传递的查询部分的所有信息。

LimitRequestFieldSize
LimitRequestFieldSize指令用来限制客户端发送的请求头的字节数,允许服务器管理员增加,或减少HTTP请求头域大小的限制。一般来说,服务器需要此值足够大,以适应普通客户端的任何请求的头域大小。一个普通头域的大小对于不同的客户端来说是有很大差别的,一般与用户配置他们的浏览器以支持更多的内容协议密切相关。

LimitRequestLine和LimitRequestFieldSize指令给了服务器管理员更大的可控性,以控制客户端不正常的请求行为。这有助于避免某些形式的拒绝服务攻击。默认值为“8190”。

解决
在Apache的httpd.conf配置文件中
LimitRequestLine 40940
LimitRequestFieldSize 40940
问题解决。

或者清除下本机中本域的Cookie也行。


《Apache中Cookie长度的设置》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Server/Apache/18054.html
分享到:
apache和IIS共用80端口|LoadModule-Apach...
将apache设为使用80端口,IIS使用其它端口,比如81,然后将apache作为IIS的代理。 在httpd.conf里面,取消下面四行的注释: LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_ftp_mo...
谈谈Apache的优化|进程-Apache教程
今天说说apache的优化。为什么要优化?因为服务器资源不够用。资源有很多方面,但根据木桶理论,只要有一种资源不够用,整个服务器的性能就会受到影响(所谓瓶颈)。 服务器资源 那么服务器的资源包括哪些?对于网站来说主要是CPU、TCP连接数这两者。 CPU表现在任务数上,在linux下使用平均负载(loadavg)来衡量。可通过以下...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……