目录
一、Nginx基础知识
1.1 Nginx简介
一款轻量级的 Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。
- Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
- 其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好
1.2 Nginx功能
单点服务器早已无法承载上万个乃至数十万个用户的持续访问。比如一台Tomcat服务器在理想状态下只能够可以承受住2000个左右的并发量,为了解决这个问题,就需要多台Tomcat服务器来进行负载均衡。
Nginx就是其中的一种解决方案,当用户访问网站时,Nginx拦截到这个访问请求,并将其通过轮询的方式均匀地分配到不同的服务器上。
在Nginx中有一种ip_hash策略,它可以获取到用户的真实IP,计算出hash值来选择服务器,这也是一种优秀的负载均衡方式。
1.3 正向代理与反向代理
(1)正向代理,就是客户端将自己的请求率先发给代理服务器,通过代理服务器将请求转发给服务器。正向代理就是一个人发送一个请求直接就到达了目标的服务器。
(2)反向代理:反向代理与正向代理不同,正向代理是代理了客户端,而反向代理则是代理服务器端。在有多台服务器分布的情况下,为了能让客户端访问到的IP地址都为同一个网站,就需要使用反向代理。
反方代理就是请求统一被Nginx接收,nginx反向代理服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理了。
1.4 负载均衡
由于不同服务器的配置不同,为了让性能高的服务器分配到更多的请求,便引入了负载均衡的概念。
Nginx的负载均衡方式可以有很多种,如加权轮询(默认)、IP哈希、url哈希等。
1.4.1 加权轮询
加权轮询,也就是通过给服务器添加各自的权重值,Nginx通过权重来进行请求的分配,权重越高接收到的请求数量越多,反之越少:
上图配置了三台服务器,在加权轮询的模式下,6次不同的请求中,权重为3的服务器将会分配到3次