Nginx负载均衡

目录

Nginx简介

基于反向代理的代理的功能,Nginx作为负载均衡的理由:

正向代理:

反向代理:

 反向代理作用:

负载均衡原理:

Ngnix负载均衡四种配置方案:

负载均衡配置:


Nginx简介

Nginx(发音同engine x) 是一款轻量级的web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD协议下发行,可以在UNIX、GNU/Linux、BSD、Mac OS X、Solaris以及Microsoft Windows等操作系统中运行。

Nginx由俄国的程序设计师lgor Sysoev所开发,最初供俄国大型的入口网站及搜索引擎Rambler(俄文Pam6πep)使用。其特点是占有内存少,并发能力强(用于解决C10k问题),事实上Nginx的并发能力确实在同类型的网页服务器上表现较好。

 Nginx作为一款强大的Web服务器软件,具有高性能、高并发和低内存占用的特点。此外,它也能提供强大的反向代理功能。俄罗斯大约有超过20%的虚拟主机采用Ngnix作为反向代理服务器。在国内也有阿里、腾讯、新浪、网易等多家网址在使用Ngnix作为反向代理服务器。据Netcraft统计,世界上最繁忙的网站中,有11.48%使用Ngnix作为其服务器或者代理服务器。

基于反向代理的代理的功能,Nginx作为负载均衡的理由:

高并发连接

内存消耗少

配置文件非常简单

成本低廉

支持Rewrite重写规则

内置的健康检查功能

节省带宽

稳定性高

高并发连接:

NGINX结合采用多进程和IO多路复用的结构处理并发客户请求。非常高效的处理

官方测试能够支撑C50k并发连接,在实际生产环境中可以跑到2-3万并发连接网络请求

内存消耗少:

1、Ngnix设计了大量的自带的数据结构,比如字符串的数据结构,就是直接用c语言的数组。数据结构非常紧凑。

2、数据拷贝、网络连接、服务器的请求处理,中间的数据拷贝采用了零拷贝的形式,进一步的提高了内存内部数据的流转。

在3万并发连接下,开启的10个nginx进程才消耗150M内存(15M*10=150M) 

配置文件非常简单:

仅一个配置文件,配置相关各种指令即可,非常简单。有很多明确的指令,不同的指令有着不同的功能。不同的指令工作在Ngnix不同的业务周期内,来进行配置。

成本低廉:

开源免费的,nginx为开源软件,可以免费使用。而购买F5 BIG-IP、NetScaler等硬件负载均衡交换机则需要十多万至几十万人民币

支持Rewrite重写规则:

可以根据域名、URL的不同,将HTTP请求分到不同的后端服务器群组

内置的健康检查功能:

如果Nginx Proxy后端的某台Web服务器宕机了,不会影响前端访问。

节省带宽:

支持GZIP压缩,可以添加浏览器本地缓存的Header头

稳定性高:

用于反向代理,宕机的概率微乎其微

以上功能可以感觉高,Ngnix设计的非常精炼,内存使用高效,它的网络模型采用

正向代理:

类似一个跳板机,代理访问外部资源。

客户端你的网络无法访问互联网上的某个网站。可以配置一个正向代理服务器,客户端请求先发到到正向代理服务器上,正向代理服务器转发请求到互联网上的网站,网站相应请求给正向代理服务器,正向代理服务器再转发响应给客户端。(所以说正向代理是朝外的,访问外部互联网的)

反向代理:

 实际方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到结果返回给internet上请求连接的客户端,此时代理服务器对外就变现为一个服务器。

方向代理服务器提供一个入口,Web服务器无法直接访问。 

 反向代理作用:

 1、保证内网安全,可以使用反向代理功能提供我WAF功能,阻止Web攻击。大型网站,通常将反向代理服务器作为公网地址,Web服务器是内网。

2、负载均衡,通过反向代理服务器来优化网站的负载。

负载均衡原理:

负载均衡,字面理解可以解释N台服务器平均分担负载,不会应为某台服务器负载高宕机和某台服务器限制的情况。那么负载均衡的前提就是要2台以上服务器才能实现。

Ngnix负载均衡四种配置方案:

1、轮询,Round Robin。

根据Ngnix配置文件中的顺序,依次将客户端的Web请求分发到不同的后端服务器上。

2、最少连接Last_conn

Web请求会被转发到连接数最少的服务器上。

3、IP地址哈希ip_hash

前面两种负载均衡的方案中,同一客户端连续的Web请求可能会被分发到不同的后端服务器上进行处理,因此如果涉及到回话Session,那么回话比较复杂。常见的是基于数据库的回话持久化。要克服上面的难题,可以使用基于IP地址Hash的负载均衡方案。这样的话,同一客户端的Web请求会被分发到同一后端服务器上进行处理。

4、基于权重weight

基于权重的负载均衡既Weight Load balancing,这种方式下,我们可以配置Ngnix把请求更多的分发到高配置的后端服务器上,把相对较少的请求分发到低配置服务器上。

负载均衡配置:

 

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值