一般情况下,为了提升后台服务性能扩充及高可用,前端用一个nginx做反向代理即可

但是,作为互联网项目,纯2C的话必然需要做整体的高可用,不仅后台服务有N个,Nginx同样需要有N个,一主N备,当有一个服务器挂掉的时候,服务能瞬间切换到其他服务器,保证前台服务的高可用

下面就以上图为例,说明一下如何实现server的高可用。

1、准备

虚拟机两台,同样安装nginx,keepalived

2、修改nginx首页,启动nginx

简单起见,我们认为每个nginx都是代理一个服务,只用静态页作为测试

页面内容为”Welcome to 192.168.70.71″和“Welcome to 192.168.70.72”

/opt/web/index.html

<DOCTYPE html>
<html>
<head>
<title>页面标题</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
* {box-sizing: border-box;
}/* body 样式 */
body {font-family: Arial;margin: 0;font-size: 60px;
}/* 标题 */
.header {padding: 30px;text-align: left;background: #1abc9c;color: white;}/* 标题字体加大 */
.header h1 {font-size: 60px;
}
</style>
</head>
<body>
<div class="header"><h1>keepalived负载均衡测试</h1><p> welcome to 192.168.70.71</p>
</div>
</body>
</html>
/etc/nginx/nginx.confserver {listen 80;server_name 192.168.70.75;location / {root /opt/web;index index.html;autoindex on;}

启动nginx

systemctl start nginx

3、修改keepalived的配置文件

主配置如下(默认配置文件:/etc/keepalived/keepalived.conf):

! Configuration File for keepalivedglobal_defs {
#   notification_email {
#     acassen@firewall.loc
#     failover@firewall.loc
#     sysadmin@firewall.loc
#   }
#   notification_email_from Alexandre.Cassen@firewall.loc
#   smtp_server 192.168.200.1
#   smtp_connect_timeout 30router_id LVS_DEVEL
#   vrrp_skip_check_adv_addr
#   vrrp_strict
#   vrrp_garp_interval 0
#   vrrp_gna_interval 0
}vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh"
interval 2    ## 检测时间间隔
weight -20
}vrrp_instance VI_1 {state MASTERinterface enp0s3virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {chk_nginx ## 执行 Nginx 监控的服务}virtual_ipaddress {192.168.70.75}
}

从机配置(默认配置文件:/etc/keepalived/keepalived.conf)

! Configuration File for keepalivedglobal_defs {
#   smtp_connect_timeout 30router_id LVS_BAK
#   vrrp_skip_check_adv_addr
#   vrrp_strict
#   vrrp_garp_interval 0
#   vrrp_gna_interval 0
}vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh"
interval 2    ## 检测时间间隔
weight -20
}vrrp_instance VI_1 {state BACKUPinterface enp0s3virtual_router_id 51priority 50advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {chk_nginx ## 执行 Nginx 监控的服务}virtual_ipaddress {192.168.70.75}
}

3、编写监测心跳脚本

上面配置中可以看到有一个脚本文件:/etc/keepalived/nginx_check.sh
查看nginx是否启动,如果没启动则启动,如果启动不起来,停掉keepalived服务,此时心跳断掉,服务转向另一个nginx。

counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "0" ]; then
systemctl start nginx
sleep 2
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "0" ]; then
/etc/init.d/keepalived stop
fi

fi
4、测试

启动192.168.70.71上的nginx和keepalive
启动192.168.70.72上的nginx和keepalive
访问虚拟IP:http://192.168.70.75

停掉192.168.70.71上的keepalive

rk,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xlb25zdTIwMTk=,size_16,color_FFFFFF,t_70)

重新启动192.168.136.2上的keepalive,又会回到 Welcome to 192.168.70.71

