一、服务器搭建策略

单机模式: 只有一台应用服务器,组成一个单机模式
优点:简单方便(搭建、运营、维护)
缺点:不能出故障(停电、断网、系统崩溃、硬件老化、性能瓶颈)
应用场景:小型项目(几十个人)
集群(cluster)模式:
有一个应用服务器集群(cluster),由很多应用服务器组成一个集群

二、服务器三高

高可用: 服务器能否能24*365不间断提供服务,服务器容灾性高
高并发: 同一时间上,服务器能够同时容纳的用户连接数
高性能: 服务器处理用户请求的速度,服务器的计算能力

三、服务器升级

纵向升级(对单台服务器做配置提升):
eg:换更强的cpu,加大内存和磁盘,加大网络带宽……
横向升级(堆服务器的数量):
节约成本,很廉价的机器都可以推入到集群(更受欢迎)

四、如何解决负载均衡高可用问题?

做备份
当主负载均衡服务器没有问题时,处于备用;当其出现问题时,备用服务器能够第一时间内顶替主负载均衡服务器的位置
难点:备份很容易,但是ip地址如何快速切换?

五、Keepalived实现备用机无缝顶替主机的原理:

多台nginx-----keepalived集群
keepalived集群中至少有两台机器
两台:一主一从
三台:一主二从…以此类推
为keepalived集群设置一个唯一的虚拟IP,虚拟IP默认会与master机器绑定在一起
即master机器将会有两个ip地址,一个是自己的源ip,一个是keepalived给的虚拟IP地址
非抢占模式下:
当master机器出现故障时,keepalived第一时间收回虚拟IP地址并分配给slave机器,此时相当于slave机器升级为master机器,此时用户只需要记住keepalived的虚拟IP地址即可
若master机器恢复正常,则不会被分配虚拟IP地址,直到slave机器出现故障后,master才会被分配虚拟IP地址

六、搭建Keepalived+Nginx高可用负载均衡服务器

1、设置keepalived负载均衡服务器
准备2台Nginx (一主一从),分别安装keepalived

yum -y install keepalived

查看网卡名字

打开配置文件

vim etc/keepalived/keepalived.conf

找到第19行

设置一主一从,设置对应优先级(主>备),设置虚拟IP


删除这两行, 否则虚拟IP会绑定失败

 13 vrrp_skip_check_adv_addr14 vrrp_strict

启动keepalived, 得到虚拟IP地址

 systemctl start keepalived



重启

 systemctl restart keepalived

停止, 则会收回虚拟IP地址

 systemctl stop keepalived



2、让keepalived监视nginx运行状态
在/etc/keepalived目录中编写一个可执行的脚本check_nginx.sh让keepalived监视nginx运行状态

#!/bin/bashA=`ps -C nginx --no-header |wc -l`        if [ $A -eq 0 ];then                            /usr/local/nginx/sbin/nginx                if [ `ps -C nginx --no-header |wc -l` -eq 0 ];thenexit 1elseexit 0fielseexit 0fi

检查nginx是否已经启动(ps任务管理器中是否有nginx进程)
IF nginx已经启动,keepalived认为当前机器没有问题,exit 0
IF nginx未启动,keepalived尝试去启动nginx
IF 能够启动成功nginx,keepalived认为当前机器没有问题,exit 0
IF 不能启动成功nginx,keepalived认为当前机器有问题,exit 1

此时nginx不需要我们自己启动,交给keepalived帮助我们去启动它
直接执行脚本显示权限不够

需要授予权限,绿色代表有执行权限

在执行执行check_nginx.sh脚本之前,nginx未启动

在执行check_nginx.sh脚本之后,则nginx已经被启动了

