负载均衡方法
1 | nginx支持以下负载均衡机制(或者方法): |
nginx反向代理实现
1 | 在nginx中反向代理的实现包括HTTP, HTTPS, FastCGI, uwsgi, SCGI, 和 memcached的负载均衡。 |
默认轮询负载均衡
nginx中最简单的负载均衡配置看上去大体如下:
1 | http { |
1 | 在上面的例子中, 同一个应用有3个实例分别运行在srv1-srv3。当没有特别指定负载均衡方法时, 默认为round-robin/轮询。所有请求被代理到服务器集群myapp1, 然后nginx实现HTTP负载均衡来分发请求。 |
最少连接负载均衡(least_conn)
1 | 另一个负载均衡方式是least-connected/最少连接。当某些请求需要更长时间来完成时,最少连接可以更公平的控制应用实例上的负载。 |
1 | nginx中通过在服务器集群配置中使用least_conn指令来激活最少连接负载均衡方法: |
会话持久化(ip-hash)
1 | 如果需要将一个客户端绑定给某个特定的应用服务器——用另一句话说,将客户端会话"沾住"或者"持久化",以便总是能选择特定服务器——,那么可以使用ip-hash负载均衡机制。 |
1 | 要配置使用ip-hash负载均衡,只要在服务器集群配置中使用ip_hash指令: |
带权重的负载均衡
1 | 可以通过使用服务器权重来影响nginx的负载均衡算法。 |
1 | 在这个配置中,每5个新请求将会如下的在应用实例中分派: 3个请求分派去srv1,一个去srv2,另外一个去srv3. |
健康检查
1 | 如果某台服务器响应失败,nginx将标记这台服务器为"失败",之后的一段时间将尽量避免选择这台服务器来处理后续请求。 |
1 | upstream myapp1 { |
- 本文作者: GaryWu
- 本文链接: https://garywu520.github.io/2017/08/03/使用nginx实现HTTP负载均衡-官网翻译版/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!