Nginx服务器

Nginx

Nginx是什么?
Nginx 是一款轻量级的 HTTP 服务器,用于服务端的 反向代理负载均衡

正向代理:代理浏览器访问服务器
反向代理:代理服务器处理浏览器的请求
反向代理的好处:
浏览器只知道反向代理服务器的ip地址,不知道真实的服务器的ip地址,可以起到保护服务器不被攻击的作用。

除此之外,Nginx还带有健康检查功能,会定期向集群里的所有服务器发送健康检查请求,来检查集群中是否有服务器处于异常状态。异常机器就不会得到请求转发。
好处是:保证客户端访问的稳定性。

Nginx还有动静分离的功能,将接收到的请求分为动态请求和静态请求
只有动态请求才转发给服务器。而静态请求直接从 nginx 服务器所设定的路径去取对应的资源
好处是:可以减轻后端服务器压力,提高静态资源访问速度

负载均衡策略

在这里插入图片描述

轮询

默认的负载均衡策略。每个请求会按时间顺序逐一分配到不同的后端服务器。
特点
在轮询中,如果服务器down掉了,会自动剔除该服务器。
此策略适合多台服务器配置相当时使用。

参数

参数含义
fail_timeout和max_fails在fail_timeout参数设置的时间内最大失败次数,如果在这个时间内,针对该服务器的请求都失败了max_fails 次,那么认为该服务器会被认为是停机了
fail_time服务器会被认为停机的时间长度,默认为10s。
backup标记该服务器为备用服务器。当主服务器停止时,请求会被发送到它这里
down标记服务器永久停机了

weight

权重方式,在轮询策略的基础上指定轮询的几率
例子如下:

#动态服务器组
upstream dynamic_zuoyu {
    server localhost:8080   weight=2;  #tomcat 7.0
    server localhost:8081;  #tomcat 8.0
    server localhost:8082   backup;  #tomcat 8.5
    server localhost:8083   max_fails=3 fail_timeout=20s;  #tomcat 9.0
}

在该例子中,weight参数用于指定轮询几率,weight的默认值为1
weight的数值与访问比率成正比,比如Tomcat 7.0被访问的几率为其他服务器的两倍。
注意
权重越高分配到需要处理的请求越多。
此策略可以与least_conn和ip_hash结合使用。
此策略比较适合服务器的硬件配置差别比较大的情况。

ip_hash

指定负载均衡器按照基于客户端IP的分配方式,这个方法确保了相同的客户端的请求一直发送到相同的服务器,可以解决session不能跨服务器的问题。

注意:
此策略适合有状态服务,比如session。
当有服务器需要剔除,必须手动down掉。

least_conn

把请求转发给连接数较少的后端服务器。
此负载均衡策略适合请求处理时间长短不一造成服务器过载的情况。

Nginx底层原理:IO多路复用

IO多路复用是一种同步IO模型,实现一个线程监视多个文件描述符fd;一旦某个文件描述符fd就绪,就能够通知应用程序进行相应的读写操作;没有fd就绪时会阻塞应用程序,交出cpu

通过这种方式,Nginx 就完全消除了 I/O 阻塞,把 CPU 利用得“满满当当”,又因为网络收发并不会消耗太多 CPU 计算能力,也不需要切换进程、线程,所以整体的 CPU 负载是相当低的。

epoll 还有一个特点,大量的连接管理工作都是在操作系统内核里做的,这就减轻了应用程序的负担,所以 Nginx 可以为每个连接只分配很小的内存维护状态,即使有几十万的并发连接也只会消耗几百 M 内存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值