首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Nginx 正反向代理基础详解

1.什么是Nginx

Nginx是一款轻量级的Web服务器,也是一款轻量级的反向代理服务器

2.Nginx最常做的事情

1.作为http反向代理服务器

现实生活中的代理

反向代理:客户要买某品牌的东西,去了某平牌的专卖店,此专卖为一个代理角色,这个品牌为被代理角色,这个客户为代理目标。

正向代理:

网络传输中的代理:

正向代理:某国网站设置防火墙官网不然访问其他国家的一些网站,这个时候有有人搞了一个代理服务器,可能设置国外,我们通过给这个代理服务器发送请求告诉他client要访问那个网站,正向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;

反向代理:一个大型网站,将业务进行了拆分把业务放在不同的机器上去,进行分布式部署。此时客户端来个请求,首先进入的是nginx,nginx按照不同的规则将请求转发到某一台服务器上进行处理。方向代理的主要特点是客户端明确请求,由nginx处理,nginx转发到哪一个服务器处理,客户端是不知道。方向代理隐藏了服务端处理的信息。

2.作为负载均衡服务器

定义:将服务器接收到的请求按照规则分发的过程,称为负载均衡。

.nginx 下几个负载均衡机制:

1.weight轮询(默认):接收到的请求按照顺序逐一分配到不同的后端服务器,即使在使用过程中,某一台后端服务器宕机,nginx会自动将该服务器剔除出队列,请求受理情况不会受到任何影响。 这种方式下,可以给不同的后端服务器设置一个权重值(weight),用于调整不同的服务器上请求的分配率;权重数据越大,被分配到请求的几率越大;该权重值,主要是针对实际工作环境中不同的后端服务器硬件配置进行调整的。

2.ip_hash:每个请求按照发起客户端的ip的hash结果进行匹配,这样的算法下一个固定ip地址的客户端总会访问到同一个后端服务器,这也在一定程度上解决了集群部署环境下session共享的问题。

注意:请注意:这个方法本质还是轮询,而且由于客户端的ip可能是不断变化的,比如动态ip,代理,翻墙等等,因此ip_hash并不能完全保证同一个客户端总是由同一

个服务器来处理。因此不能测地结局session共享的问题。

第三方解决方案

1.fair:智能调整调度算法,动态的根据后端服务器的请求处理到响应的时间进行均衡分配,响应时间短处理效率高的服务器分配到请求的概率高,响应时间长处理效率低的服务器分配到的请求少;结合了前两者的优点的一种调度算法。需安装upstream_fair模块。

2.url_hash:按照访问的url的hash结果分配请求,每个请求的url会指向后端固定的某个服务器,可以在nginx作为静态服务器的情况下提高缓存效率。同样要注意nginx默认不支持这种调度算法,需要安装nginx的hash软件包。

3.特点

稳定、高性能、资源占用少、功能强悍、模块结构化、支持热部署。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180321A1R3VT00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券