一、Nginx概述

73 阅读2分钟

一、什么是Nginx?

打开控制台,随便看一个请求,然后看到Headers请求头的Server字段,显示Tengine,本质上底层也是nginx

\

15200008-bb1c1e2f812cb28b.png

nginx

\

Nginx(engine x)是一个高性能的HTTP和反向代理服务器,具有内存少,高并发能力强的特点。

  • 处理静态文件,索引文件及自动索引,打开文件描述符缓冲

  • 无缓存的反向代理加速,简单的负载均衡和容错

    \

    15200008-64151cf16d98f31c.png

    应用层

    \

    Nginx是应用在应用层的。

二、Nginx负载均衡原理

15200008-411e07ee0e447bc5.png

Nginx负载均衡原理

\

请求先经过nginx,由nginx根据一定的分配规则进行请求的分发,将请求发送到不同的服务器上,实现分流。
同时对于静态文件,不是从服务器中进行返回,而是由nginx进行缓存,每次请求完数据之后由nginx返回静态数据,服务端只负责业务数据的返回。

三、负载均衡配置

15200008-61b032f678ec4118.png

负载均衡简单配置


当请求是一个“/”的时候,进入 location /的监听块中,注意最后一行: proxy_pass http://web1;这行代码就是将请求分发给上面定义的 upstream web1中的服务中去的。通过这些,实现nginx的请求转发和分流
当进行定义分流转发的时候,相关配置信息的含义:\

15200008-358dfb913bd5dbb9.png

upstream 参数

\

15200008-25c5bf739afeb107.png

动静分离


以上这段代码是进行静态资源做缓存的。当匹配到指定的文件后缀的时候,就去里面配置的root节点下的目录下去寻找指定的资源

四、Nginx高可用

高可用集群指当某一个节点或服务器发生故障时,另一个节点能够自动且立即向外提供服务。高可用集群是用于单个节点发生故障时,能够自动将资源、服务进行切换。这样可以保证服务一直在线。
在这个过程中,对于客户端来说是透明的。
高可用流程图:

\

15200008-5ef70423033f1ce3.png

高可用流程图

五、Nginx高可用设置步骤

  • 需要两台nginx服务器:192.168.42.111192.168.42.119

  • 在两台服务器上安装keepalived

  • 配置192.168.42.111的keepalived.conf(主节点)\

    15200008-0f8e5676bcb64cc6.png

    image.png


    注意最后,有一个虚拟ip:192.168.42.200
    在第二个节点中,每过两秒钟去执行一次指定的脚本文件.sh去检测nginx是否健康。
    脚本文件如下:\

    15200008-b546e11c7326cb37.png

    脚本文件


    这段代码的意思是:检查nginx服务的进程数,如果进程数为0,则重启nginx,如果重启之后还是为0,则停止当前机器的keepalived。

  • 从节点也是一样,只是配置的是BACKUP节点(从节点)