NGINX限流的一些思考
來源:http://blog.csdn.net/soar_away/article/details/51980247
我們經(jīng)常遇到這種情況, 服務(wù)器資源有限,但是客戶端來的請求在不斷的上漲, 為了保證一部分的請求能夠正常相應(yīng), 不得不放棄一些客戶端來的請求, 這個(gè)時(shí)候我們會選擇行的進(jìn)行一些NGINX的限流操作, 這種操作可以很大程度上緩解服務(wù)器的壓力, 使其他正常的請求能夠得到正常響應(yīng).
? ? nginx 限流的策略有多種, 下面我們來聊聊常見的集中限流策略.
? ? 1. ?針對固定IP進(jìn)行限流, 這種策略主要用于同一個(gè)IP反復(fù)請求服務(wù)器,類似于洪水攻擊或者DDos攻擊,對單一ID進(jìn)行限制可以有效的
? ? ? ?對單一IP的限制的配置
[php]?view plaincopylimit_zone 是對于每個(gè) IP 分配session空間, 總共空間大小為30M ?one 定義了一個(gè)名稱, ? $bin_remote_add 即為一個(gè)IP地址
limit_req_zone 是對請求頻率進(jìn)行限制, ?10 req/second的IP允許訪問
? ??
? ? ?2. ?針對IP限制并發(fā)請求
[php]?view plaincopy
? ? ?3. 配置白名單
? ? ?白名單的作用就是 對某些特定的IP不做請求限制,比如我們自己的IP,或者公司內(nèi)網(wǎng)的IP等.
[php]?view plaincopy白名單放在 conf/whiteip.conf 文件里面.whitip.conf 的格式key value的格式, 就是特定的IP可以映射到空的字符串, 這樣就不會對它進(jìn)行限制操作了
配置白名單的 方法在官網(wǎng)有詳細(xì)說明, 可以看這里.
GEO 用法? ??MAP用法
? ?
? ? ? ?4. 負(fù)載均衡可能也算一種吧 , 當(dāng)然他是把自己的流量倒到別的機(jī)子上去而已
nginx 的負(fù)載均衡 配置的字段是upstream
[php]?view plaincopy? ?稍微解釋一下 upstream 的配置,
1. down 表示這臺服務(wù)器不參與負(fù)載均衡
2. weight 默認(rèn)為1 , weight 值越大, 分配的請求也越多?
3. max_fails 允許請求的最多失敗數(shù)目, ? ?超過最大次數(shù)是, 返回proxy_next_upstream 模塊定義的錯(cuò)誤
4. fail_timeout : 標(biāo)示失敗多少次以后 就不響應(yīng)了
5. back_up: ?備用機(jī) , 如果 其他機(jī)子忙或者掛了可以訪問backup機(jī)子
總結(jié)
以上是生活随笔為你收集整理的NGINX限流的一些思考的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 可以改善mysql性能的InnoDB配置
- 下一篇: Shell多线程操作及线程数控制实例