Nginx中的所謂連接數(shù)限制,其實(shí)是tcp連接,也就是請求方通過三次握手后成功建立的連接狀態(tài)。Nginx一般為我們提供了 ngx_http_limit_conn_module 模塊來提供限制連接功能。該模塊可以根據(jù)定義的鍵來限制每個鍵值的連接數(shù),如同一個IP來源的連接數(shù)。
ngx_http_limit_conn_module指令解釋
Syntax: limit_conn zone number; Default: — Context: http, server, location
該指令描述會話狀態(tài)存儲區(qū)域。鍵的狀態(tài)中保存了當(dāng)前連接數(shù),鍵的值可以是特定變量的任何非空值(空值將不會被考慮)。$variable定義鍵,zone=name定義區(qū)域名稱。 常見使用例子:
limit_conn_zone $binary_remote_addr zone=addr:10m; server { location /download/ { limit_conn addr 1; }
上面例子表示當(dāng)請求訪問 /download/ 時, 同一時刻只能一個請求連接會成功進(jìn)行資源下載。
網(wǎng)段限制
常見的limit_conn_zone 配置一般設(shè)置 $binary_remote_addr 或 $server_name,進(jìn)行單一ip或主機(jī)級的連接數(shù)限制。
但有時候我們希望能對某ip網(wǎng)段進(jìn)行連接數(shù)限制,那我們可以這么做:
http { ... ... limit_conn_zone $ip_segment zone=network_segment:10m; server { ... ... set $ip_segment $remote_addr; if ( $ip_segment ~ ^(\d+)\.(\d+)\.(\d+)\.(\d+) ) { set $ip_segment $1.$2.$3; } location /download/ { limit_conn network_segment 10; #limit_rate 200k; } } }
這樣基本能滿足Nginx對網(wǎng)段內(nèi)所有ip的連接數(shù)做統(tǒng)一的連接數(shù)限制了。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
標(biāo)簽:玉樹 泰安 廈門 江門 瀘州 湖北 江西 內(nèi)江
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Nginx對網(wǎng)段內(nèi)ip的連接數(shù)限流配置詳解》,本文關(guān)鍵詞 Nginx,對,網(wǎng)段,內(nèi),的,連接,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。Copyright ? 1999-2012 誠信 合法 規(guī)范的巨人網(wǎng)絡(luò)通訊始建于2005年
蘇ICP備15040257號-8