Nginx负载均衡与反向代理

Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。

在高连接并发的情况下,Nginx是Apache服务器不错的替代品。

本篇主要配置负载均衡

环境:ubuntu18.04.4

upstream:负载均衡配置模块

关于负载均衡的模式:

1.轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2.ip_hash : 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

3.fair : 此种算法可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配。(Nginx本身是不支持 fair的,如果需要使用这种调度算法,必须下载Nginx的 upstream_fair模块)。

4.url_hash : 按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器。后台服务器为缓存的时候效率。

5.weight 权重。释义:比如2太服务器,承受并发能力的不同,所配置的权重也不同。 比如A服务器可以承受2W并发量。B服务器只能承受1W并发量。那么A服务器路径配置权重就为2,B服务器为1。

6.max_fails 一个请求周期中请求的次数。如果达到设置次数将把该服务器标记为不可用。

7.fail_timeout 设置过期时间。(一般搭配max_fails:一个请求周期中每次请求达到设置过期时间,同时达到max_fails次数该服务器标记为不可用)。

8.down 表示当前的server暂时不参与负载均衡。

9.backup   备用服务器,当负载均衡中有其他服务器挂掉,此服务器会加入负载均衡。

 

配置代码模块:

1.轮询

upstream mysvr {
    server 192.168.11.10:8090 weight=1;
    server 192.168.11.11:8090 weight=2 max_fails=1 fail_timeout=10s;      
}

#同一个nginx配置文件中可配置多个upstream
#upstream mysvr1 {}
#upstream mysvr2 {}

#Shop客户端后台
server{
        listen 8080;
        server_name 192.168.16.91;
        location ^~/v1/ {
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Real-Port $remote_port;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                #反向代理配置 注意路径中的mysvr 是对应upstream配置。
                proxy_pass  http://mysvr/v1/api/;
        }
}

2.ip_hash

upstream mysvr {
    ip_hash; 
    server 192.168.11.10:8090 weight=1;
    server 192.168.11.11:8090 weight=2 max_fails=1 fail_timeout=10s;      
}

#同一个nginx配置文件中可配置多个upstream
#upstream mysvr1 {}
#upstream mysvr2 {}

#Shop客户端后台
server{
        listen 8080;
        server_name 192.168.16.91;
        location ^~/v1/ {
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Real-Port $remote_port;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                #反向代理配置 注意路径中的mysvr 是对应upstream配置。
                proxy_pass  http://mysvr/v1/api/;
        }
}

3.fair 

upstream mysvr {
    server 192.168.11.10:8090 weight=1;
    server 192.168.11.11:8090 weight=2 max_fails=1 fail_timeout=10s;  
    fair;    
}

#同一个nginx配置文件中可配置多个upstream
#upstream mysvr1 {}
#upstream mysvr2 {}

#Shop客户端后台
server{
        listen 8080;
        server_name 192.168.16.91;
        location ^~/v1/ {
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Real-Port $remote_port;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                #反向代理配置 注意路径中的mysvr 是对应upstream配置。
                proxy_pass  http://mysvr/v1/api/;
        }
}

4.url_hash 

upstream mysvr {
    hash $request_uri;
    server 192.168.11.10:8090 weight=1;
    server 192.168.11.11:8090 weight=2 max_fails=1 fail_timeout=10s;    
}

#同一个nginx配置文件中可配置多个upstream
#upstream mysvr1 {}
#upstream mysvr2 {}

#Shop客户端后台
server{
        listen 8080;
        server_name 192.168.16.91;
        location ^~/v1/ {
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Real-Port $remote_port;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                #反向代理配置 注意路径中的mysvr 是对应upstream配置。
                proxy_pass  http://mysvr/v1/api/;
        }
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值