一、nginx简介

Nginx是一款轻量级的 Web 服务器 / 反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个 BSD-like 协议下发行,可以在 UNIX、GNU/Linux、BSD、Mac OS X、Solaris,以及 Microsoft Windows 等操作系统中运行。Nginx是高性能的 HTTP 和反向代理的web服务器,处理高并发能力是十分强大的,能经受高负 载的考验,有报告表明能支持高达 5万个并发连接数。

其特点是占有内存少,并发能力强

可以做什么?

  • Nginx 作为 web 服务器
  • 正向代理
  • 反向代理
  • 负载均衡
  • 动静分离

二、nginx安装部署

环境:centos7

版本:1.23.3

地址:http://nginx.org/en/download.html

2.1 使用源码编译安装

安装

[root@localhost nginx]# wget http://nginx.org/download/nginx-1.23.3.tar.gz
--2023-02-09 22:46:37--  http://nginx.org/download/nginx-1.23.3.tar.gz
正在解析主机 nginx.org (nginx.org)... 52.58.199.22, 3.125.197.172, 2a05:d014:edb:5702::6, ...
正在连接 nginx.org (nginx.org)|52.58.199.22|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1108958 (1.1M) [application/octet-stream]
正在保存至: “nginx-1.23.3.tar.gz”

100%[===============================================================================================================================================================================================>] 1,108,958    510KB/s 用时 2.1s   

2023-02-09 22:47:11 (510 KB/s) - 已保存 “nginx-1.23.3.tar.gz” [1108958/1108958])

#解压安装包
[root@localhost nginx-1.23.3]# tar zxvf nginx-1.23.3.tar.gz

#查看安装包
[root@localhost nginx-1.23.3]# pwd
/home/nginx
[root@localhost nginx-1.23.3]# ls
nginx-1.23.3  nginx-1.23.3.tar.gz

# 编译
[root@localhost nginx-1.23.3]#  cd nginx-1.23.3

[root@localhost nginx-1.23.3]#  ./configure --prefix=/usr/local/nginx  # --prefix=/usr/local/nginx 指安装路径是/usr/local/nginx,

[root@localhost nginx-1.23.3]#  make
[root@localhost nginx-1.23.3]#  make install

启动

# 进入安装好的目录 /usr/local/nginx/sbin
[root@localhost nginx-1.23.3]# cd /usr/local/nginx/sbin
# 启动
[root@localhost sbin]# ./nginx

其他命令

./nginx					    # 启动
./nginx -s stop			 	#快速停止
./nginx -s quit 			#优雅关闭,在退出前完成已经接受的连接请求
./nginx -s reload 			#重新加载配置

访问

地址:http://192.168.2.193/

出现如下界面,则标志安装成功

nginx笔记(一)nginx基础教程_服务器

配置系统服务

配置服务脚本nginx.service(路径/usr/local/nginx/sbin)

[root@localhost nginx-1.23.3]# vi /usr/lib/systemd/system/nginx.service

脚本内容如下

[Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

重载系统服务

[root@localhost nginx-1.23.3]# systemctl daemon-reload

启动服务

[root@localhost nginx-1.23.3]# systemctl start nginx.service

设置开机启动

[root@localhost nginx-1.23.3]# systemctl enable nginx.service

访问测试

地址:http://192.168.2.193/

出现如下界面,则标志安装成功

nginx笔记(一)nginx基础教程_nginx_02

2.2 docker安装

下载nginx镜像

# 下载最新版Nginx镜像 (其实此命令就等同于 : docker pull nginx:latest )
docker pull nginx

创建Nginx配置文件

# 创建挂载目录
mkdir -p /apps/nginx/conf
mkdir -p /apps/nginx/log
mkdir -p /apps/nginx/html

将容器中的nginx.conf文件和conf.d文件夹复制到宿主机

# 生成容器
docker run --name minNginx -p 81:80 -d nginx
# 将容器nginx.conf文件复制到宿主机
docker cp minNginx:/etc/nginx/nginx.conf /apps/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
docker cp minNginx:/etc/nginx/conf.d /apps/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
docker cp minNginx:/usr/share/nginx/html /apps/nginx/

创建Nginx容器并运行

# 直接执行docker rm nginx或者以容器id方式关闭容器
# 找到nginx对应的容器id
docker ps -a
# 关闭该容器
docker stop minNginx
# 删除该容器
docker rm minNginx
 
# 或者删除正在运行的nginx容器
docker rm -f minNginx

配置文件

按需修改目录/app/nginx/conf下配置文件即可

启动

docker run \
-p 81:81 \
--name minNginx \
-v /apps/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /apps/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /apps/nginx/log:/var/log/nginx \
-v /apps/nginx/html:/usr/share/nginx/html \
-d nginx:latest

三、目录结构及运行原理

查看nginx目录

[root@localhost sbin]# tree /usr/local/nginx
/usr/local/nginx
├── client_body_temp
├── conf
│   ├── fastcgi.conf
│   ├── fastcgi.conf.default
│   ├── fastcgi_params
│   ├── fastcgi_params.default
│   ├── koi-utf
│   ├── koi-win
│   ├── mime.types
│   ├── mime.types.default
│   ├── nginx.conf
│   ├── nginx.conf.default
│   ├── scgi_params
│   ├── scgi_params.default
│   ├── uwsgi_params
│   ├── uwsgi_params.default
│   └── win-utf
├── fastcgi_temp
├── html
│   ├── 50x.html
│   └── index.html
├── logs
│   ├── access.log
│   ├── error.log
│   └── nginx.pid
├── proxy_temp
├── sbin
│   ├── nginx
│   └── nginx.old
├── scgi_temp
└── uwsgi_temp

9 directories, 22 files

主要目录说明:

sbin:可执行文件

conf:核心配置文件

html:静态页面

logs:存放日志信息

四、配置文件说明

初始化nginx.conf(删掉注释)

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

}

全局块

worker_processes  1;

这是 Nginx 服务器并发处理服务的关键配置,worker_processes 值越大,可以支持的并发处理量也越多,但是 会受到硬件、软件等设备的制约。

工作进程:数目。根据硬件调整,通常等于CPU数量或者2倍于CPU。

events块

events {
    worker_connections  1024;
}

每个 word process 可以同时支持的最大连接数等;

每个 work process 支持的最大连接数为 1024.

http

http是Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里

http 块也可以包括 http全局块、server 块。

http全局块
http全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等。
 
server 块
这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,
该技术的产生是为了 节省互联网服务器硬件成本。
 
每个 http 块可以包括多个 server 块,而每个 server 块就相当于一个虚拟主机。
而每个 server 块也分为全局 server 块,以及可以同时包含多个 locaton 块。
 
全局 server 块
最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或IP配置。
 
location 块
一个 server 块可以配置多个 location 块。
这块的主要作用是基于 Nginx 服务器接收到的请求字符串(例如 server_name/uri-string),
对虚拟主机名称 (也可以是IP 别名)之外的字符串(例如 前面的 /uri-string)进行匹配,
对特定的请求进行处理。 地址定向、数据缓 存和应答控制等功能,
还有许多第三方模块的配置也在这里进行。

五、虚拟主机配置方式

5.1 多IP配置

一台Linux服务器绑定两个ip:192.168.20.30、192.168.20.29

server {
    listen 80;     
    server_name 192.168.20.29;  
    location / {
				root /opt/demo1;
        index index.html;
    }
}
server {
    listen 80;
    server_name 192.168.20.30;
    location / {
        root /opt/demo2;
        index index.html;
    }
}

5.2 多端口配置

server {
    listen 80;
    server_name 192.168.20.29;
    location / {
        root /opt/demo1;
        index index.html;
    }
}
server {
    listen 81;
    server_name 192.168.20.29;
    location / {
        root /opt/demo2;
        index index.html;
    }
}

5.3 多域名配置

server {
    listen 80;
    server_name www.demo1.com;
    location / {
        root /opt/demo1;
        index index.html;
    }
}
server {
    listen 80;
    server_name www.demo2.com;
    location / {
        root /opt/demo2;
        index index.html;
    }
}

5.4 server_name匹配原则

1.完整匹配

server中可以配置多个域名,例如:

server_name  test.demo1.com  test.demo2.com;

2.通配符匹配

server_name  *.demo.com;

需要注意的是精确匹配的优先级大于通配符匹配和正则匹配

3.通配符结束匹配

server_name  test.demo.*;

4.正则匹配

server_name ~^www\d+\.example\.com$;

正则匹配格式,必须以~开头。如果开头没有~,则nginx认为是精确匹配。在逻辑上,需要添加^和$锚定符号。注意,正则匹配格式中.为正则元字符,如果需要匹配.,则需要反斜线转义。

