Nginx 配置一致性Hash负载均衡策略

核心模块简介

  1. 进入nginx的安装目录
    Nginx 配置一致性Hash负载均衡策略_第1张图片
  2. 进入/src/http/modules目录
    Nginx 配置一致性Hash负载均衡策略_第2张图片
  • 如上图,Nginx http 核心功能模块都在这个目录,功能如下
    Nginx 配置一致性Hash负载均衡策略_第3张图片

负载均衡器

  • ngx_http_upstream_consistent_hash 模块是一个负载均衡器,使用一个内部一致性hash算法来选择合适的后端节点。
  • 该模块可以根据配置参数采取不同的方式将请求均匀映射到后端机器,
  1. consistent_hash $remote_addr:可以根据客户端ip映射
  2. consistent_hash $request_uri:根据客户端请求的uri映射
  3. consistent_hash $args:根据客户端携带的参数进行映
  • ngx_http_upstream_consistent_hash 模块是一个第三方模块,安装步骤如下
  1. 到github下载该模块 https://github.com/replay/ngx_http_consistent_hash
    Nginx 配置一致性Hash负载均衡策略_第4张图片
  2. 将下载的压缩包上传到nginx服务器,并解压
  3. 如果已经编译安装过nginx,此时进入当时nginx的源码目录,执行如下命令,没有安装过请参考文章nginx安装
./configure --add-module=/usr/local/ngx_http_consistent_hash-master
make
make install
  1. 安装成功后的modules目录中可以看到ngx_http_upstream_consistent_hash负载均衡模块,如下

Nginx 配置一致性Hash负载均衡策略_第5张图片
5. 在nginx.conf配置负载均衡
Nginx 配置一致性Hash负载均衡策略_第6张图片

  • 如上图,因为本地只有一个ip,所以配置的是根据uri负载均衡,在本地部署了两个tomcat,端口分别是8080、8090,每个tomcat下分别部署两个项目,只放置了静态资源index.html,访问路径分别是demo1/index.html, demo2/index.html,用以区分不同的uri,效果如下
    Nginx 配置一致性Hash负载均衡策略_第7张图片
    Nginx 配置一致性Hash负载均衡策略_第8张图片
  • 从上图可以看出成功分发到两个tomcat,负责均衡策略生效。

你可能感兴趣的:(分布式,nginx,nginx,hash,分布式)