Nginx帶寬控制(限速模塊使用)
有個(gè)老項(xiàng)目,通過 Squid 提供文件下載功能,利用 delay_parameters 實(shí)現(xiàn)帶寬控制,問題是我玩不轉(zhuǎn) Squid,于是盤算著是不是能在 Nginx 里找到類似的功能。
好消息是 Nginx 提供了 limit_rate 和limit_rate_after,舉個(gè)例子來說明一下:
location /download/ {
limit_rate_after 500k;
limit_rate 50k;
}
大概意思是:用戶下載達(dá)到 500k 后,便控制其速度在 50k 以內(nèi)。
壞消息是此控制是針對(duì)單個(gè)連接而言的。換言之,只能限制單個(gè)連接的帶寬,不能限制總帶寬。不過使用limit_conn 模塊的話,可以在一定程度上緩解問題:
limit_conn_zone $server_name zone=servers:10m;
server {
location /download/ {
limit_conn servers 1000;
limit_rate_after 500k;
limit_rate 50k;
}
}
通過 limit_conn 限制了并發(fā)連接數(shù),于是也就限制了總帶寬??上н@個(gè)解決方式并不完美,大家可以設(shè)想如下的例子:1000 個(gè)用戶能夠同時(shí)以 50k 的速度下載;那么在總帶寬不變的情況下,2000 個(gè)用戶是否能夠同時(shí)以 25k 的速度下載?從業(yè)務(wù)的角度看,答案自然是肯定的,可實(shí)際上 limit_conn 和 limit_rate 不夠靈活,無法簡(jiǎn)單實(shí)現(xiàn)此類邏輯。
當(dāng)然,問題肯定有辦法解決。比如使用第三方模塊:limit_speed;還可以使用 Linux 內(nèi)置的 TC 命令。limit_speed 比較簡(jiǎn)單,不多說了,接下來我們就看看 TC 的用法吧:
shell> tc qdisc add dev eth0 root handle 1: htb default 10
shell> tc class add dev eth0 parent 1: classid 1:1 htb rate 10mbit
shell> tc filter add dev eth0 protocol ip parent 1:0 prio 1 \
u32 match ip dport 80 0xffff flowid 1:1
TC 復(fù)雜的讓人發(fā)瘋,請(qǐng)參考:Linux Advanced Routing & Traffic Control HOWTO。
本文介紹了多個(gè) Nginx 限制訪問方面的模塊,實(shí)際上還有一個(gè) limit_req 模塊也超贊,雖然和本文關(guān)系不大,但建議大家了解,具體可以參考「nginx limit_req限速設(shè)置」。
相關(guān)文章
解讀nginx反向代理location和proxy_pass的映射關(guān)系
這篇文章主要介紹了解讀nginx反向代理location和proxy_pass的映射關(guān)系,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01負(fù)載均衡下的webshell上傳+nginx解析漏洞的過程
這篇文章主要介紹了負(fù)載均衡下的webshell上傳+nginx解析漏洞,首先介紹了負(fù)載均衡下webshell上傳的四大難點(diǎn)及環(huán)境搭建教程,感興趣的朋友跟隨小編一起看看吧2024-02-02Nginx配置80端口訪問8080及項(xiàng)目名地址方法解析
這篇文章主要介紹了Nginx配置80端口訪問8080及項(xiàng)目名地址方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Nginx服務(wù)器上搭建圖片緩存服務(wù)的基本配置解析
這篇文章主要介紹了Nginx服務(wù)器上搭建圖片緩存服務(wù)的基本配置解析,分別介紹了通過proxy_store模塊和proxy_cache模塊兩種方式的配置,需要的朋友可以參考下2016-04-04讓VIM支持Nginx .conf文件語(yǔ)法高亮顯示功能的方法
這篇文章主要給大家介紹了關(guān)于讓VIM支持Nginx .conf文件語(yǔ)法高亮顯示功能的方法,文中分別介紹了手動(dòng)修改和自動(dòng)化腳本兩種方法的實(shí)現(xiàn),都給出了詳細(xì)的示例代碼,需要的朋友可以參考借鑒,下面來一起看看吧。2017-07-07Nginx服務(wù)器高性能優(yōu)化的配置方法小結(jié)
這篇文章主要介紹了Nginx服務(wù)器高性能優(yōu)化的配置方法小結(jié),包括一些內(nèi)核參數(shù)的優(yōu)化介紹,需要的朋友可以參考下2015-12-12nginx幾種網(wǎng)頁(yè)重定向(rewirte)的配置方法詳解
這篇文章主要詳細(xì)介紹了nginx幾種網(wǎng)頁(yè)重定向(rewirte)的配置方法,文中通過代碼示例和圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-02-02