如果正则匹配中含有{和}则需要双引号引用起来,避免nginx报错,如果没有加双引号,则nginx会报如下错误:directive "server_name" is not terminated by ";" in ...。

5.特殊匹配格式

server_name ""; 匹配Host请求头不存在的情况。

匹配顺序

1. 精确的名字
2. 以*号开头的最长通配符名称,例如 *.example.org
3. 以*号结尾的最长通配符名称,例如 mail.*
4. 第一个匹配的正则表达式(在配置文件中出现的顺序)
  1. 尽量使用精确匹配;
  2. 当定义大量server_name时或特别长的server_name时,需要在http级别调整server_names_hash_max_size和server_names_hash_bucket_size,否则nginx将无法启动。

六、反向代理

反向代理方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。

反向代理服务器通常有两种模型,一种是作为内容服务器的替身,另一种作为内容服务器集群的负载均衡器。

6.1 作为内容服务器的替身

配置通过访问跳转百度

server {
    listen 80;
    server_name 192.168.2.193;
    location / {
        proxy_pass http://www.atguigu.com/ ;
    }
}

测试访问:192.168.2.193

nginx笔记(一)nginx基础教程_服务器_03

6.2 作为内容服务器集群的负载均衡

#定义一组服务器
upstream httpds{
    server 192.168.2.191:80;
    server 192.168.8.192:80;
}

 server {
    listen 80;
    server_name 192.168.2.193;
    location / {
        proxy_pass http://httpds ;
    }
}

三种模式

