您好,登錄后才能下訂單哦!
本篇內容介紹了“nginx的限流配置過程”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
limit_req zone=req_zone;
嚴格依照在limti_req_zone中配置的rate來處理請求
超過rate處理能力范圍的,直接drop
表現為對收到的請求無延時
limit_req zone=req_zone burst=5;
依照在limti_req_zone中配置的rate來處理請求
同時設置了一個大小為5的緩沖隊列,在緩沖隊列中的請求會等待慢慢處理
超過了burst緩沖隊列長度和rate處理能力的請求被直接丟棄
表現為對收到的請求有延時
limit_req zone=req_zone burst=5 nodelay;
依照在limti_req_zone中配置的rate來處理請求
同時設置了一個大小為5的緩沖隊列,當請求到來時,會爆發出一個峰值處理能力,對于峰值處理數量之外的請求,直接丟棄
在完成峰值請求之后,緩沖隊列不能再放入請求。如果rate=10r/s,且這段時間內沒有請求再到來,則每6 s 緩沖隊列就能回復一個緩沖請求的能力,直到回復到能緩沖5個請求位置。
load_module modules/ngx_stream_module.so; #動態加載模塊,必須寫道開頭
user nginx; #使用useradd nginx 添加一個nginx用戶
worker_processes 4; #cpu核心數 * 2
worker_rlimit_nofile 102400; #配置nginx打開最大文件數 (每個工作進程綁定一個cpu,worker_cpu_affinity配置)
worker_cpu_affinity 0001 0010 0100 1000; #工作進程使用哪個cpu的核心 (以四核為例) 0001是4核的第一個核心 0010是4核的第二個核心
#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; #錯誤的時候關閉輸出版本號
#keepalive_timeout 0;
keepalive_timeout 30;
gzip on; #壓縮會占用cpu
gzip_buffers 4 16k;
gzip_comp_level 3; #壓縮等級
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; #根據http頭判斷是否支持壓縮
client_max_body_size 8m; #默認允許客戶端最大上傳文件大小
#限流
#limit_conn_zone $binary_remote_addr zone=addr:10m; #并發限制(同時啟用一個)
limit_req_zone $binary_remote_addr zone=qps:10m rate=1r/s; #請求限制 每秒鐘處理一個請求
limit_conn_log_level error;
limit_conn_status 503; #超出限制時,返回狀態碼
server{
#limit_conn addr 1; #并發限制設置為1,是為了測試 addr是zone空間在53行(同時啟用一個)
#limit_req zone=qps; #請求限制
limit_req zone=qps burset=1 nodelay; #請求限制()
}
#限流end
}
“nginx的限流配置過程”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。