nginx
nginx限制ip並發數,也是說限制同一個ip同時連接伺服器的數量
1.新增limit_zone
這個變數只能在http使用
vi /usr/local/nginx/conf/nginx.conf
limit_zone one $binary_remote_addr 10m;
2.新增limit_conn
這個變數可以在http, server, location使用
我只限制一個站點,所以加入server裡面
vi /usr/local/nginx/conf/host/gaojinbo.com.conf
limit_conn one 10;
3.重啟nginx
killall nginx -hup
複製程式碼 程式碼如下:
vi /usr/local/nginx/conf/vhosts/down.redocn.com.conf
limit_zone one $binary_remote_addr 10m;
server
{
listen 80;
server_name down.redocn.com;
index index.html index.htm index.php;
root /data/www/wwwroot/down;
error_page 404 /index.php;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
html ;
}
#zone limit
location / {
limit_conn one 1;
limit_rate 20k;//限速
}
# serve static files
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
root /data/www/wwwroot/down;
expires 30d;
}
#}
apache
要讓apache伺服器做對相同ip位址的連線限制,需要mod_limitipconn來實作。一般需要手動編譯。不過模組作者也提供了一些編譯好的模組,根據自己的apache版本可以直接使用。
1。編譯方式:
tar zxvf mod_limitipconn-0.xx.tar.gz
cd mod_limitipconn-0.xx
make apxs=/usr/local/apache/bin/apxs —–這裡要按你自己的路徑設定
make install apxs=/usr/local/apache/bin/apxs —–這裡要按你自己的路徑設定
2.rpm安裝方式:
直接下載mod_limitipconn-0.xx.rpm
rpm -uhv mod_limitipconn-0.xx.rpm
然後確認產生的mod_limitipconn.so檔案在apache伺服器模組目錄裡。
3。編輯httpd.conf檔:
複製程式碼 程式碼如下:
extendedstatus on
loadmodule limitipconn_module modules/mod_limitipconn.so < ifltule mod_limitipconn.c >##<ule mod_limitipconn.c ># ; location / > # 所有虛擬主機的/目錄
maxconnperip 3 # 每ip只允許3個並發連線
noiplimit image/* # 對圖片不做ip限制
#< /location>
< location /mp3 > # 所有主機的/mp3目錄
maxconnperip 1 # 每ip只允許一個連接請求
onlyiplimit audio/mpeg video # 此限制只對視訊和音訊格式的檔案
< /location >
< /ifmodule>
#
以上是nginx與apache怎麼限制ip並發訪問的詳細內容。更多資訊請關注PHP中文網其他相關文章!