Nginx是一种WEB服务器,类似于Apache;
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器;其特点是占有内存少,并发能力强。
主要作用是:
多个请求,到Nginx服务器,经过Nginx通过负载均衡算法分发到各个应用服务器,实现反向代理和负载均衡。
1.反向代理;2.负载均衡
Nginx负载均衡算法:
1.weight轮询算法(默认):将请求按照顺序依次分别分配到不同的后端服务器,如果某一台后端服务器宕机,Nginx会自动将该服务器剔除出队列,请求受理情况不会受到影响。 这种方式下,可以给不同的后端服务器设置一个权重值(weight),用于调整不同的服务器上请求的分配率;权重数据越大,被分配到请求的几率越大;该权重值,主要是针对实际工作环境中不同的后端服务器硬件配置进行调整的。
2.ip hash算法:每个请求根据发起客户端的ip的hash结果进行匹配,固定ip地址总会访问到同一个后端服务器,这也在一定程度上解决了集群部署环境下session共享的问题。
3.fair算法:动态的根据后端服务器的请求处理到响应的时间进行均衡分配,效率高的后端服务器分配到的几率高;结合了轮询和ip hash的优点的一种调度算法。注意:Nginx默认不支持fair算法,需要安装upstream_fair模块。
4.url hash算法:按照访问的url的hash结果分配请求,每个请求的url会指向后端固定的某个服务器,可以在Nginx作为静态服务器的情况下提高缓存效率。注意:Nginx默认不支持这种算法,需要安装Nginx的hash软件包。