Nginx的反向代理和负载均衡

本文介绍了Nginx的反向代理概念,包括完整匹配、通配符匹配和正则匹配等方法。接着详细讲解了负载均衡的策略,如轮询、权重轮询、IP_hash、url_hash和least_conn,以及如何实现无状态回话,如使用单独的session服务器或token机制。
摘要由CSDN通过智能技术生成

Nginx 反向代理和负载均衡



前言

记录一下自己学习nginx的反向代理和负载均衡的内容。


一、反向代理

1.什么叫反向代理?
答:其实反向代理与正向代理的流程一致,都是用户通过nginx(网关)去访问外网或服务器。区别在于中间的网关是你自己提供的(你知道它存在),还是其他人提供的(你不知道它存在,仅认为你输入的IP地址就是真实的IP地址)。
在这里插入图片描述
2.反向代理有哪些匹配方式?

  • 完整匹配-将完整的确定的IP地址写上。
  • 通配符匹配-将不完整的IP地址前面或后面用通配符补充,域名也是如此。例:*.baidu.com:匹配所有以baidu.com结尾的域名。
  • 正则匹配-用正则表达式来表示IP或域名。

二、负载均衡

1.什么是负载均衡?

答:现如今的服务端为了防止服务器出现未知错误而宕机,提供同一服务的机器绝不止一台。每一台服务器的配置和已经使用的资源可能不一样。那么用户的请求到来时,决定由哪一台服务器来进行响应就是负载均衡要做的事。
在这里插入图片描述

2.一般的负载均衡策略

  • 轮询:这是最常用的策略。思想也很简单,为了让每一台服务器均分到用户的请求,当前服务器接到请求后就由下一台服务器来处理新的请求。缺点:无法回话保持,因为服务器端下发到客户端的cookie和服务器端存储的session不一致。造成每次访问都需要重新认证。
  • 权重轮询:在轮询的基础上添加了权重的概念。因为每一台服务器的硬件配置可能不一样,那么它们能够同时处理请求的能力也就不一样。所以对配置比较好的服务器设置更高的权重,以此让它处理更多的请求。
  • IP_hash:通过一个hash函数来定向访问固定的服务器。key是用户的IP地址,值就是服务器的IP地址。优点:这种方式理论上解决了轮询的缺点,可以保持回话。缺点:一般用户都是通过DHCP的方式获取到IP地址的。一旦重新连接,IP地址就会更换。所以现实中用不上。
  • url_hash:定向流量转发。将key改成完整的url,不同的url对应不同的服务器。缺点:仍然没有实现回话保持。
  • least_conn:由服务器当前连接到的客户端的数量来决定。哪一台服务器连接数少,就选择那一台。缺点:一般来说,造成服务器之间连接数不一致是因为我们设置了权重,连接数少的服务器可能不适合连接太多的客户端。那么least_conn的策略就相冲突了。还有就是不支持动态上下线服务器。

3.无状态回话

1.什么是无状态回话?
答:用户登入服务器后,无论是换IP地址,还是切换了url,一个新请求到来时都不会让用户重新登陆。
2.怎样实现无状态回话?
答:最简单的方式是单独拿出一台服务器来存储session。当用户获得认证后,所有服务器就将生成的唯一session存入一台服务器中,当有用户来访问时,去向这台服务器获取session,然后验证这用户是不是第一次登陆。这台服务器在nginx中一般是redies。
还有一种方式是token下发。用一台服务器来专门进行权限认证,然后生成唯一的加密token,并将它返回给客户端。服务器端则是存储token的解密方式。每当用户访问时,服务器端就会获得这个token,如果解开了,就说明认证成功了。


总结

以上就是今天要讲的内容,本文仅仅简单介绍了nginx的反向代理和负载均衡,供大家了解一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值