首页 > 系统相关 >Nginx+Keepalived

Nginx+Keepalived

时间:2023-10-22 22:33:20浏览次数:36  
标签:etc ## Keepalived keepalived Nginx usr nginx 主从

学习自:https://www.nhooo.com/note/qa3jz9.html

最终效果

主节点上虚拟IP生效,可通过虚拟IP访问到主节点服务

从节点

主从两个节点都安装nginx与keepalived,安装到相同路径

安装Nginx

点此:https://www.jianshu.com/p/1a51f2384c11

安装keepalived

下载安装包:https://www.keepalived.org/download.html

# tar命令解压
# 进入解压后目录
./configure --prefix=/usr/local/keepalived
make && make install

将配置文件拷贝到系统对应的目录下

mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/keepalived

核心keepalived配置文件

vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id ngkp1 # 主从节点不一致即可
   script_user root
}
vrrp_script nginx_check {
        script "/etc/keepalived/nginx_check.sh"     ## 检测 nginx 状态的脚本路径
        interval 5       ## 检测时间间隔
        #weight -20   ## 如果条件成立,权重-20
}

vrrp_instance VI_1 {
    state MASTER     ## 必填,MASTER或BACKUP,可以不一致,也可以一致
    interface ens16    ## 网卡名称
    virtual_router_id 51  # 主从节点中保持一致
    unicast_src_ip xx.xx.6.1  #本机IP
    unicast_peer {
          xx.xx.6.2  # 对方机器IP
        }
    priority 100  # 主从不要一致,主比从大
    advert_int 1
    authentication {
        auth_type PASS     # 主从节点中保持一致
        auth_pass 111111    # 主从节点中保持一致
    }
    track_script  {
            nginx_check  ## 执行 Nginx 监控的服务
        }
    virtual_ipaddress {
        xx.xx.6.20/24 dev ens16   # 虚拟IP
    }
}

Nginx监控脚本

vim /etc/keepalived/nginx_check.sh
#!/usr/bin/bash
counter=$(ps -C nginx --no-heading|wc -l)   # 检查nginx进程数
if [ $counter -eq 0 ]; then   
    /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf  # 如果进程数等于0,则尝试对nginx进行重启操作
    sleep 1  # 等待一秒时间
    cnt=$(ps -C nginx --no-heading|wc -l)   #再次检查nginx进程数
    if [ $cnt -eq 0 ]; then  
        systemctl stop keepalived   # 如果还等于0,则停止掉keepalived进程,实现虚拟IP漂移到从节点,由从节点的nginx继续提供服务
    fi
fi

标签:etc,##,Keepalived,keepalived,Nginx,usr,nginx,主从
From: https://www.cnblogs.com/tshuai/p/17781306.html

相关文章

  • 统信桌面操作系统UOS上安装arm64版nginx
    hello,大家好啊,今天给大家带来一篇在统信桌面操作系统UOS上安装arm64版nginx的文章,本篇文章主要是给大家提供一种下载离线nginx软件包的方法,拿到软件包可以去不能链接互联网又没有仓库环境的电脑上安装,欢迎大家浏览分享,点一个关注可好。1、下载nginx离线包到本地pdsyw@pdsyw-PC:~/De......
  • nginx配置解决跨域访问
    场景:前后的分离项目,前端vue框架,打包后放在Tomcat里访问,端口是8080,后端服务端口8058。访问前端项目时,调用后端接口报跨域。后端环境正常访问端口8058经过nginx配置(文末具体展示)后,去除端口,如下:前端开发环境1.配置开发和生产的环境变量.env.development文件#API服务路径......
  • CentOS 7 安装 Nginx
    CentOS7安装Nginx一、更新存储库包列表$sudoyum-yupdate-y是可选参数。表示安装软件过程中如果提示用户输入y进行确认安装的话,则进行自动确认。二、安装epel软件包问题:什么是epel?回答:epel-release仓库是由Fedora项目创建的,旨在为RHEL和CentOS用户提......
  • NGINX 安装 SSL 证书 - 开启 HTTPS 访问
    在NGINX上安装SSL证书-开启HTTPS访问一、在你开始之前请确保您已下载证书文件。没有证书?请从https://www.sslforfree.com上申请90天免费证书。下载证书后,您应该有一个包含以下证书文件的ZIP:certificate.crtca_bundle.crtprivate.key二、上传证书文件首先,......
  • laravel:部署到nginx服务器(10.27.0)
    一,相关文档:https://learnku.com/docs/laravel/10.x/deployment/14840二,配置nginx1,站点文件server{listen80;#listen[::]:80;server_namedig.lhdtest.com;root/webdata/site/dig/public;add_headerX-Frame-Options"SAMEORIGIN";a......
  • Nginx安装lua模块
    前提已安装完成Nginx安装LuaJITwgethttp://luajit.org/download/LuaJIT-2.0.5.tar.gztar-zxvf LuaJIT-2.0.5.tar.gzcdLuaJIT-2.0.5makeinstallPREFIX=/usr/local/LuaJITecho"exportLUAJIT_LIB=/usr/local/LuaJIT/lib">>/etc/profileecho"expor......
  • Nginx Lua修改返回值
    调试lua脚本ngx.log(ngx.ERR,"xxx")日志会打印到/usr/local/nginx/logs/error.log修改返回值时避免内容被截断增加header_filter_by_lua'ngx.header.content_length=nil';注释后只返回原接口长度3,即ok\n。lua脚本默认必须放在/usr/local/nginx目录下,否则会找不到。mod......
  • nginx首次安装sticky模块-cookie保持会话
    首次安装nginx:(下一篇文章是nginx添加sticky模块)yuminstall-ypcre*openssl*gccgcc-c++make--安装编译环境wgethttps://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/08a395c66e42.zip--下载sticky模块nginx-v--查看Nginx版本,因为要下载和yum安装nginx......
  • nginx添加sticky模块-cookie保持会话
    环境nginx1.8.0 centos6.X sticky:1.2.5 wgethttps://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/master.tar.gzcookie负载均衡相比iphash来比其中一个特点比较明显:内网nat用户的均衡。而iphash无法做到。yuminstallopenssl openssl-devel先停止ngi......
  • ansible使用【2】--安装Nginx并熟悉playbook
    前提:主控机器已经安装好ansible,被控制的是53.225安装教程看:https://www.cnblogs.com/liqi175/p/17776530.html参考资料:https://ansible.leops.cn/basic/Quickstart/安装Nginx:ansible192.168.53.225-mapt-a'name=nginx' 说明:-m指定模块,我这里指定apt安装模块......