Nginx负载均衡
Nginx 通过反向代理可以实现服务的负载均衡,避免了服务器单节点故障,把请求按照一定的策略转发到不同的服务器上,达到负载的效果。
upstream模块实现负载均衡
Nginx的负载均衡功能依赖于upsteam_module模块,所支持的代理方式包括proxy_pass。
upstream_module模块允许Nginx定义一组或多组服务组,使用者可以通过proxy_pass代理方式把网站的请求发送到事先定义好的upstream组的名字上。
upstream模块可以实现负载均衡,其实隐含了一个重要功能那就是冗余,当一个节点故障的时候,upstream是可以自动切换到正常工作的节点。
upstream5种配置方式
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
upstream backserver {
server 192.168.0.14;
server 192.168.0.15;
}
2、权重轮询
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream backserver {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}
3、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream backserver {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}
upstream模块配置示例
1、配置示例模板
upstream platform {
server 127.0.0.1:8081;
server 127.0.0.1:8082;
}
server {
listen 8100;
server_name localhost;
location / {
##反向代理执行定义的upstream名字
proxy_pass http:/platform;
}
}