Nginx简单配置实例3 - 负载均衡 day05

Nginx简单配置实例3 - 负载均衡 day05


1.介绍

不去提升服务器性能,而是增加服务器数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,讲负载分发到不同的服务器,也就是所说的负载均衡
Nginx简单配置实例3 - 负载均衡 day05

2.实现效果

(1)浏览器地址栏输入地址:http://192.168.29.130/edu/a.html,负载均衡效果,平均8080和8081端口中

3.准备工作

(1)准备两台或多台tomcat服务器,一台8080,一台8081
Nginx简单配置实例3 - 负载均衡 day05

  • 在tomcat8081文件中也创建a.html

(2)在两台tomcat里webapps目录中,创建名称是edu文件夹创建页面a.html,用于测试

修改tomcat8081的端口号为8081

# cd tomcat8081
# cd apache-补全
# cd conf
# vi server.xml

此三处进行修改
Nginx简单配置实例3 - 负载均衡 day05
Nginx简单配置实例3 - 负载均衡 day05
Nginx简单配置实例3 - 负载均衡 day05
修改配置文件后重启服务

(3)开放对外访问的端口号8080 8081或关闭防火墙
Nginx简单配置实例3 - 负载均衡 day05
重新加载防火墙

测试结果

Nginx简单配置实例3 - 负载均衡 day05

4.在nginx的配置文件中进行负载均衡的配置

# cd /usr/local/nginx/conf
# vi nginx.conf
Nginx简单配置实例3 - 负载均衡 day05

###最后效果

Nginx简单配置实例3 - 负载均衡 day05

刷新页面后,8080和8081进行替换,达到负载均衡的效果。

5.额外说明

  • 在linux下有Nginx、LVS、Haproxy等等服务可以提供负载均衡服务,而且nginx提供了几种分配方式(策略)

6.分配方式(策略)

1.轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,会自动剔除
2.weight
weight代表权重默认为1,权重越高被分配的客户端越多

例如
upstreat myserver {
server 192.168.29.130:8080 weight=5;
server 192.168.29.130:8081 weight=10;

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况

3.ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session共享的问题

  • 指定相同ip地址只访问一台服务器

例如
upstream server_pool {
ip_hash;
server 192.168.29.130:8080;
server 192.168.29.130:8081;

4.fair(第三方)
按照后端服务器的响应时间来分配请求,响应时间短的优先分配

upstream server pool;
server 192.168.29.130:8080;
server 192.168.29.130:8081;
fair;