您好,登錄后才能下訂單哦!
今天小編給大家分享一下Nginx對(duì)網(wǎng)段內(nèi)ip的連接數(shù)限流如何配置的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。
nginx中的所謂連接數(shù)限制,其實(shí)是tcp連接,也就是請(qǐng)求方通過(guò)三次握手后成功建立的連接狀態(tài)。nginx一般為我們提供了 ngx_http_limit_conn_module 模塊來(lái)提供限制連接功能。該模塊可以根據(jù)定義的鍵來(lái)限制每個(gè)鍵值的連接數(shù),如同一個(gè)ip來(lái)源的連接數(shù)。
ngx_http_limit_conn_module指令解釋
syntax: limit_conn zone number; default: — context: http, server, location
該指令描述會(huì)話狀態(tài)存儲(chǔ)區(qū)域。鍵的狀態(tài)中保存了當(dāng)前連接數(shù),鍵的值可以是特定變量的任何非空值(空值將不會(huì)被考慮)。$variable定義鍵,zone=name定義區(qū)域名稱。 常見使用例子:
limit_conn_zone $binary_remote_addr zone=addr:10m; server { location /download/ { limit_conn addr 1; }
上面例子表示當(dāng)請(qǐng)求訪問(wèn) /download/ 時(shí), 同一時(shí)刻只能一個(gè)請(qǐng)求連接會(huì)成功進(jìn)行資源下載。
網(wǎng)段限制
常見的limit_conn_zone 配置一般設(shè)置 $binary_remote_addr 或 $server_name,進(jìn)行單一ip或主機(jī)級(jí)的連接數(shù)限制。
但有時(shí)候我們希望能對(duì)某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對(duì)網(wǎng)段內(nèi)所有ip的連接數(shù)做統(tǒng)一的連接數(shù)限制了。
以上就是“Nginx對(duì)網(wǎng)段內(nèi)ip的連接數(shù)限流如何配置”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。