由于项目需要, 可能对Web服务的并发请求产生压力,因此想到了在Apache层进行请求控制的方法.
由于已经有一个mod_limitipconn 可以用来进行并发连接控制, 但由于起用了KeepAlive,因此还需要对并发请求总数进行控制,并对超做并发请求后,把请求重定向到某个页面的业务需要,因此基于mod_limitipconn,进行修改, 以满足业务需要.
配置示例如下:
ExtendedStatus On
LoadModule limitipconn_module modules/mod_limitipconn.so
<IfModule mod_limitipconn.c>
MaxConnPerIP 1000
<Location /imlogingw>
MaxConnPerIP 300
# NoIPLimit image/*
MaxReqConcurrent 60
ExceedReqURL http://10.2.224.63/
</Location>
</IfModule>
对http://10.2.224.63/imlogingw 这个目录进行并发控制,当超过阀值(60)之后,把请求重定向到http://10.2.224.63/这个页面.
经过压力测试, 可以正确使用
原始的mod_limitipconn 可以从
http://dominia.org/djao/limitipconn.html 下载, 改进后的mod_limitipconn 可以从
http://limitipconnreq.googlecode.com/files/mod_limitipconn-0.23-jaymo.tar.gz