Nginx初步了解

项目是部署在tomcat中,前端使用Nginx来进行请求转发,讨论问题时提到Nginx的负载均衡策略时一脸懵逼,因为之前使用的都是别人配置好的现成的Nginx+Keepalived,没有关注过细节,所以本博文打算初步了解下Nginx,后续有必要再做深入的研究。

Nginx = 反向代理 + 负载均衡

 

反向代理 vs 正向代理:

反向代理是在服务端发生的。服务端隐藏了真实的IP,客户端通过请求反向代理服务器,让反向代理服务器访问后端的服务器。

 

正向代理是在客户端发生的。比如VPN,VPN实在客户端的浏览器中设置的,浏览器先访问VPN地址,然后VPN将请求转发至对应的服务器。

 

 

Nginx的几种负载均衡策略

Nginx提供了多种负载均衡策略用于分发用户请求,它们分别是:

1.轮询(默认)

按顺序逐一将请求分配到后端服务器,如果服务器down掉,可以自动剔除。

upstream backend {

server 192.168.1.16;

server 192.168.1.17;

}

 

2.指定权重

主要用于后端服务器性能不一致的情况,给性能好的服务器配置高一点的权重,处理更多的请求

upstream backend {

server 192.168.1.16 weight=3;

server 192.168.1.17 weight=6;

}

 

3.ip_hash

请求按照访问ip的hash结果分配,这样每个客户端ip会访问后端固定的一台服务器,可以解决session共享问题。

upstream backend {

server 192.168.1.16:80;

server 192.168.1.17:81;

}

Session共享问题指的是,例如再进行用户验证的时候,验证码生产使用session1,验证码验证的时候是session2,他们是分布在两台不同的服务器,可能就会出现永远无法验证的问题。

 

4.fair(第三方提供)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

 

5.url_hash(第三方提供)

每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

 

Keepalived的作用:

Keepalived最初是为LVS集群设计的,监控LVS集群中各个节点的状态,如果发现有节点发生故障,可以将故障节点剔除。后来又加入了VRRP协议,解决路由单点故障问题,保证网络的不间断稳定运行。

所以Keepalived有两大用途:healthcheck(管理LVS,对LVS下面的节点进行检查) & failover(主备自动切换 -- VRRP协议实现)

 

Keepalived工作时只有主节点在工作,备节点是不工作的。故障时会切换到备节点工作;主节点修复之后,备节点会切回到主节点。

 

Nginx与LVS的区别:

两者的区别在于Nginx是基于第七层协议开发的,采用异步转发的原则,即在保持客户端链接的同时新起一个链接到负载均衡的服务端,等待服务端返回数据再返回给客户端。这么的好处是Nginx可以进行失败转移(failover),如果Nginix和后端某台服务器的链接不通畅,可以换一个链接,保证用户请求的稳定性。

LVS是基于第四层协议开发的,采用同步转发的原则,即LVS监听到端口有链接时,会直接redirect到后端的服务器,让服务端直接与客户端直接进行链接。这样做避免了Nginx单点大流量的带宽瓶颈问题,但是有一个弊端是如果请求失败了,LVS不会像Nginx一样做失败转移,请求直接就失败了

 

网络上看到现在都是Lvs+Nginx结合在一起使用的,前面使用LVS连接到后面的Nginx,这种混合使用的方式可以建立更好的链接。

 

 

 

 

参考:

https://www.jianshu.com/p/ae76c223c6ef(正向代理vs反向代理图解)

https://www.cnblogs.com/kakatadage/p/9995578.html(Nginx分布式集群)

https://www.cnblogs.com/1214804270hacker/p/9325150.html(6中Nginx负载均衡策略)

https://www.cnblogs.com/lbwniubi/articles/7978096.html(LVS+Nginx混合使用)

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值