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服务器组是实现负载均衡。
以上资料纯属个人学习使用,不做其他用途。
本文介绍了如何使用Nginx服务器实现负载均衡,包括一般轮询、加权轮询、针对特定资源及不同域名的负载均衡配置方法。
2057

被折叠的 条评论
为什么被折叠?



