透過查看nginx官方文件可以得知,有三種nginx限流方式,分別是:
(推薦教學:nginx教學)
1、limit_conn_zone
2、limit_req_zone
3、ngx_http_upstream_module
這裡簡單的介紹一下以上三種方式:
一、limit_conn_zone
nginx配置
http{ limit_conn_zone $binary_remote_addr zone=one:10m; server { ...... limit_conn one 10; ...... } }
其中「limit_conn one 10」既可以放在server層對整個server有效,也可以放在location中只對單獨的location有效。
此配置顯示:客戶端的並發連線數只能是10個。
二、limit_req_zone
nginx配置
http{ limit_req_zone $binary_remote_addr zone=req_one:10m rate=1r/s; server { ...... limit_req zone=req_one burst=120; ...... } }
其中「limit_req zone=req_one burst=120」既可以放在server層對整個server有效,也可以放在location中只對單獨的location有效。
rate=1r/s的意思是每個位址每秒只能請求一次,也就是說令牌桶burst=120一共有120塊令牌,每秒鐘只新增1塊令牌,120塊令牌發完後,多出來的請求就會回傳503.。
三、ngx_http_upstream_module
#nginx設定
upstream xxxx{ server 127.0.0.1:8080 max_conns=10; server 127.0.0.1:8081 max_conns=10; }
以上是nginx實現限流的方式有哪幾種的詳細內容。更多資訊請關注PHP中文網其他相關文章!