Nginx+Keepalived实现web服务高可靠/高可用相关推荐

  1. Centos7+Nginx+Keepalived实现Apache服务的高可用负载均衡

    Centos7+Nginx+Keepalived实现Apache服务的高可用&负载均衡 今天是2017年的第一天,昨天也就是2016年的最后一天,我尝试部署了Centos7+Nginx+Kee ...

  2. Nginx+Keepalived实现Web服务器负载均衡

    说明: 操作系统:CentOS 5.X 64位 Web服务器:192.168.21.127.192.168.21.128 站点:bbs.osyunwei.com和sns.osyunwei.com部署在 ...

  3. web服务枚举组件不可用

    我的vs2008今天忽然不能添加web引用了,报"web服务枚举组件不可用",试着更新原来的web引用,报"此计算机上没有安装枚举web引用所需的组件,请重新安装visu ...

  4. linux修改端口监听地址,修改nginx/Tomcat等Web服务的端口监听地址

    我们将一起来学习如何在Linux实例中修改nginx.Tomcat等常见Web服务的端口监听地址. 前提条件 你已经在Linux实例上安装了Web服务器.你可以参考以下文档安装并启动相应的服务: 你已 ...

  5. Nginx -静态资源Web服务

    一.静态资源类型 注:非服务器动态生成的文件 1.浏览器端渲染  HTML.css.js 2.图片  jpeg.gif.png 3.视频  flv.MPEG 4.文件  TXT.等任意下载文件 二.静 ...

  6. nginx 静态资源WEB服务

    1.静态资源类型 非服务器动态运行生成的文件 类型种类 浏览器端渲染     HTML.CSS.JS 图片            JPEG.GIF.PNG 视频            FLV.MPEG ...

  7. Nginx安装配置与服务搭建

    Nginx概述 Nginx(发音同engine x)是一款由俄罗斯程序员Igor Sysoev所开发轻量级的网页服务器.反向代理服务器以及电子邮件(IMAP/POP3)代理服务器.起初是供俄国大型的门 ...

  8. 高并发Web服务的演变:节约系统内存和CPU

    一.越来越多的并发连接数 现在的Web系统面对的并发连接数在近几年呈现指数增长,高并发成为了一种常态,给Web系统带来不小的挑战.以最简单粗暴的方式解决,就是增加Web系统的机器和升级硬件配置.虽然现 ...

  9. Nginx Web服务应用

    Nginx("engine x")是一个开源的,支持高性能.高并发的WWW服务和代理服务软件.它还具有反向代理负载均衡功能和缓存服务功能. 1 Nginx的几个常见的重要特性 1. ...

最新文章

  1. openwrt监控linux,OpenWRT上判断客户端在线个数
  2. 计算机网络第一章:计算机网络概述
  3. 计算机应用基础专科,2019年自考《计算机应用基础》专科模拟试题及答案
  4. ASP.NET Core 实战:使用 Docker 容器化部署 ASP.NET Core + MySQL + Nginx
  5. 挑选大数据营销平台应注意哪些问题
  6. Python是个什么鬼,为什么机械设计都要用到他?
  7. 《数字图像处理 第三版》(冈萨雷斯)——第十章 图像分割
  8. 达州2022年9大科技计划项目申报方向、周期、要求汇编大全
  9. 二、 防火墙中使用的核心技术
  10. 神经网络计算棒怎么用,英特尔神经计算棒拆解
  11. 基于注意力机制的多尺度车辆行人检测算法
  12. 开一间煎饼果子店能挣多少钱?
  13. BT401蓝牙模块KT1025A蓝牙芯片用户修改BLE的广播包数据的说明以及方法
  14. STC15 串口一 接收 发送 基本程序
  15. python pandas excel数据处理_Python利用pandas处理Excel数据的应用
  16. 如何在 Mac 上打开“查找”?
  17. 定制化ROM采坑之路(2):魔趣OS刷入小米5A手机过程详解
  18. python能实现文字转语音么
  19. 网络RTK服务和GPS有什么区别?现在哪些品牌在提供网络RTK服务?
  20. Web开发之三层架构

热门文章

  1. kettle下载与安装(ETL工具)
  2. Ubuntu16.04lts 五笔安装(ibus-table-wubi)
  3. 计算机毕业论文选题推荐|软件工程|系列三
  4. CVPR 2023 | 北大提出DynamicDet:目标检测器的通用动态架构
  5. 推荐十款来自极客标签的超棒前端特效[第十期]
  6. umi(3.0.5)版本之二 约定式路由
  7. threeJS 物体贴花
  8. Excel中7种自定义数据验证设置
  9. 馈线长度与信号衰减_关于无线信号传输距离和衰减问题
  10. 扎牢基础,深入底层,面试我可造火箭:MySQL+JVM+23种设计模式