Nginx学习(三)

您所在的位置:网站首页 nginx是一种 Nginx学习(三)

Nginx学习(三)

2023-04-18 00:04| 来源: 网络整理| 查看: 265

7 实例:动静分离****

1 什么是动静分离****

 

 

 

通过 location 指定不同的后缀名实现不同的请求转发。通过 expires 参数设置,可以使浏览器缓存过期时间,减少与服务器之前的请求和流量。具体 Expires 定义:是给一个资源设定一个过期时间,也就是说无需去服务端验证,直接通过浏览器自身确认是否过期即可,所以不会产生额外的流量。此种方法非常适合不经常变动的资源。(如果经常更新的文件,不建议使用 Expires 来缓存),我这里设置 3d,表示在这 3 天之内访问这个 URL,发送一个请求,比对服务器该文件最后更新时间没有变化,则不会从服务器抓取,返回状态码 304,如果有修改,则直接从服务器重新下载,返回状态码 200。

2、准备工作****

 

(1)在 liunx 系统中准备静态资源,用于进行访问

 

 

 

3、具体配置****

 

(1)在 nginx 配置文件中进行配置

 

 

4、最终测试****

 

(1)浏览器中输入地址****

 

http://192.168.17.129/image/01.jpg

因为配置文件 autoindex on

(2)在浏览器地址栏输入地址****

 

http://192.168.17.129/www/a.html

 

8 实例:高可用****

****

1、环境准备****

(1)需要两台 nginx 服务器

(2)需要 keepalived

(3)需要虚拟 ip

2、配置高可用的准备工作****

(1)需要两台服务器 192.168.17.129 和 192.168.17.131

(2)在两台服务器安装 nginx

(3)在两台服务器安装 keepalived

3、在两台服务器安装 keepalived****

(1)使用 yum 命令进行安装

Yum ****–y install keepalived

****

(2)安装之后,在 etc 里面生成目录 keepalived,有文件 keepalived.conf

4、完成高可用配置(主从配置)

(1)修改/etc/keepalived/keepalivec.conf 配置文件****

! Configuration File for keepalived

global_defs {

   notification_email {

  

   }

   notification_email_from

   smtp_server 192.168.200.1

   smtp_connect_timeout 30

   router_id LVS_DEVEL

   vrrp_skip_check_adv_addr

   vrrp_strict

   vrrp_garp_interval 0

   vrrp_gna_interval 0

}

 

vrrp_instance VI_1 {

    state MASTER

    interface eth0

    virtual_router_id 51

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.200.16

        192.168.200.17

        192.168.200.18

    }

}

 

virtual_server 192.168.200.100 443 {

    delay_loop 6

    lb_algo rr

    lb_kind NAT

    persistence_timeout 50

    protocol TCP

 

    real_server 192.168.201.100 443 {

        weight 1

        SSL_GET {

            url {

              path /

              digest ff20ad2481f97b1754ef3e12ecd3a9cc

            }

            url {

              path /mrtg/

              digest 9b3a0c85a887a256d6939da88aabd8cd

            }

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

}

 

修改部分:

 

vrrp_script chk_http_port {

script "/usr/local/src/nginx_check.sh"

interval 2 #(检测脚本执行的间隔)

Weight 2

}

vrrp_instance VI_1 {

state BACKUP

interface ens33

virtual_router_id 51   # 主、备机的 virtual_router_id 必须相同

priority 90

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.17.50 // VRRP H 虚拟地址

}

}

 

(2)在/usr/local/src 添加检测脚本****

#!/bin/bash

A=ps -C nginx –no-header |wc -l

if [ $A -eq 0 ];then

/usr/local/nginx/sbin/nginx

sleep 2

if [ ps -C nginx --no-header |wc -l -eq 0 ];then

killall keepalived

fi

fi

(3)把两台服务器上 nginx 和 keepalived 启动****

启动 nginx:./nginx

启动 keepalived:systemctl start keepalived.service

5、最终测试****

 

(1)在浏览器地址栏输入 虚拟 ip 地址 192.168.17.50

 

9 Nginx原理****

9.1 master和worker****

****

9.2 worker是如何工作的****

 

 

 

9.3 一个 master 和多个 woker 有好处****

(1)可以使用 nginx –s reload 热部署,利用 nginx 进行热部署操作

(2)每个 woker 是独立的进程,如果有其中的一个 woker 出现问题,其他 woker 独立的,继续进行争抢,实现请求过程,不会造成服务中断

9.4 设置多少个worker合适****

worker 数和服务器的 cpu 数相等是最为适宜的****

9.5 连接数 worker_connection****

第一个:发送请求,占用了 woker 的几个连接数?

答案:2 或者 4 个

第二个:nginx 有一个 master,有四个 woker,每个 woker 支持最大的连接数 1024,支持的最大并发数是多少?

普通的静态访问最大并发数是: worker_connections * worker_processes /2,

而如果是 HTTP 作 为反向代理来说,最大并发数量应该是 worker_connections * worker_processes/4。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3