轮询模式(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

weight权重模式:这种方式比较灵活,当后端服务器性能存在差异的时候,通过配置权重,可以让服务器的性能得到充分发挥,有效利用资源。

upstream httpds{
    server 192.168.8.191 weight=10;
    server 192.168.8.192 weight=1;
    # server 192.168.8.191 weight=10 down; #down表示不参与负载均衡
    # server 192.168.8.192 weight=10 backup; #backup表示是备用服务器,没有服务器可用的时候使用
}

ip_hash:如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器。每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session不能跨服务器的问题。

upstream httpds {
	server 192.168.8.191:8080;
	server 192.168.8.192:8081;
	ip_hash;
}
server {
	listen       80;
	server_name  localhost;
	location / {
		proxy_pass http://httpds;
	}
}

七、动静分离

7.1动静分离

为了提高网站的响应速度,减轻程序服务器(Tomcat,Jboss等)的负载,对于静态资源,如图片、js、css等文件,可以在反向代理服务器中进行缓存,这样浏览器在请求一个静态资源时,代理服务器就可以直接处理,而不用将请求转发给后端服务器。对于用户请求的动态文件,如servlet、jsp,则转发给Tomcat,Jboss服务器处理,即动态文件与静态文件的分离。

两种方式

一: 是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案;

二:就是动态跟静态文件混合在一起发布,通过nginx来分开。

动态资源代理

#配置如下
location / {
        proxy_pass 路径;
}

静态资源代理

#配置如下
location /{
    root静态资源路径;
    index默认访问路径下的什么资源;
    autoindex on;#表示展示静态资源全的全部内容,以列表的形式展开。
}

配置案例

#user  nobody;
worker_processes  1;



events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;


    server {
        listen       80;
        server_name  localhost;

        location / {
            proxy_pass http://192.168.2.191:8080;
        }
        # 静态资源配置
        location /images {
            root   /www/resources;
            index  index.html index.htm;
        }
        location /js {
            root   /www/resources;
            index  index.html index.htm;
        }
        location /css {
            root   /www/resources;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

}

实际使用中,三个匹配规则定义:

1、直接匹配网站根,通过域名访问网站首页比较频繁,使用这个会加速处理,比如说官网。

location = / {
    proxy_pass http://192.168.2.191:8080/; 
}

2、这里是直接转发给后端应用服务器了,也可以是一个静态首页。

location ^~ /static/ {
    root /webroot/static/;
}

location ~* \.(html|gif|jpg|jpeg|png|css|js|ico)$ {
    root /webroot/res/;
}

3、通用规则,用来转发动态请求到后端应用服务器。

location /api/ {
    proxy_pass http://192.168.2.191:8080/api/
}

7.2 URL Rewrite

rewrite是实现URL重写的关键指令,根据regex(正则表达式)部分内容,重定向到repacement,结尾是flag标记。

优点:掩藏真实的url以及url中可能暴露的参数,以及隐藏web使用的编程语言,提高安全性便于搜索引擎收录

缺点:降低效率,影响性能。如果项目是内网使用,比如公司内部软件,则没有必要配置。

效果:

实际地址:http://192.168.2.192/index.jsp?pageNum=2伪地址(访问):http://192.168.2.192/2.html

rewrite语法

rewrite是实现URL重写的关键指令,根据regex (正则表达式)部分内容,重定向到replacement,结尾是flag标记。

语法:
rewrite          <regex>         <replacement>         [flag];
关键字          正则                 替代内容                 flag标记


关键字:其中关键字不能改变
正则:perl兼容正则表达式语句进行规则匹配
替代内容:将正则匹配的内容替换成replacement
flag标记:rewrite支持的flag标记
rewrite参数的标签段位置:
        server,location,if
 
理解:
rewrite  ^  正则 $  书写转变的地址,真实的地址   转发的形式 (break ,rewrite,last,redirect ,percent )

例子:rewrite ^ /2.html $   /index.jsppageNum=2 break;
URLRewrite 的关键字  rewrite ,后面跟正则表达式,这正则表达式以 ^ 开头,然后以这个$ 结尾, 里边写正则, 后边写上这个我们想要转变的这个地址,这就是原来的这个真实地址

flag标记说明:
last         #本条规则匹配完成后,继续向下匹配新的location URI规则
break     #本条规则匹配完成即终止,不再匹配后面的任何规则
redirect   #返回302临时重定向,浏览器地址会显示跳转后的URL地址
permanent #返回301永久重定向,浏览器地址栏会显示跳转后的URL地址
redirect 和 perement 的区别
redirect 302  会返回的临时重定向 
perement  301  返回 永久冲定向。
这个 301 和 302 的区别,在我们实际给真实的用户,我们用户去适用的时候其实是没有任何区别的,它都会跳转,然后这个 URL 都会发生变化。这个临时重定向和永久重定向,这是给我们的这个网络爬虫给它来看的。

配置案例

访问http://localhost/2.html 通过转发返回http://192.168.2.191:8080/index.jsp?pageNum=2内容

#user  nobody;
worker_processes  1;



events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;


    server {
        listen       80;
        server_name  localhost;

        location / {
        		rewrite ^/2.html /index.jsp?pageNum=2 break
            proxy_pass http://192.168.2.191:8080;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

}

也可以通过正则表达式灵活传参,如下:

#user  nobody;
worker_processes  1;



events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;


    server {
        listen       80;
        server_name  localhost;

        location / {
        		rewrite ^/([0-9]+).html$ /index.jsp?pageNum=$1 break
            proxy_pass http://192.168.2.191:8080;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

}

说明:rewrite ^/([0-9]+).html$ /index.jsp?pageNum=$1 break

^/([0-9]+).html$:匹配所有数字.html;

$1:标识第一个匹配的变量值。

7.3 URL rewrite+负载均衡

#定义一组服务器
upstream httpds{
    server 192.168.2.191:80;
    server 192.168.8.192:80;
}

 server {
    listen 80;
    server_name 192.168.2.193;
    location / {
        rewrite ^/([0-9]+).html$ /index.jsp?pageNum=$1 break
        proxy_pass http://httpds ;
    }
}

八、防盗链

盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。

      valid_referers 指令,配置是否允许 referer 头部以及允许哪些 referer 访问。 192.168.2.193不是ip而是域名(去掉http:// 前缀)

location ^~/images/ {
            valid_referers 192.168.2.193; 
            if ($invalid_referer) {  # 注意这里if后要加空格
                return 403; ## 返回错误码
            }
            
            root   /www/resources;
        }

说明:

none:允许没有 referer 信息的请求访问,即直接通过url访问。
blocked:请求头Referer字段不为空(即存在Referer),但是值可以为空(值被代理或者防火墙删除了),并且允许refer不以“http://”或“https://”开头,通俗点说就是允许“http://”或"https//"以外的请求。**
server_names:若 referer 中站点域名与 server_name 中本机域名某个匹配,则允许该请求访问
其他字符串类型:检测referer与字符串是否匹配,如果匹配则允许访问,可以采用通配符*
正则表达式:若 referer 的值匹配上了正则,就允许访问
invalid_referer 变量:允许访问时变量值为空,不允许访问时变量值为 1。

示例

server {
    server_name ;
    listen 80;

    error_log logs/myerror.log debug;
    root html;
    location / {
        valid_referers none server_names
                       *. /nginx/;
        if ($invalid_referer) {
                return 403; # 返回错误码
        }
        return 200 'valid\n';
    }
}

# none:表示没有 referer 的可以访问
# server_names:表示本机 server_name 也就是  可以访问
# *.:匹配上了正则的可以访问
# /nginx/:该页面发起的请求可以访问

九、keepalived

9.1 keepalived简介

keepalived观察其名可知,保持存活,在网络里面就是保持在线,也就是所谓的高可用热备,是集群管理中轻量级的保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生

9.2 keepalived作用

keepalived主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现。keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。

9.3 安装

9.3.1 yum方式安装

每台服务器都需要安装,例如

主:192.168.2.191

从:192.168.2.192

yum install -y keepalived

安装后,配置文件目录如下:

/etc/keepalived/keepalived.conf
修改配置文件

keepalived.conf

global_defs { 
    # 路由id:当前安装keepalived的节点主机标识符,保证全局唯一 
    router_id keep_171 
} 

vrrp_instance VI_1 { #当前节点所属的虚拟路由的名称
    # 表示状态是MASTER主机还是备用机BACKUP 
    state MASTER 
    # 该实例绑定的网卡 
    interface eth0
    # 保证主备节点一致即可 
    virtual_router_id 51 
    # 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选 
    priority 100 
    # 主备之间同步检查时间间隔,单位秒 
    advert_int 2 
    # 认证权限密码,防止非法节点进入 
    authentication { 
        auth_type PASS 
        auth_pass 1111 
    } 
    # 虚拟出来的ip,可以有多个(vip) 
    virtual_ipaddress { 
        192.168.2.161 
    }
}

正常情况修改 state、interface、virtual_ipaddress即可。

具体配置如下

主:192.168.2.191

global_defs { 
    # 路由id:当前安装keepalived的节点主机标识符,保证全局唯一 
    router_id keep_191 
} 

vrrp_instance VI_1 { #当前节点所属的虚拟路由的名称
    # 表示状态是MASTER主机还是备用机BACKUP 
    state MASTER 
    # 该实例绑定的网卡 
    interface eth33
    # 保证主备节点一致即可 
    virtual_router_id 51 
    # 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选 
    priority 100 
    # 主备之间同步检查时间间隔,单位秒 
    advert_int 2 
    # 认证权限密码,防止非法节点进入 
    authentication { 
        auth_type PASS 
        auth_pass 1111 
    } 
    # 虚拟出来的ip,可以有多个(vip) 
    virtual_ipaddress { 
        192.168.2.161 
    }
}

从:192.168.2.191

global_defs { 
    # 路由id:当前安装keepalived的节点主机标识符,保证全局唯一 
    router_id keep_192 
} 

vrrp_instance VI_1 { #当前节点所属的虚拟路由的名称
    # 表示状态是MASTER主机还是备用机BACKUP 
    state BACKUP 
    # 该实例绑定的网卡 
    interface eth33
    # 保证主备节点一致即可 
    virtual_router_id 51 
    # 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选 
    priority 50 
    # 主备之间同步检查时间间隔,单位秒 
    advert_int 2 
    # 认证权限密码,防止非法节点进入 
    authentication { 
        auth_type PASS 
        auth_pass 1111 
    } 
    # 虚拟出来的ip,可以有多个(vip) 
    virtual_ipaddress { 
        192.168.2.161 
    }
}
keepalived命令

启动keepalived

systemctl start keepalived

重启keepalived

systemctl restart keepalived

查看状态

systemctl status keepalived
测试
ping 192.168.2.161

ping通即可

其他测试:停掉192.169.2.191主机,192.168.2.161IP漂移到192.169.2.192

十、配置https证书

10.1 在线证书申请

此处以阿里云为例

nginx笔记(一)nginx基础教程_html_04

10.2 证书下载

nginx笔记(一)nginx基础教程_nginx_05

选择nginx证书下载,下载后得到两个文件,如下:

nginx笔记(一)nginx基础教程_服务器_06

10.3 证书安装

server{
	listen 443 ssl;
	server_name localhost;
	ssl_certificate .pem文件全路径;
	ssl_certificate_key .key文件路径
}