Nginx负载均衡

2020-05-25 00:00:00 服务器 分配 访问 权重 负载均衡

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

负载均衡调度算法

  • 轮询(rr) :按时间顺序逐一分配到不同的后端服务器(默认)
  • 权重(weight):加权轮询(wrr)。weight值越大,分配到的访问率越高。
  • 源IP地址hash调度方法(ip_hash):将每个请求按访问IP的hash值来分配,来自同一个IP固定访问一个后端服务器
  • 少连接数(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端口然后进行访问效果也是一样的,就不再演示了。

基于应用层的负载均衡

负载均衡配置模块说明:

  • 权重分配请求:
  • 实现热备份功能:
  • 定义大失败次数:
  • 定义失败之后重发的间隔时间:

实例:

web、web02的配置文件:

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

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

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


到此,实验就成功了。

相关文章