打开keepalived.conf

 16 vrrp_script check_nginx {   #定义一个策略,策略名为"check_nginx"17    script "/etc/keepalived/check_nginx.sh" #执行一次/etc/keepalived/check_nginx.sh脚本文件18    interval 1  #每隔1秒钟19    weight -20  #如果发现nginx启动失败了,将当前的机器的priority-2020 }21 vrrp_instance VI_1 {22     state MASTER23     interface ens3324     virtual_router_id 5125     priority 10026     advert_int 127     authentication {28         auth_type PASS29         auth_pass 111130     }31     track_script {   #指定keepalived跟踪策略为 "check_nginx"32         check_nginx33     }34     virtual_ipaddress {35         192.168.20.10036     }37 }

先同时启动nginx

check_nginx.sh

再同时启动keepalived 虚拟IP默认在MASTER机器

systemctl stop keepalived
systemctl start keepalived


七、设置nginx和tomcat开机自动启动

nginx启动命令

/usr/local/nginx/sbin/nginx
./nginx                       # ./代表从当前目录找nginx

nginx停止命令

/usr/local/nginx/sbin/nginx -s quit
./nginx -s quit

tomcat启动命令

/usr/local/tomcat/bin/startup.sh
./startup.sh

tomcat停止命令

/usr/local/tomcat/bin/shutdown.sh
./shutdown.sh

设置nginx和tomcat开机自动启动要告诉操作系统nginx启动命令在哪,tomcat启动命令在哪
1、设置可以在任何目录中使用 systemctl [操作] nginx 来操作 nginx 程序
创建nginx.service服务文件/lib/systemd/system/nginx.service

cd /lib/systemd/system   //存放由操作系统管理的启动程序
vim nginx.service     //创建一个nginx服务文件

写入以下内容

[Unit]
Description=nginx
After=network.target[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true[Install]
WantedBy=multi-user.target

创建好这个服务文件后,启动nginx就可以在任何目录中使用
systemctl [操作] nginx.service/nginx

systemctl stop nginx        #停止
systemctl restart nginx    #重启
systemctl status nginx     #状态
systemctl enable nginx     #允许开机自动启动
systemctl disable nginx    #禁止开机自动启动(默认)


2、设置可以在任何目录中使用 systemctl [操作] tomcat 来操作 tomcat 程序
创建tomcat.service服务文件/lib/systemd/system/tomcat.service

cd /lib/systemd/system   //存放由操作系统管理的启动程序
vim tomcat.service     //创建一个tomcat服务文件

写入以下内容

[Unit]
Description=Apache Tomcat 8
After=syslog.target network.target[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/tomcat/bin/shutdown.sh
PrivateTmp=true[Install]
WantedBy=multi-user.target

创建好这个服务文件后,启动tomcat就可以在任何目录中使用
systemctl [操作] tomcat.service/tomcat

systemctl stop tomcat       #停止
systemctl restart tomcat    #重启
systemctl status tomcat     #状态
systemctl enable tomcat     #允许开机自动启动
systemctl disable tomcat    #禁止开机自动启动(默认)

八、yum是什么?

全称 Yellow dog Updater,Modified 是一个RedHat和Fedora在Centos系统中创建的软件安装包管理器
在 /etc/yum.repos.d 这个目录中有yum源文件
eg: Centos-Base.repo 文件中有很多mirror地址,即yum的远程仓库地址

yum search 搜索软件安装包名
yum -y install 安装软件安装包名

注:使用yum指令需要联网

九、为什么keepalived (双机热备服务)可以直接使用systemctl 操作 keepalived?

因为 keepalived 是使用yum -y install keepalived进行安装的程序,使用yum安装程序,会自动帮你安装好程序和写程序的服务文件/lib/systemd/system/keepalived.service,而nginx、tomcat是我们自己手动下载安装包进行安装的程序


为什么network (网卡服务)可以直接使用systemctl 操作 network?
为什么firewalld (防火墙服务)可以直接使用systemctl 操作 firewalld?
systemctl stop firewalld 关闭防火墙 = 开放了所有的端口 ≠ 外界可以从任意端口进入系统(还要看是否有服务程序正在监听该端口)
防火墙这种服务的关闭并不是永久关闭,开机后会自动启动(默认)

搭建Keepalived+Nginx高可用负载均衡服务器相关推荐

  1. Linux 笔记 - 第十八章 Linux 集群之(三)Keepalived+LVS 高可用负载均衡集群

    一.前言 前两节分别介绍了 Linux 的高可用集群和负载均衡集群,也可以将这两者相结合,即 Keepalived+LVS 组成的高可用负载均衡集群,Keepalived 加入到 LVS 中的原因有以 ...

  2. LVS+Keepalived实现高可用负载均衡

    本文来说下如何使用LVS+Keepalived 实现高可用负载均衡 文章目录 概述 LVS与Keepalived 相关术语 本文小结 概述 在业务量达到一定量的时候,往往单机的服务是会出现瓶颈的.此时 ...

  3. LVS(DR)+keepalived实现高可用负载均衡

    一.lvs+keepalived 1.lvs LVS集群采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将 ...

  4. LVS+Keepalived 实现高可用负载均衡

    一.Keepalived介绍 keepalived是在Linux系统下的一个轻量级的高可用解决方案,是使用C语言编写的,在 Keepalived 中实现了一组检查器,可以根据服务集群中服务器的健康状态 ...

  5. Linux下部署lvs+keepalived实现高可用负载均衡

    lvs+keepalived是什么? keepalived工作原理 keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障. keepalive ...

  6. haproxy负载均衡_基于mycat+haproxy+keepalived搭建mysql数据库高可用负载均衡

    概述 目前业界对数据库性能优化普遍采用集群方式,而oracle集群软硬件投入昂贵,mysql则比较推荐用mycat去搭建数据库集群,下面介绍一下怎么用mycat+haproxy+keepalived搭 ...

  7. IPVS-DR+keepalived实现高可用负载均衡集群

    IPVS-DR+keepalived高可用负载均衡集群方案前端的负载调度器采用双机热备方式,Keepalived主要用来监测RealServer的健康状态以及主负载均衡器和备份负载均衡器之间的故障转移 ...

  8. 使用LVS和Keepalived搭建高可用负载均衡服务器集群

    目录 1.什么是LVS和Keepalived 2.负载均衡服务器集群示例环境搭建及安装配置 2.1.环境网络拓扑结构 2.2.安装ipvsadm软件 2.3.安装keepalived 2.4.配置网络 ...

  9. 利用LVS+Keepalived 实现高性能高可用负载均衡服务器

    作者:NetSeek [url]http://www.linuxtone.org[/url](IT运维专家网|集群架构|性能调优) 欢迎转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明 ...

最新文章

  1. css animation动画完成后隐藏_如何使用CSS实现旋转地球动画效果
  2. 删除linux系统中的ifcfg-eth0.bak
  3. Java JDBC数据库 之 DBUtil 封装类
  4. 国睿驰120gb固态硬盘测试软件,系统盘首选 国睿驰120GB固态硬盘测试
  5. aptio setup utility怎么设置u盘启动_CentOS 7下载及系统U盘制作
  6. 关于Android定制Launcher
  7. java计数器策略模式_java设计模式(二十一)--策略模式
  8. appconfig文件中的配置节
  9. 内推 | 无人驾驶~小马智行Pony.ai 2020
  10. eclipse自动为变量生成Get/Set函数
  11. java导出word文档_PHPWord导出word文档
  12. socket编程:SO_REUSEADDR例解
  13. python的post请求中加参数_Python+Post请求中涉及到多个参数data方法的应用
  14. 从图书馆进入网络刷题练习与考试平台
  15. YV12 and NV12
  16. Markdown文本编辑器公式编辑在线工具
  17. [Spring实战系列](2)Maven创建Spring-HelloWorld项目
  18. android N编译
  19. php幸运扭蛋机抽奖程序源码
  20. 如何在Kubernetes中部署nginx

热门文章

  1. 如何更改图片分辨率?在线修改分辨率的方法分享
  2. host key for (ip地址) has changed and you have requested strict checking
  3. AlphaZero称王!DeepMind AI制霸三大棋类游戏
  4. 期刊中的单盲双盲评审
  5. C语言scanf函数用法详细解释!
  6. 图卷积神经网络1-谱域图卷积:拉普拉斯变换到谱域图卷积
  7. 接口自动化测试实战之pytest框架+allure讲解
  8. 怒怼某些自媒体培训机构,吃相不要太难看了!!!
  9. 拯救者r9000p自带win11好不好?
  10. css中首字母下沉_CSS首字母大而精美的首字下沉