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