本篇內(nèi)容介紹了“nginx的限流配置過(guò)程”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

limit_req zone=req_zone;
嚴(yán)格依照在limti_req_zone中配置的rate來(lái)處理請(qǐng)求
超過(guò)rate處理能力范圍的,直接drop
表現(xiàn)為對(duì)收到的請(qǐng)求無(wú)延時(shí)
limit_req zone=req_zone burst=5;
依照在limti_req_zone中配置的rate來(lái)處理請(qǐng)求
同時(shí)設(shè)置了一個(gè)大小為5的緩沖隊(duì)列,在緩沖隊(duì)列中的請(qǐng)求會(huì)等待慢慢處理
超過(guò)了burst緩沖隊(duì)列長(zhǎng)度和rate處理能力的請(qǐng)求被直接丟棄
表現(xiàn)為對(duì)收到的請(qǐng)求有延時(shí)
limit_req zone=req_zone burst=5 nodelay;
依照在limti_req_zone中配置的rate來(lái)處理請(qǐng)求
同時(shí)設(shè)置了一個(gè)大小為5的緩沖隊(duì)列,當(dāng)請(qǐng)求到來(lái)時(shí),會(huì)爆發(fā)出一個(gè)峰值處理能力,對(duì)于峰值處理數(shù)量之外的請(qǐng)求,直接丟棄
在完成峰值請(qǐng)求之后,緩沖隊(duì)列不能再放入請(qǐng)求。如果rate=10r/s,且這段時(shí)間內(nèi)沒有請(qǐng)求再到來(lái),則每6 s 緩沖隊(duì)列就能回復(fù)一個(gè)緩沖請(qǐng)求的能力,直到回復(fù)到能緩沖5個(gè)請(qǐng)求位置。
load_module modules/ngx_stream_module.so; #動(dòng)態(tài)加載模塊,必須寫道開頭
user nginx; #使用useradd nginx 添加一個(gè)nginx用戶
worker_processes 4; #cpu核心數(shù) * 2
worker_rlimit_nofile 102400; #配置nginx打開大文件數(shù) (每個(gè)工作進(jìn)程綁定一個(gè)cpu,worker_cpu_affinity配置)
worker_cpu_affinity 0001 0010 0100 1000; #工作進(jìn)程使用哪個(gè)cpu的核心 (以四核為例) 0001是4核的第一個(gè)核心 0010是4核的第二個(gè)核心
#error_log logs/error.log;
#error_log logs/error.log notice;
error_log logs/error.log info;
pid logs/nginx.pid;
events {
use epoll;
worker_connections 10240;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main; #在server虛擬目錄里面配置日志,這里是全局日志
sendfile on;
#tcp_nopush on;
server_tokens off; #錯(cuò)誤的時(shí)候關(guān)閉輸出版本號(hào)
#keepalive_timeout 0;
keepalive_timeout 30;
gzip on; #壓縮會(huì)占用cpu
gzip_buffers 4 16k;
gzip_comp_level 3; #壓縮等級(jí)
gzip_disable "MSIE[1-6]"; #ie瀏覽器1-6禁用gzip
gzip_min_length 1k;
gzip_http_version 1.0;
gzip_types text/plaion application/html application/css application/js; #可以壓縮的文件類型
gzip_vary on; #根據(jù)http頭判斷是否支持壓縮
client_max_body_size 8m; #默認(rèn)允許客戶端大上傳文件大小
#限流
#limit_conn_zone $binary_remote_addr zone=addr:10m; #并發(fā)限制(同時(shí)啟用一個(gè))
limit_req_zone $binary_remote_addr zone=qps:10m rate=1r/s; #請(qǐng)求限制 每秒鐘處理一個(gè)請(qǐng)求
limit_conn_log_level error;
limit_conn_status 503; #超出限制時(shí),返回狀態(tài)碼
server{
#limit_conn addr 1; #并發(fā)限制設(shè)置為1,是為了測(cè)試 addr是zone空間在53行(同時(shí)啟用一個(gè))
#limit_req zone=qps; #請(qǐng)求限制
limit_req zone=qps burset=1 nodelay; #請(qǐng)求限制()
}
#限流end
}
“nginx的限流配置過(guò)程”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
分享標(biāo)題:nginx的限流配置過(guò)程-創(chuàng)新互聯(lián)
本文來(lái)源:http://www.chinadenli.net/article6/dosdog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、Google、手機(jī)網(wǎng)站建設(shè)、微信公眾號(hào)、關(guān)鍵詞優(yōu)化、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容