Apache Web服务器资源使用限制配置
3.4.3 Apache Web服务器资源使用限制配置 “资源使用限制”就是要限制用户对网站特定资源(如目录、服务器硬件等)的访问。相关指令包括:LimitRequestBody、LimitRequestFields、LimitRequestFieldSize、LimitRequestLine、RLimitCPU、RLimitMEM、RLimitNPROC和ThreadStackSize。 LimitRequest*系列指令用来限制Apache在读取客户端请求的过程中使用的资源数量。通过限制这些值,可以减轻某些拒绝服务(DOS)攻击;RLimit*系列指令限制被Apache子进程所派生的进程使用的资源数量,通常这些指令用来控制CGI脚本和SSI exec命令所使用的资源;ThreadStackSize指令在某些平台上用来控制堆栈大小。 1.LimitRequestBody LimitRequestBody指令限制客户端发送的HTTP请求体的最大字节长度。其语法格式为:LimitRequestBody Bytes,Bytes在0(意味着无限制)到2 147 483 647(2GB)间限制了请求体所允许的字节数。默认值为“0”。 LimitRequestBody指令可以让用户在其作用范围内(整个服务器、特定目录、特定文件、特定位置)设置一个允许客户端发送的HTTP请求体的最大字节长度的限制。如果客户端的请求超出了这个限制,服务器会回应一个错误,而不是为这个请求继续提供服务。一个普通请求的信息体在很大程度上取决于资源的自然属性和这个资源允许的方法。CGI脚本经常用消息体把表单的信息传递给服务器。使用PUT方法至少能够得到与服务器期望从这个资源得到的信息量差不多大小的值。此指令给了服务器管理员更大的可控性,以控制客户端不正常的请求行为。这有助于避免某些形式的拒绝服务攻击。比如,如果允许文件上传到某个位置,而且希望能将上传文件的大小设置为100KB,可以使用下面的指令: LimitRequestBody 102400 2.LimitRequestFields LimitRequestFields用来限制接受客户端请求中HTTP请求头域的数量。其语法格式为:LimitRequestFields Number,Number是一个0(意味着不限)到32 767之间的整数。默认值为“100”。默认值为编译时的常量DEFAULT_LIMIT_REQUEST_FIELDS(发布值为100)。 LimitRequestFields指令允许服务器管理员修改在一个HTTP请求中的请求头域的数量限制。服务器需要此值大于一个普通客户端请求中包含头域的数量。一个客户端请求头域的数量很少大于20,但根据客户端的不同这个数字有很大的差别,经常取决于用户配置他们的浏览器扩展以支持更详细的内容协商。可选的HTTP扩展经常使用请求头域来实现。这个指令给了服务器管理员更大的可控性,以控制客户端不正常的请求行为。这有助于避免某些形式的拒绝服务攻击。如果正常使用的客户端得到了服务器的错误应答,指出其在请求中发送了过多的头域,你应该适当地增大此值。例如: LimitRequestFields 50 3.LimitRequestFieldSize LimitRequestFieldSize指令用来限制客户端发送的请求头的字节数。其语法格式为:LimitRequestFieldsize Bytes,Bytes指定了HTTP请求头允许的字节大小。默认值为“8190”。 LimitRequestFieldSize指令允许服务器管理员增加,或减少HTTP请求头域大小的限制。一般来说,服务器需要此值足够大,以适应普通客户端的任何请求的头域大小。一个普通头域的大小对于不同的客户端来说是有很大差别的,一般与用户配置他们的浏览器以支持更多的内容协议密切相关。这个指令给了服务器管理员更大的可控性,以控制客户端不正常的请求行为。这有助于避免某些形式的拒绝服务攻击。例如: LimitRequestFieldSize 4094 一般情况下,请不要改变这个设置,而是保持其默认设置。 4.LimitRequestLine LimitRequestLine指令用来限制接收客户端发送的HTTP请求行的字节数。其语法格式为:LimitRequestLine Bytes,Bytes将设置HTTP请求行的字节数限制。默认值也为“8190”。 LimitRequestLine指令允许服务器管理员增加或减少客户端HTTP请求行允许大小的限制。因为请求行包括HTTP方法、URI、协议版本,所以LimitRequestLine指令会限制请求URI的长度。服务器会需要这个值足够大以装载它所有的资源名,包括可能在GET请求中所传递的查询部分的所有信息。这个指令也给了服务器管理员更大的可控性,以控制客户端不正常的请求行为。这有助于避免某些形式的拒绝服务攻击。例如: LimitRequestLine 4094 一般情况下,不需要改变此设置的默认值。 5.RLimitCPU RLimitCPU指令用来限制Apache子进程派生的进程占用CPU的最大秒数。CPU资源限制表示为每进程占用的秒数。其语法格式为:RLimitCPU seconds|max [seconds|max],默认值未定义,使用操作系统默认值。第一个参数设置了所有进程的软资源限制,第二个参数设置了最大资源限制。两个参数均可设置为一个数值,或是“max”,以表示设置为操作系统允许的最大值。增大此资源限制最大值需要以root运行服务器或是在初始化启动语句中进行设置。这< 新文章:
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833 中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1 网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003 |