由於項目需要, 可能對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