程序员@IT·互联网

Nginx笔记(四)

2015-11-22  本文已影响743人  Hanze2111
代理一组服务器
选择一种负载均衡方法
  1. 默认的是权重轮询算法,nginx会按照各个server的权重比来分发请求。
    • 如:

      upstream backend {
         server backend1.example.com;
         server backend2.example.com;
      }
      
  2. 最少连接法:每次都选择连接数组少的server,如果有多个server的连接数相同,再根据这几个server的权重分发请求。
    • 例:

      upstream backend {
          least_conn;
      
          server backend1.example.com;
          server backend2.example.com;
      }
      
  3. ip哈希:使用IPv4的前三个八字节位或者IPv6的全部来计算哈希值,所以相同地址的请求始终会打到相同的Server上,除非这个server不可用。
    • 如果一个server需要暂时移除,使用down参数来避免请求打到这台机器上,应该哈希到这台机器上的请求会自动的发送到组里的下一台。

    • 如:

      upstream backend {
          ip_hash;
      
          server backend1.example.com;
          server backend2.example.com;
          server backend3.example.com down;
      }
      
  4. 哈希:使用自定义的key去进行哈希计算。
    • 通过consistent参数使用ketama一致哈希算法来减少增减服务器对客户端的影响。
      • 例:

        upstream backend {
            hash $request_uri consistent;
        
            server backend1.example.com;
            server backend2.example.com;
        }
        
      • 上面的就是通过uri进行哈希计算。

  5. 最小响应时间:对于每个请求,nginx选择平均等待时间最小并且连接数最少的。
    • 通过least_time的参数来确定平均等待时间的计算方式。

      • header: Time to receive the first byte from the server
      • last_byte: Time to receive the full response from the server
    • 如:

      upstream backend {
          least_time header;
      
          server backend1.example.com;
          server backend2.example.com;
      }
      
服务器权重
服务器慢启动
Enabling Session Persistence
限制连接数量
被动的健康监测
主动的心跳检测

至此Nginx笔记结束,了解了这些后,对于看懂一个Nginx的配置,了解Nginx能够实现什么功能和对其进行小改应该会有一定的帮助。

上一篇下一篇

猜你喜欢

热点阅读