Nginx负载均衡


在nginx中负载均衡主要实现用户访问请求进行调度分配和后端服务器的压力分担。

负载均衡调度算法

  • 轮询(rr) :按时间顺序逐一分配到不同的后端服务器(默认)
  • 权重(weight):加权轮询(wrr)。weight值越大,分配到的访问率越高。
  • 源IP地址hash调度方法(ip_hash):将每个请求按访问IP的hash值来分配,来自同一个IP固定访问一个后端服务器,不应与weight一起使用。
  • 最少连接数(least_conn):当server拥有不同的权重时为wlc,当所有后端主机;连接数相同时,则使用wrr,适用于长连接(keepalive_timeout不为0)。

负载均衡功能测试

准备环境:
hostname IP 角色

web 外网IP:192.168.8.30 web服务器
内网IP:172.16.1.30
web02 外网IP:192.168.8.21 web服务器
内网IP:172.16.1.21
nginx-LB 外网IP:192.168.8.11 nginx负载均衡
内网IP:172.16.1.11

基于传输层的负载均衡

在nginx-lb服务器的/etc/nginx/conf.c/l4lb.conf文件添加一下内容:

stream {
		upstream web02 {
		server 172.16.1.21:22;

	}
		upstream web {
		server 172.16.1.30:22;
	}

server {
		listen 5555;
		proxy_pass web02; 
}

server {
		listen 6666;
		proxy_pass web;
	}
}

然后在/etc/nginx/nginx.conf的http模块上添加:

include /etc/nginx/conf.c/*.conf;

实验效果:
在这里插入图片描述
在这里插入图片描述
四层的负载均衡主要是根据IP和端口号进行转发。这里用ssh协议进行演示,也可以用80端口然后进行访问效果也是一样的,就不再演示了。

基于应用层的负载均衡

负载均衡配置模块说明:

  • 权重分配请求:

    upstream oldboy {
       server 172.16.1.30:80 weight=3;
       server 172.16.1.21:80 weight=2;
       
    }
    
  • 实现热备份功能:

    upstream oldboy {
        server 172.16.1.30:80 backup;
        server 172.16.1.21:80;
        
     }
    
  • 定义最大失败次数:

    upstream oldboy {
       server 172.16.1.30:80;
       server 172.16.1.21:80 max_fails=5;
       
    }
    
  • 定义失败之后重发的间隔时间:

    upstream oldboy {
       server 172.16.1.30:80;
       server 172.16.1.21:80  fail_timeout=10s;
       
    }
    

实例:

[root@ngx-lb conf.d]# vim www.conf 

upstream ngx {
    server 172.16.1.30:80;
    server 172.16.1.21:80;

}
server {
    listen 80;
    server_name www.jxj.com;
    location / {
            proxy_pass http://ngx;

    }
}

web、web02的配置文件:

server {
	listen 80;
	server_name localhost;

	location / {
		root /jxj/www;
		index index.html;
}


}

分别在web、web02上mkdir -p /jxj/www创建网页目录。
web服务器的index.html文件内容为

[root@web-ngx ~]# cat /jxj/www/index.html 
web --------------

web02服务器的index.html文件内容为:

[root@web02 conf.d]# cat /jxj/www/index.html 
web02 

使用curl命令查看实验效果:

[root@ngx-lb conf.d]# curl 192.168.8.11
web --------------
[root@ngx-lb conf.d]# curl 192.168.8.11
web02 
[root@ngx-lb conf.d]# curl 192.168.8.11
web --------------
[root@ngx-lb conf.d]# curl 192.168.8.11
web02 

到此,实验就成功了。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值