5、配置示例 -> 负载均衡
实现效果:将客户端发出的请求平均分给两个服务器。
-
首先在两个 tomcat 服务器的 webapps 目录下创建一个同名文件夹 edu ,在这个文件夹下分别添加一个同名但是内容有所不同的html文件,用作请求区分返回结果。就是使用 xftp 直接创建目录拉取html文件过去。内容要有区分
-
然后重启两个tomcat服务器。
-
找到 nginx 的配置文件 nginx.conf
root 用户 cd /usr/local/nginx/conf vim nginx.conf 在配置文件中添加 http 块里面添加 upstream myserver{ server 127.0.0.1:8080; server 127.0.0.1:8082; } server 快里面添加 server{ .... location / { root html; proxy_pass http://myserver; proxy_connect_timeout 10; index index.html index.htm; } .... } 保存退出 cd .. cd sbin ./nginx -s reload
-
在客户端发送请求
http://192.168.126.129:刚才加负载均衡的那个server块监听的端口/edu/a.html 反复刷新请求,就能看见请求被分发给不同的服务器
nginx 的分配策略
-
轮询(默认): 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。 【上面的就是轮询】
-
weigh:t weight 代表权,重默认为 1,权重越高被分配的客户端越多 指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。
使用
upstream myserver{ server 127.0.0.1:8080 weight=5; server 127.0.0.1:8082 weight=10; 分配给这个端口的服务器的客户端就多 }
-
ip_hash: 每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。
使用
http 块里面添加 upstream myserver{ ip_hash; server 127.0.0.1:8080; server 127.0.0.1:8082; }
-
fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配。
使用
http 块里面添加 upstream myserver{ server 127.0.0.1:8080; server 127.0.0.1:8082; fail; }