Linux下搭建nginx服务
1.nginx介绍:
- Nginx 是开源、高性能、高可靠的 Web 和反向代理服务器,而且支持热部署,几乎可以做到 7 * 24小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。
- 性能是 Nginx 最重要的考量,其占用内存少、并发能力强、能支持高达 5w 个并发连接数,最重要的是,Nginx是免费的并可以商业化,配置使用也比较简单。
- 下面提供nginx的安装,nginx搭建反向代理,nginx负载均衡,nginx高可用的详细步骤配置
2.nginx 安装:
2.1 yum安装nignx:
1.特点:
使用yum安装nginx的特点是简单,方便,安装的是最新版本
2.配置nginx的yum源:
[root@server-3 ~]# vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=https://nginx.org/packages/centos/7/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=https://nginx.org/packages/mainline/centos/7/x86_64/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
3.安装nginx
使用yum安装nginx,并启动,查看版本
[root@server-3 ~]# yum install -y nginx
[root@server-3 ~]# nginx
[root@server-3 ~]# nginx -v
nginx version: nginx/1.20.1
2.2 源码安装nginx
1.特点:
使用源码安装的特点是可自选安装所需的nginx版本
2.配置centos的yum源:
因为源码安装需要一些依赖包,故先配置yum源,配置阿里云的yum源,前提是确保虚拟机能够访问互联网
[root@server-3 ~]# curl -o /etc/yum.repos.d/centos7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
3.安装依赖包:
[root@server-3 ~]# yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
4.下载nginx源码包:
nginx官网下载地址: https://nginx.org/download/
任意版本的nginx都有。
使用wget工具下载:
[root@server-3 ~]# yum install -y wget
[root@server-3 ~]# wget https://nginx.org/download/nginx-1.17.8.tar.gz
--2021-10-02 15:32:32-- https://nginx.org/download/nginx-1.17.8.tar.gz
Resolving nginx.org (nginx.org)... 3.125.197.172, 52.58.199.22, 2a05:d014:edb:5704::6, ...
Connecting to nginx.org (nginx.org)|3.125.197.172|:443... connected.
ERROR: cannot verify nginx.org's certificate, issued by ‘/C=US/O=Let's Encrypt/CN=R3’:
Issued certificate has expired.
To connect to nginx.org insecurely, use `--no-check-certificate'.
[root@server-3 ~]# wget https://nginx.org/download/nginx-1.17.8.tar.gz --no-check-certificate
--2021-10-02 15:32:44-- https://nginx.org/download/nginx-1.17.8.tar.gz
Resolving nginx.org (nginx.org)... 52.58.199.22, 3.125.197.172, 2a05:d014:edb:5704::6, ...
Connecting to nginx.org (nginx.org)|52.58.199.22|:443... connected.
WARNING: cannot verify nginx.org's certificate, issued by ‘/C=US/O=Let's Encrypt/CN=R3’:
Issued certificate has expired.
HTTP request sent, awaiting response... 200 OK
Length: 1038627 (1014K) [application/octet-stream]
Saving to: ‘nginx-1.17.8.tar.gz’
100%[========================================================================================================>] 1,038,627 153KB/s in 6.6s
2021-10-02 15:32:53 (153 KB/s) - ‘nginx-1.17.8.tar.gz’ saved [1038627/1038627]
5.解压安装:
[root@server-3 ~]# tar -xzf nginx-1.17.8.tar.gz -C /usr/local/
[root@server-3 ~]# mkdir -p /var/temp/nginx
[root@server-3 ~]# cd /usr/local/nginx-1.17.8/
[root@server-3 nginx-1.17.8]# ls
auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src
[root@server-3 nginx-1.17.8]# ./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_gzip_static_module --http-client-body-temp-path=/var/temp/nginx/client --http-proxy-temp-path=/var/temp/nginx/proxy --http-fastcgi-temp-path=/var/temp/nginx/fastcgi --http-uwsgi-temp-path=/var/temp/nginx/uwsgi --with-http_stub_status_module --with-http_ssl_module --http-scgi-temp-path=/var/temp/nginx/scgi
上段命令直接复制代码:
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--with-http_stub_status_module \
--with-http_ssl_module \
--http-scgi-temp-path=/var/temp/nginx/scgi
进行编译安装:
[root@server-3 nginx-1.17.8]# make
[root@server-3 nginx-1.17.8]# make install
6.启动nginx
[root@server-3 nginx-1.17.8]# cd /usr/local/nginx
[root@server-3 nginx]# ls
conf html sbin
[root@server-3 nginx]# sbin/nginx
[root@server-3 nginx]# ps -ef |grep nginx
root 10562 1 0 15:40 ? 00:00:00 nginx: master process sbin/nginx
nobody 10563 10562 0 15:40 ? 00:00:00 nginx: worker process
root 10566 7566 0 15:40 pts/1 00:00:00 grep --color=auto nginx
浏览器访问:虚拟机ip:80 查看是否出现nginx首页
前提是关闭虚拟机防火墙以及selinux
3.nginx配置反向代理(例1):
反向代理1:
所需实现的效果:
浏览器访问 www.123.com 将会跳转到 tomcat 的首页
1.准备工作:
安装 tomcat:
[root@server-3 ~]# wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.53/bin/apache-tomcat-9.0.53.tar.gz
[root@server-3 ~]# tar -xzvf apache-tomcat-9.0.53.tar.gz -C /usr/local/
因为启动tomcat需要基于java环境,此处启动tomcat之前先配置java环境
java包的下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
[root@server-3 ~]# tar -xzvf jdk-8u181-linux-x64.tar.gz -C /usr/local/
[root@server-3 ~]# vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_291
export PATH=$PATH:$JAVA_HOME/bin
[root@server-3 ~]# source /etc/profile
[root@server-3 ~]# java -version
openjdk version "1.8.0_302"
OpenJDK Runtime Environment (build 1.8.0_302-b08)
OpenJDK 64-Bit Server VM (build 25.302-b08, mixed mode)
[root@server-3 ~]# jps
10840 Jps
启动tomcat
[root@server-3 ~]# cd /usr/local/apache-tomcat-9.0.53/
[root@server-3 apache-tomcat-9.0.53]# bin/startup.sh start
Using CATALINA_BASE: /usr/local/apache-tomcat-9.0.53
Using CATALINA_HOME: /usr/local/apache-tomcat-9.0.53
Using CATALINA_TMPDIR: /usr/local/apache-tomcat-9.0.53/temp
Using JRE_HOME: /usr/local/jdk1.8.0_291
Using CLASSPATH: /usr/local/apache-tomcat-9.0.53/bin/bootstrap.jar:/usr/local/apache-tomcat-9.0.53/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@server-3 apache-tomcat-9.0.53]# jps
10947 Jps
10874 Bootstrap
验证:
2. 配置nginx反向代理
修改nginx配置文件
[root@server-3 ~]# cd /usr/local/nginx/conf/
在sever模块下配置
[root@server-3 conf]# vim nginx.conf
server {
listen 80;
server_name 192.168.66.191; #将此处的localhost改成本机ip,浏览器访问域名时需解析到此ip
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://127.0.0.1:8080; #因为tomcat服务也搭建在此虚拟机中,tomcat是8080端口,此配置是反向代理是否成功的关键
root html;
index index.html index.htm;
}
重启nginx,使其配置生效:
[root@server-3 conf]# cd ../sbin
[root@server-3 sbin]# ./nginx -s reload
3.win中的hosts解析
在windows中添加hosts解析:
添加一行
虚拟机ip www.123.com
例如:192.168.66.191 www.123.com
4.测试:
浏览器访问:www.123.com
查看是否会跳转到 tomcat 首页
由此 一个简单的 nginx 反向代理配置 success!!
4.nginx配置反向代理(例2):
使用nginx反向代理,根据访问的路径跳转到不同的端口服务中, nginx监听端口为9001
此处所需要实现的效果为:
访问 http://192.168.11.131:9001/edu/ 直接跳转到127.0.0.1:8080
访问 http://192.168.11.131:9001/stu/ 直接跳转到127.0.0.1:8081
使用nginx即可简单方便的实现这一效果,来达到,访问同一ip或同一域名时,后接其他参数时访问不同的页面。
1.准备工作:
准备两台tomcat ,tomcat1 和 tomcat2
因上述实验已有一个 tomcat 是 8080端口,再安装一个tomcat2 设置为 8081 端口;
先关闭上一实验启动的tomcat
[root@server-3 ~]# ps -ef |grep apache
root 7221 1 1 15:35 pts/0 00:00:03 /usr/local/jdk1.8.0_291/bin/java -Djava.util.logging.config.file=/usr/local/tomcat1/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat1/bin/bootstrap.jar:/usr/local/tomcat1/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat1 -Dcatalina.home=/usr/local/tomcat1 -Djava.io.tmpdir=/usr/local/tomcat1/temp org.apache.catalina.startup.Bootstrap start
root 10869 1218 0 15:39 pts/0 00:00:00 grep --color=auto apache
[root@server-3 ~]# kill -9 7221
启动第二个tomcat
[root@server-3 ~]# cd /usr/local/
[root@server-3 local]# mkdir /usr/local/tomcat1 /usr/local/tomcat2
[root@server-3 local]# mv apache-tomcat-9.0.53/ tomcat1/
[root@server-3 local]# tar -xvzf /root/apache-tomcat-9.0.53.tar.gz -C /usr/local/tomcat2
修改tomcat2的端口:
[root@server-3 local]# cd tomcat2/apache-tomcat-9.0.53/
[root@server-3 tomcat2]# vim conf/server.xml
<Server port="8015" shutdown="SHUTDOWN">
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
2. 验证两个tomcat是否启动
启动tomcat1 和 tomcat2
[root@server-3 ~]# cd /usr/local/tomcat1/
[root@server-3 tomcat1]# bin/startup.sh start
Using CATALINA_BASE: /usr/local/tomcat1
Using CATALINA_HOME: /usr/local/tomcat1
Using CATALINA_TMPDIR: /usr/local/tomcat1/temp
Using JRE_HOME: /usr/local/jdk1.8.0_291
Using CLASSPATH: /usr/local/tomcat1/bin/bootstrap.jar:/usr/local/tomcat1/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@server-3 tomcat1]# cd ../tomcat2/apache-tomcat-9.0.53/
[root@server-3 tomcat2]# bin/startup.sh start
Using CATALINA_BASE: /usr/local/tomcat2
Using CATALINA_HOME: /usr/local/tomcat2
Using CATALINA_TMPDIR: /usr/local/tomcat2/temp
Using JRE_HOME: /usr/local/jdk1.8.0_291
Using CLASSPATH: /usr/local/tomcat2/bin/bootstrap.jar:/usr/local/tomcat2/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
浏览器访问测试 : 192.168.66.191:8080
浏览器访问测试 : 192.168.66.191:8081
两个tomcat启动成功后,可进入tomcat中创建目录和编写文件
index.html文件中编写端口号,便于识别
[root@server-3 ~]# cd /usr/local/tomcat1/webapps/
[root@server-3 webapps]# mkdir edu
[root@server-3 webapps]# echo "<h1>8080</h1>" > edu/index.html
[root@server-3 webapps]# cd /usr/local/tomcat2/apache-tomcat-9.0.53/webapps/
[root@server-3 webapps]# mkdir stu
[root@server-3 webapps]# echo "<h1>8081</h1>" > stu/index.html
3.配置nginx配置文件
nginx反向代理的配置如下:
[root@server-3 ~]# cd /usr/local/nginx/conf/
[root@server-3 conf]# vim nginx.conf
添加一个server模块:
server {
listen 9001;
server_name 192.168.66.191;
location ~/edu/ {
proxy_pass http://127.0.0.1:8080;
}
location ~/stu/ {
proxy_pass http://127.0.0.1:8081;
}
}
启动nginx
[root@server-3 conf]# cd ../sbin/
[root@server-3 sbin]# ls
nginx
[root@server-3 sbin]# ./nginx
4.访问测试:
浏览器访问:192.168.66.191:9001/edu/
浏览器访问:192.168.66.191:9001/stu/
即实现了一个域名/ip 一个端口访问不同的页面!
5.nginx 配置负载均衡
5.1负载均衡介绍+实现效果:
使用nignx配置负载均衡是nginx服务中很常用的一个场景,原先请求都集中到单个服务器上的情况改为分发到多个服务器上。随着服务器的数量增加,nginx会将各种请求分发到各个服务器中,这种情况就是我们所说的负载均衡。
如上图所描述的,浏览器从客户端访问服务器,通过nginx可以将客户端的请求平均分发到其他服务器,使这些服务器所接收的请求平均一些。
nginx负载均衡实现的效果如下:
浏览器访问:192.168.66.191/edu/index.html 时,
他的请求将会平均分发到 tomcat1(8080)和 tomcat2 (8081)
也就是,每刷新一次,网页,都会在8080和8081之间转换。
5.2 准备工作:
在 tomcat1 和 tomcat2 中都创建 edu 目录,里面写8080和8081 便于识别
因上个反向代理实验中,tomcat1 已有此目录和文件,故仅需在 tomcat2 中创建
先停掉上一实验的tomcat和nginx
[root@server-3 ~]# ps -ef |grep nginx
root 11938 1 0 15:59 ? 00:00:00 nginx: master process ./nginx
nobody 11939 11938 0 15:59 ? 00:00:00 nginx: worker process
root 13041 1218 0 16:22 pts/0 00:00:00 grep --color=auto nginx
[root@server-3 ~]# kill -9 11938
[root@server-3 ~]# kill -9 11939
[root@server-3 ~]#
[root@server-3 ~]# ps -ef |grep apache
root 11191 1 0 15:45 pts/0 00:00:06 /usr/local/jdk1.8.0_291/bin/java -Djava.util.logging.config.file=/usr/local/tomcat1/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat1/bin/bootstrap.jar:/usr/local/tomcat1/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat1 -Dcatalina.home=/usr/local/tomcat1 -Djava.io.tmpdir=/usr/local/tomcat1/temp org.apache.catalina.startup.Bootstrap start start
root 11224 1 0 15:45 pts/0 00:00:06 /usr/local/jdk1.8.0_291/bin/java -Djava.util.logging.config.file=/usr/local/tomcat2/apache-tomcat-9.0.53/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat2/apache-tomcat-9.0.53/bin/bootstrap.jar:/usr/local/tomcat2/apache-tomcat-9.0.53/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat2/apache-tomcat-9.0.53 -Dcatalina.home=/usr/local/tomcat2/apache-tomcat-9.0.53 -Djava.io.tmpdir=/usr/local/tomcat2/apache-tomcat-9.0.53/temp org.apache.catalina.startup.Bootstrap start start
root 13058 1218 0 16:22 pts/0 00:00:00 grep --color=auto apache
[root@server-3 ~]# kill -9 11191
[root@server-3 ~]# kill -9 11224
tomcat2创建edu目录和文件
[root@server-3 ~]# cd /usr/local/tomcat2/apache-tomcat-9.0.53/webapps/
[root@server-3 webapps]# mkdir edu
[root@server-3 webapps]# echo "<h1>8081</h1>" >edu/index.html
下面配置nginx中的负载均衡
[root@server-3 ~]# cd /usr/local/nginx/conf/
[root@server-3 conf]# vim nginx.conf
http模块下新增这一配置
upstream mytomcat {
server 192.168.66.191:8080 weight=1;
server 192.168.66.191:8081 weight=1;
}
server {
listen 80;
server_name 192.168.66.191;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://mytomcat;
root html;
index index.html index.htm;
}
新增mytomcat,以及新增location里的配置
5.3 启动nginx 和tomcat1 tomcat2
[root@server-3 conf]# cd ../sbin/
[root@server-3 sbin]# ./nginx
[root@server-3 sbin]# cd /usr/local/tomcat1/bin/
[root@server-3 bin]# ./startup.sh
Using CATALINA_BASE: /usr/local/tomcat1
Using CATALINA_HOME: /usr/local/tomcat1
Using CATALINA_TMPDIR: /usr/local/tomcat1/temp
Using JRE_HOME: /usr/local/jdk1.8.0_291
Using CLASSPATH: /usr/local/tomcat1/bin/bootstrap.jar:/usr/local/tomcat1/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@server-3 bin]#
[root@server-3 bin]# cd /usr/local/tomcat2/apache-tomcat-9.0.53/bin/
[root@server-3 bin]# ./startup.sh
Using CATALINA_BASE: /usr/local/tomcat2/apache-tomcat-9.0.53
Using CATALINA_HOME: /usr/local/tomcat2/apache-tomcat-9.0.53
Using CATALINA_TMPDIR: /usr/local/tomcat2/apache-tomcat-9.0.53/temp
Using JRE_HOME: /usr/local/jdk1.8.0_291
Using CLASSPATH: /usr/local/tomcat2/apache-tomcat-9.0.53/bin/bootstrap.jar:/usr/local/tomcat2/apache-tomcat-9.0.53/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[root@server-3 bin]#
5.4验证测试:
浏览器访问: 192.168.66.191:80/edu/index.html
然后刷新
将浏览器对tomcat的请求,平均分发到了8080 和8081 这两个服务上,
即是实现了nginx的负载均衡!
6. nginx 配置高可用
6.1 高可用:
日常管理中,服务器出现宕机,可有其余多台服务器进行使用。若nginx出现宕机,那些请求将无法分发到服务器中,也就会导致其无法正常使用,因此,为了防止nginx出现宕机的情况,故对其配置nginx高可用。
6.2 配置nginx高可用
配置nginx高可用需要两台nginx,安装nginx的步骤参考上述的 2.2 章节,采用源码安装,此处不再详写nginx安装。
两台nginx安装好以后,
其ip为:
192.168.66.191
192.168.66.192
将191作为主节点称为master,192作为备节点backup
配置nginx高可用还需要安装keepalived
关闭上一实验所启动的服务
使用 ps -ef |grep apache/nginx 过滤查看进程,并使用 kill -9 关掉所有服务。
详细操作参考5.2
两个节点安装keepalived
[root@server-3 ~]# yum install -y keepalived
[root@server-4 ~]# yum install -y keepalived
修改 keepalived 配置文件:
[root@server-3 ~]# vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
acassen@firewall.loc
failover@firewal1.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp server 192.168.66.191 #主节点ip
smtp connect_timeout 30
router_id LvS_DEVEL
}
vrrp_script chk_http_port {
script "/usr/local/src/check.sh"
interval 2 #(检测脚本执行的间隔)
weight 2
}
vrrp_instance VI_1 {
state MASTER #备份服务器上将MASTER改为BACKUP
interface ens32 #网卡
virtual_router_id 51 #主、备机的virtual router id必须相同priority 90#主、备机取不同的优先级,主机值较大,备份机值较小
advert_int 100
authentication {
auth_type PASS
auth pass 1111
}
virtual_ipaddress {
192.168.66.50 // VRRP H虚拟地址
}
}
将此配置文件从主节点191(master)复制到从节点192(backup)节点
[root@server-3 ~]# scp /etc/keepalived/keepalived.conf 192.168.66.192:/etc/keepalived/keepalived.conf
在backup节点修改配置文件:
[root@server-4 ~]# vim /etc/keepalived/keepalived.conf
state BACKUP #备份服务器上将MASTER改为BACKUP
advert_int 90
两台服务器编写检测脚本:
[root@server-3 ~]# vim /usr/local/src/check.sh
#!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
使用scp从主节点cp到备节点
[root@server-3 ~]# scp /usr/local/src/check.sh 192.168.66.192:/usr/local/src/
6.3 启动服务:
启动两台服务器的nginx 和 keepalived
[root@server-3 ~]# cd /usr/local/nginx/sbin/
[root@server-3 sbin]# ./nginx
[root@server-3 sbin]# systemctl start keepalived
[root@server-4 ~]# systemctl start keepalived
[root@server-4 ~]# cd /usr/local/nginx/sbin/
[root@server-4 sbin]# ./nginx
6.4 访问测试:
浏览器访问 虚拟ip 地址,看清楚,是虚拟ip地址,在 keepalived 的配置文件中末尾处,
有一个地方是配置了虚拟ip地址的,
浏览器访问在配置文件中写的虚拟IP
我写的是: 192.168.66.50
故在浏览器访问 192.168.66.50
再次在主节点查看ip地址信息,
会发现keepalived中所写的虚拟ip 已经添加到网卡的详细信息中了
[root@server-3 nginx]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:9f:0b:08 brd ff:ff:ff:ff:ff:ff
inet 192.168.66.191/24 brd 192.168.66.255 scope global noprefixroute ens32
valid_lft forever preferred_lft forever
inet 192.168.66.50/32 scope global ens32
valid_lft forever preferred_lft forever
inet6 fe80::b264:f900:7e23:3f19/64 scope link noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::c062:e877:3c:5922/64 scope link tentative noprefixroute dadfailed
valid_lft forever preferred_lft forever
我们将主节点(MASTER)的nginx和keepalived关闭,再次用浏览器访问虚拟ip
[root@server-3 sbin]# systemctl stop keepalived
[root@server-3 sbin]# ./nginx -s stop
[root@server-3 sbin]# ps -ef |grep nginx
root 4181 1217 0 19:50 pts/0 00:00:00 grep --color=auto nginx
[root@server-3 sbin]# ps -ef |grep keepalived
root 4203 1217 0 19:56 pts/0 00:00:00 grep --color=auto keepalived
停掉以后会发现,不断刷新此页面,nginx依然存在,查看backup节点的ip地址信息, 会发现ens32网卡中也有虚拟ip存在
由此,nginx配置高可用集群操作完成!success!!