当前位置: 首页 > news >正文

ubuntu22 搭建nginx高可用集群(VIP(keepalived) + 负载均衡)

#在所有节点安装nginx

#ps: 如果要使用tcp流转发:需用二进制包安装 make编译时加入stream流的参数。  推荐直接安装openresty【默认支持stream等nginx模块,还附带了很多常用的lua库】
 

apt install -y net-tools
sudo apt install -y nginx
vim /etc/nginx/conf.d/nginx.conf
upstream balanceServer {# 服务器的访问地址,负载均衡算法使用权重轮询。应用服务器是自己的应用服务主机的地址,最好和负载均衡服务分开部署。server 10.3.1.135:8080 weight=1;
}
#负载均衡服务
server {# 负载均衡的监听端口listen 80 default_server;server_name _;location / {proxy_pass http://balanceServer;   # 代理转发应用服务client_max_body_size 500m;}location /prod-api/ {proxy_pass http://balanceServer;   # 代理转发应用服务proxy_cookie_path / /prod-api;rewrite ^/prod-api/(.*) /$1 break;client_max_body_size 500m;}}

#nginx服务默认占用80  修改默认端口为81

vim /etc/nginx/sites-enabled/default 
listen 81 default_server;
listen [::]:81 default_server;

nginx -s reload #systemctl restart nginx

systemctl enable nginx

#在所有节点安装keepalived 并修改配置文件(不同节点参数需修改)

apt install -y keepalived

vim /etc/keepalived/keepalived.conf

global_defs { # 路由id: 当前安装的keepalived节点主机的标识符,全局唯一。 # 不同节点需修改 用本机ip即可router_id 10.3.1.96
}
vrrp_script chk_nginx {script "/etc/keepalived/nginx_chk.sh"  interval 2  
}
vrrp_instance VI_1{# 表示的状态,MASTER 主节点  BACKUP 备机# 一个设为MASTER 其他的设为BACKUPstate MASTER# 当前实例绑定的网卡 根据主机网卡自行修改interface ens160# 表示那些服务器一个组,保证主备节点一致virtual_router_id 100# 优先级/权重,谁的优先级高,在MASTER关掉以后,就能成为MASTERpriority 100# 主备之间同步检查的时间间隔,默认1sadvert_int 1# 认知授权的密码,防止非法节点的进入authentication {auth_type PASSauth_pass 1369}#  虚拟ip 要和服务器在同一个网段, 能和服务器网关进行通信的, 而且是没有被占用的virtual_ipaddress {10.3.1.150}track_script {   chk_nginx}
}

vim /etc/keepalived/nginx_chk.sh #配置脚本检查nginx是否还在正常运行,如果挂掉就重启它,实在启动不了再让keepalived绑定备用机器

#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
# 判断nginx是否宕机,如果宕机了,尝试重启 
if [ $A -eq 0 ];then# 重启nginx,延迟2秒 service nginx restartsleep 2  # 重新检查是否有nginx相关的进程if [ $A -eq 0 ];then  # 仍然没有nginx相关的进程,杀死当前keepalived,切换到备用机killall keepalived  fi  
fi

sudo chmod +x /etc/keepalived/nginx_chk.sh

bash /etc/keepalived/nginx_chk.sh #检查脚本,不报错即可‘

systemctl start keepalived

ip addr #查看ens160网卡出现 10.3.1.150虚拟ip即可。 然后可以通过虚拟ip访问对应的nginx转发

systemctl enable keepalived

#关掉MASTER的keepalived后,虚拟ip就飘移到BACKUP节点上了 可以用ip addr查看一下

http://www.lryc.cn/news/358685.html

相关文章:

  • QT 编译Lua 动态库,使用Lua脚本混合编程
  • 关于不均衡数据的探究
  • LwIP 之十 详解 TCP RAW 编程、示例、API 源码、数据流
  • 【京东评论】数据源——Python提升获取效率▼
  • Java大厂面试题第2季
  • 探索无限可能性——微软 Visio 2021 改变您的思维方式
  • Linux CFS调度器之周期性调度器scheduler_tick函数
  • git生成密钥(免密)
  • 山东大学软件学院2021级编译原理回忆版
  • 为什么都说视频号小店值得做,具体该怎么做?新手必学
  • 网络安全岗秋招面试题及面试经验分享
  • 如何实现一个AI聊天功能
  • 实战16:基于apriori关联挖掘FP-growth算法挖掘关联规则的手机销售分析-代码+数据
  • Linux基础指令及其作用之系统信息和管理
  • FinRobot:一个由大型语言模型(LLM)支持的新型开源AI Agent平台,支持多个金融专业AI Agent
  • 【SQL学习进阶】从入门到高级应用(七)
  • 20231911 2023-2024-2 《网络攻防实践》实践十一报告
  • 5G专网驻网失败分析(suci无效)
  • 【PHP项目实战训练】——laravel框架的实战项目中可以做模板的增删查改功能(1)
  • go语言使用model Gorm MySQL查询数据 定时十分钟查询一次 查询十分钟前新建的数据
  • 透视AI技术:探索折射技术在去衣应用中的奥秘
  • 计算机网络工程师需要掌握的知识点
  • Java-Collection家族(List接口)
  • 成绩发布小程序哪个好用?
  • 如何让大模型在智能时代背景下更加先进:一种基于时代特征的探讨
  • Mac 分享 WIFI 后,iPhone 连接 WIFI,但无法上网
  • C语言编程:揭秘平均输入三个数的艺术
  • jvm 触发GC的时机和条件
  • UML用例图
  • fluent UI v9版本Dialog右上角x按钮聚焦问题解决