Nginx负载均衡

Kefira ·
更新时间:2024-09-20
· 819 次阅读

在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端口然后进行访问效果也是一样的,就不再演示了。

基于应用层的负载均衡

负载均衡配置模块说明:

权重分配请求:

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

到此,实验就成功了。


作者:Rose_die



nginx负载均衡 Nginx

需要 登录 后方可回复, 如果你还没有账号请 注册新账号