一、什么是Nginx?
打开控制台,随便看一个请求,然后看到Headers请求头的Server字段,显示Tengine,本质上底层也是nginx
nginx
Nginx(engine x)是一个高性能的HTTP和反向代理服务器,具有内存少,高并发能力强的特点。
- 处理静态文件,索引文件及自动索引,打开文件描述符缓冲
-
无缓存的反向代理加速,简单的负载均衡和容错
应用层
Nginx是应用在应用层的。
二、Nginx负载均衡原理
Nginx负载均衡原理请求先经过nginx,由nginx根据一定的分配规则进行请求的分发,将请求发送到不同的服务器上,实现分流。
同时对于静态文件,不是从服务器中进行返回,而是由nginx进行缓存,每次请求完数据之后由nginx返回静态数据,服务端只负责业务数据的返回。
三、负载均衡配置
负载均衡简单配置当请求是一个“/”的时候,进入
location /
的监听块中,注意最后一行:proxy_pass http://web1;
这行代码就是将请求分发给上面定义的upstream web1
中的服务中去的。通过这些,实现nginx的请求转发和分流当进行定义分流转发的时候,相关配置信息的含义:
upstream 参数
动静分离
以上这段代码是进行静态资源做缓存的。当匹配到指定的文件后缀的时候,就去里面配置的root节点下的目录下去寻找指定的资源
四、Nginx高可用
高可用集群指当某一个节点或服务器发生故障时,另一个节点能够自动且立即向外提供服务。高可用集群是用于单个节点发生故障时,能够自动将资源、服务进行切换。这样可以保证服务一直在线。
在这个过程中,对于客户端来说是透明的。
高可用流程图:
高可用流程图
五、Nginx高可用设置步骤
- 需要两台nginx服务器:
192.168.42.111
和192.168.42.119
- 在两台服务器上安装keepalived
- 配置
192.168.42.111
的keepalived.conf(主节点)
image.png
注意最后,有一个虚拟ip:192.168.42.200
在第二个节点中,每过两秒钟去执行一次指定的脚本文件.sh去检测nginx是否健康。
脚本文件如下:
脚本文件
这段代码的意思是:检查nginx服务的进程数,如果进程数为0,则重启nginx,如果重启之后还是为0,则停止当前机器的keepalived。 - 从节点也是一样,只是配置的是BACKUP节点(从节点)
网友评论