nginx架构(二)Nginx服务器实现负载均衡配置

本文介绍了如何使用Nginx服务器实现负载均衡,包括一般轮询、加权轮询、针对特定资源及不同域名的负载均衡配置方法。
Nginx服务器实现负载均衡配置


1、 Nginx服务器反向代理服务的一个重要用途是实现负载均衡。
Nginx服务器实现了静态的基于优先级的加权轮询算法,主要使用的配置是proxy_pass指令和upsteam指令。

2、下面是Nginx服务器对请求实现负载均衡的策略:


1、对所有请求实现一般轮询的负载均衡配置如下:
upstream myserver{   配置后端服务器
server 10.14.2.3:8080
server 10.14.2.4:8080
server 10.14.2.5:8080
}
server{
listen   8080;
server_name  www.server.name;
index index.html index.htm;

location /{
proxy_pass http://myserver;
proxy_set_header Host $host;
proxy_set_header Cookie $http_cookie;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Myserver服务器组中的所有服务器的优先级全部配置默认的weight=1。
所有的www.server.name的请求都会在myserver服务器组中实现负载均衡。


2、对所有请求实现加权轮询的负载均衡配置如下:
upstream myserver{  配置后端服务器
server 10.14.2.3:8080  weight=4
server 10.14.2.4:8080  weight=2
server 10.14.2.5:8080
}


server{
listen   8080;
server_name  www.server.name;
index index.html index.htm;

location /{
proxy_pass http://myserver;
proxy_set_header Host $host;
proxy_set_header Cookie $http_cookie;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}


在myserver服务器组中的服务器被赋予不同的优先级,weight就是权值,越大级别越高,10.14.2.3:8080的级别最高,
优先处理和接收客户端请求。10.14.2.5:8080级别最低,是接收和处理客户端请求最少的服务器。
所有的www.server.name的请求都会在myserver服务器组中实现加权负载均衡。


3、对特定资源实现负载均衡配置如下:
upstream myserver1{  配置后端服务器1
server 10.14.2.3:8080  weight=4
server 10.14.2.4:8080  weight=2
server 10.14.2.5:8080
}
upstream myserver2{  配置后端服务器2
server 10.14.2.6:8080  weight=4
server 10.14.2.7:8080  weight=2
server 10.14.2.8:8080
}


server{
listen   8080;
server_name  www.server.name;
index index.html index.htm;

location /server1/{
proxy_pass http://myserver1;
proxy_set_header Host $host;
proxy_set_header Cookie $http_cookie;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /server2/{
proxy_pass http://myserver2;
proxy_set_header Host $host;
proxy_set_header Cookie $http_cookie;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
上例中所有对www.server.name/ server1/*的请求都会在myserver1服务器组中实现负载均衡,
对www.server.name/ server2/*的请求都会在myserver2服务器组中实现负载均衡。


4、对不同域名实现负载均衡配置如下:
upstream myserver1{  配置后端服务器1
server 10.14.2.3:8080  weight=4
server 10.14.2.4:8080  weight=2
server 10.14.2.5:8080
}
upstream Iserver2{  配置后端服务器2
server 10.14.2.6:8080  weight=4
server 10.14.2.7:8080  weight=2
server 10.14.2.5:8080
}


server{
listen   8080;
server_name  www.myserver.name;
index index.html index.htm;

location /server1/{
proxy_pass http://myserver1;
proxy_set_header Host $host;
proxy_set_header Cookie $http_cookie;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server{
listen   8081;
server_name  www.Iserver.name;
index index.html index.htm;

location /server1/{
proxy_pass http://Iserver2;
proxy_set_header Host $host;
proxy_set_header Cookie $http_cookie;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}


这里设置了两个虚拟主机,两组后端被代理的服务器,接收不同的域名请求实现负载均衡。
请求如果是www.myserver.name,则由服务器 1接收并在myserver1服务器组是实现负载均衡,请求如果是www. Iserver.name,

则由服务器 2接收并在Iserver2服务器组是实现负载均衡。

 

 

 以上资料纯属个人学习使用,不做其他用途。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

powerfuler

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值