部署安装
centos使用Docker容器方式安装各类软件包
docker部署各种服务
docker安装elasticsearch7.6.2
docker方式安装onlyOffice
使用docker安装部署kibana
Docker常用运维命令
使用docker方式安装mm-wiki,助力技术团队文档开发
docker方式部署springboot应用
Harbor 入门与上手
修改或增加已运行的 Docker 容器端口映射
docker安装mysql
docker方式安装gitlab
Docker 安装MQTT服务 mosquitto2.0版本
centos编译方式安装
centos通过编译的方式安装python3.8
centos绿色安装包
Centos7安装NodeJs
centos7环境下部署yapi v1.9.2版本
centos7.9安装nacos2.2.3
Centos下安装Node14
centos中安装go
centos通过yum方式安装的软件包
centos 安装supervior
centos 安装 jenkins 2.452.1最新版本
centos7安装docker-20.10.9版本
数据库
在centos7下安装PostgreSQL10
mysql 主从搭建
windows安装oracle11g的一些后续注意事项
centos7.9安装oracle11g
镜像加速
nginx
在两台centos上面安装nginx+keepalived实现主备
linux常用命令
jenkins部署前后端服务几种常见场景配置说明
GIT
K8S
kubeadm init在初始化master节点的遇到的问题梳理
K8S部署+kuboard可视化界面完整说明
k8s+kuboard+harbor部署springboot的一些说明
其他
centos7使用miniconda方式安装飞浆OCR
frp内网穿透
java全平台安装
本文档使用 MrDoc 发布
-
+
首页
在两台centos上面安装nginx+keepalived实现主备
> 我这里两台服务器的ip 是 10.168.1.26和 10.168.1.27 我准备使用 10.168.1.25 这个空闲的IP做为我的 VIP,也就是虚拟地址。 ## 1、nginx的安装 我这里使用是原生方式安装 的nginx. 安装的版本是: nginx-1.21.0.tar.gz 压缩包放到了/opt目录。 然后执行以下命令进行安装 ,安装的目录是:`/home/nginx` ~~~ tar -zxvf nginx-1.21.0.tar.gz cd nginx-1.21.0/ ./configure --prefix=/home/nginx make && make install ~~~ 安装速度很快,分分钟就能搞定,安装完之后进行 /home/nginx/sbin/nginx 进行启动。 进入 `/home/nginx/sbin/` 目录,然后 执行 `./nginx` 启动。 停止命令是: `./nginx -s stop` ## 2、 keepalived部署 keepalived 我这里使用的是yum快速安装 更新依赖包:`yum install -y gcc openssl-devel libnl3-devel net-snmp-devel` 安装命令: ~~~ yum -y install keepalived ~~~ 安装完之后,配置文件地址是: `vi /etc/keepalived/keepalived.conf` 把主机的keepalived.conf文件直接替换成下面的内容: ~~~ global_defs { router_id LVS_DEVEL } vrrp_script chk_nginx { script "/home/shell/check_nginx_pid.sh" #nginx进程检测脚本 interval 2 weight 2 } vrrp_instance VI_1 { state MASTER interface eth0 #网卡设备 virtual_router_id 51 #虚拟路由编号,主从要一致 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } track_script { chk_nginx } virtual_ipaddress { 10.168.1.25 #虚拟ip设置 } } ~~~ check_nginx_pid.sh 这是一个检测ngix状态的脚本,如果nginx进程挂了,则尝试重启nginx,如果重启失败,把keepalived进程停止。 内容如下: ~~~ #!/bin/bash A=`ps -C nginx --no-header |wc -l` if [ $A -eq 0 ];then #如果nginx没有启动就启动nginx /home/nginx/sbin/nginx #重启nginx if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then #nginx重启失败,则停掉keepalived服务,进行VIP转移 systemctl stop keepalived fi fi ~~~ 脚本放到了 `/home/shell/` , 执行 `chmod 777 check_nginx_pid.sh` 添加执行权限。 备机keepalive.conf内容: ~~~ global_defs { router_id LVS_DEVEL } vrrp_script chk_nginx { script "/home/shell/check_nginx_pid.sh" #nginx进程检测脚本 interval 2 weight 2 } vrrp_instance VI_1 { state BACKUP interface eth0 #网卡设备 virtual_router_id 51 #虚拟路由编号,主从要一致 priority 90 #这里的priority小于MASTER advert_int 1 authentication { auth_type PASS auth_pass 1111 } track_script { chk_nginx } virtual_ipaddress { 10.168.1.25 #虚拟ip设置 } } ~~~ 上面的eth0 在用的网卡名,可以使用 `ip addr` 命令进行查看。 主从keepalived配置好后,可以通过命令启动: ~~~ systemctl start keepalived ~~~ 其他命令: ~~~ systemctl status keepalived systemctl stop keepalived ~~~ 从机上查看虚ip是否转移 ~~~ ip addr ~~~ 查看切换过程中的日志 ~~~ tail -f /var/log/message ~~~ ## 验证一下 我这里访问 10.168.1.25 ,默认应该看到的是 10.168.1.26的地址 登录10.168.1.26,然后执行 systemctl stop keepalived. 再次访问 10.168.1.25,你会发现 nginx的页面 展示的是 10.168.1.27 nginx的内容了 登录10.168.1.26,然后执行 systemctl start keepalived. 再次访问 10.168.1.25,你会发现 nginx的页面 展示的是 10.168.1.26 nginx的内容了 验证成功. 说实话,除非nginx服务硬件或网络出现问题了,不然nginx进程一般很难挂掉. 参考: https://blog.51cto.com/u_16099283/9664892 https://blog.csdn.net/JBbo01/article/details/130887301
superadmin
2025年1月17日 10:08
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码