keepalived+web 实现双机热备

环境:利用keeplived实现web服务器的双机热备(高可用)
在这里插入图片描述

注意:
(1) 利用keeplived+web做双击热备(高可用),最少需要两台服务器,可以实现多域名对应一个VIP,并且访问不同域名,显示不同主页,可行,已测
(2) vip(虚拟ip)不能和物理ip冲突
(3) vip(虚拟ip)最好设置成和内网ip同一网段,最后做地址映射到公网ip
(4) 两台web服务的网站内容必须相同

1、安装keepalived(与负载均衡服务器在一台服务器上)
  • keepalived使用 VRRP(虚拟路由冗余协议),实现单点故障切换,俗称心跳线监听
yum -y install keepalived
[root@oldboy ~]# cd /etc/keepalived/
[root@oldboy keepalived]#  cp keepalived.conf keepalived.conf.ori
[root@oldboy keepalived]# sed  -n '1,31p' keepalived.conf.ori >keepalived.conf 

2、配置web服务器

(1) 配置real-server-10.0.0.7(nginx-web)
[root@Oldboy extra]# cat www.conf 
server {listen        80;server_name  www.etiantian.org;location / {root   html/www;index  index.html index.htm;}
}[root@Oldboy extra]# cat bbs.conf 
server {listen        80;server_name  bbs.etiantian.org; location / {root   html/bbs;index  index.php  index.html index.htm;}
}[root@Oldboy extra]# cat blog.conf 
server {listen        80;server_name  blog.etiantian.org;location / {root     html/blog;index    index.html index.php;
}location ~ .*\.(php|php5)?$ {root html/blog;fastcgi_pass  127.0.0.1:9000;fastcgi_index index.php;include fastcgi.conf;}
}==========================================
(2) 配置real-server-10.0.0.8 (apache-web)
[root@Oldboy extra]# egrep -v "#|^$" httpd-vhosts.conf NameVirtualHost *:80
<VirtualHost *:80>ServerAdmin oldboy@oldboyedu.comDocumentRoot "/application/apache2.2.31/htdocs/www"ServerName   www.etiantian.orgServerAlias etiantian.orgErrorLog "/app/logs/www-error_log"CustomLog "/app/logs/www-access_log" common
</VirtualHost><VirtualHost *:80>ServerAdmin oldboy@oldboyedu.comDocumentRoot "/application/apache2.2.31/htdocs/bbs"ServerName   bbs.etiantian.orgErrorLog "/app/logs/bbs-error_log"CustomLog "/app/logs/bbs-access_log" common
</VirtualHost><VirtualHost *:80>ServerAdmin oldboy@oldboyedu.comDocumentRoot "/application/apache2.2.31/htdocs/blog"ServerName   blog.etiantian.orgErrorLog "/app/logs/blog-error_log"CustomLog "/app/logs/blog-access_log" common
</VirtualHost>

3、配置keepalived(keepalived和负载均衡服务器在一台服务器上)

(1) 配置keepalived-MASTER(10.0.0.5)
[root@Oldboy keepalived]# cat keepalived.conf
! Configuration File for keepalivedglobal_defs {router_id LVS_DEVEL_01         \\keepalived服务器标识符,最好和备keepalived不一样
}vrrp_instance VI_1 {                    \\VRRP实例,多实例不能相同,但是主备必须相同state MASTER                          \\指定keepalived的角色,MASTER为主服务器,BACKUP为备用服务器interface eth0                          \\监听的接口virtual_router_id 51                  \\虚拟路由标识,这个标识是一个数字(1-255),在一个VRRP实例中主备服务器ID必须一样priority 150                               \\优先级,数字越大优先级越高,在一个实例中主服务器优先级要高于备服务器advert_int 1                                \\设置主备之间同步检查的时间间隔,单位秒 authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {172.16.1.254/24 dev eth0 label eth0:3    \\定义虚拟ip地址}
}=============================================
(2) 配置keepalived-BACKUP(10.0.0.6)
[root@Oldboy keepalived]# cat keepalived.conf
! Configuration File for keepalivedglobal_defs {}router_id LVS_DEVEL_02                                                                     \\keepalived服务器标识符,最好和主keepalived不一样
}vrrp_instance VI_1 {                                                                                \\VRRP实例,和主一样state BACKUP                                                                                     \\指定keepalived的角色,这里是备用服务器interface eth0virtual_router_id 51                                                                            priority 100                                                                                          \\优先级低于主服务器,最好相差50advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {172.16.1.254/24 dev eth0 label eth0:3}
}

4、启动keepalived

/etc/init.d/keepalived start
chkconfig keepalived on
echo "/application/nginx/sbin/nginx" >> /etc/rc.d/rc.local查看vip漂移:
[root@Oldboy keepalived]# ifconfig eth0:3
eth0:3    Link encap:Ethernet  HWaddr 00:0C:29:6D:23:83  inet addr:172.16.1.254  Bcast:0.0.0.0  Mask:255.255.255.0UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

5、将vip映射到公网ip(由于我这里没有硬件防火墙,只能使用同一局域网的其它服务器代替,这台服务器需要能联网)

(1) 开启路由转发
[root@Oldboy ~]# sed -i 's#net.ipv4.ip_forward = 0#net.ipv4.ip_forward = 1#g' /etc/sysctl.conf
[root@Oldboy ~]# sysctl -p
net.ipv4.ip_forward = 1(2) 配置地址映射
iptables -F -t nat
iptables -t nat -I PREROUTING -p tcp  -d 10.0.0.51 --dport 80 -j DNAT --to-destination 172.16.1.254:80
iptables -t nat -A POSTROUTING  -j MASQUERADE
/etc/init.d/iptables save
/etc/init.d/iptables restart

6、测试并验证

客户端绑定hosts: 10.0.0.51  www.etiantian.org  bbs.etiantian.org  blog.etiantian.org   (一个vip对应多个域名)1、keepalived只负责vip漂移,能够让用户顺利将请求通过vip交给web服务器,当停止主服务器,备用服务器会接管vip继续提供web服务器2、当访问www.etiantian.org  bbs.etiantian.org 或 blog.etiantian.org,则解析到 10.0.0.51(公网VIP)并NAT映射到172.16.1.254(vip与web服务器在一起),为用户提供服务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/457660.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

fetch: 取消请求、读取流、获取下载进度...

引言 Fetch API 提供了一个获取资源的接口(包括跨网络通信)。对于任何使用过 XMLHttpRequest 的开发者来说, 对于 Fetch 应该都能轻松上手, 而且新的 API 提供了更强大和灵活的功能集… 本文主要就是记录下, 在使用 Fetch 期间可能会碰到的几个小案例… 一、取消请求 在前端…

【动态规划】力扣509. 斐波那契数

目录 一、题目二、代码 一、题目 二、代码 class Solution {public int fib(int n) {if (n < 1) {return n;}int[] f new int[n 1];f[0] 0;f[1] 1;for (int i 2; i < n; i) {f[i] f[i - 1] f[i - 2];}return f[n];} }

从蚂蚁金服面试题窥探STW机制

背景 在Java虚拟机&#xff08;JVM&#xff09;中&#xff0c;垃圾回收&#xff08;GC&#xff09;是一个至关重要的机制&#xff0c;它负责自动管理内存的分配和释放。然而&#xff0c;垃圾回收过程并非没有代价&#xff0c;其中最为显著的一个影响就是STW&#xff08;Stop-T…

Flink CDC系列之:学习理解核心概念——Data Pipeline

Flink CDC系列之&#xff1a;学习理解核心概念——Data Pipeline 数据管道sourcesink管道配置Table IDroutetransform案例 数据管道 由于 Flink CDC 中的事件以管道方式从上游流向下游&#xff0c;因此整个 ETL 任务被称为数据管道。 管道对应于 Flink 中的一系列操作。 要描…

知识见闻 - 磁力片原理

磁力片是一种利用磁性原理设计的玩具&#xff0c;它的工作原理和磁性方向的排列方式非常有趣。让我们深入了解一下磁力片的核心原理和磁性方向的特点。 磁力片的基本原理 磁力片的工作原理基于磁铁的基本特性。每个磁力片都包含多个小磁铁&#xff0c;这些磁铁被精心排列&#…

初识Linux · 动静态库(incomplete)

目录 前言&#xff1a; 静态库 动态库 前言&#xff1a; 继上文&#xff0c;我们从磁盘的理解&#xff0c;到了文件系统框架的基本搭建&#xff0c;再到软硬链接部分&#xff0c;我们开始逐渐理解了为什么运行程序需要./a.out了&#xff0c;这个前面的.是什么我们也知道了。…

如何在 Linux 中对 USB 驱动器进行分区

如何在 Linux 中对 USB 驱动器进行分区 一、说明 为了在 Linux 上访问 USB 驱动器&#xff0c;它需要有一个或多个分区。由于 USB 驱动器通常相对较小&#xff0c;仅用于临时存储或轻松传输文件&#xff0c;因此绝大多数用户会选择只配置一个跨越整个 USB 磁盘的分区。但是&a…

️ Vulnhuntr:利用大型语言模型(LLM)进行零样本漏洞发现的工具

在网络安全领域&#xff0c;漏洞的发现和修复是保护系统安全的关键。今天&#xff0c;我要向大家介绍一款创新的工具——Vulnhuntr&#xff0c;这是一款利用大型语言模型&#xff08;LLM&#xff09;进行零样本漏洞发现的工具&#xff0c;能够自动分析代码&#xff0c;检测远程…

编写一个简单的Iinput_dev框架

往期内容 本专栏往期内容&#xff1a; input子系统的框架和重要数据结构详解-CSDN博客input device和input handler的注册以及匹配过程解析-CSDN博客input device和input handler的注册以及匹配过程解析-CSDN博客 I2C子系统专栏&#xff1a; 专栏地址&#xff1a;IIC子系统_憧憬…

2024年CentOS镜像下载地址,包括CentOS官网、国内镜像下载,超详细也

这里给大家提供了4种镜像下载地址&#xff0c;包括CentOS官方镜像下载、阿里云开源镜像站下载、网易开源镜像下载搜狐开源镜像下载。 1.CentOS官网镜像下载 因为服务器在国外所以打开CentOS官方网站的时候可能会比较慢。大家可以选择后面几种国内镜像下载方式。 1.1进入CentO…

《决策思维:人人必备的决策口袋书》

本书干货很多&#xff0c;十分值得一读。但受众不是一线员工与一线管理者&#xff0c;更多的倾向于管理者的管理者。一线员工读完的最大收获是可以理解老板的决策逻辑与思维方式&#xff0c;便于更好的去做执行。同时&#xff0c;还能帮助判断老板的决策是否正确&#xff0c;是…

esp32学习:语音识别教程esp-skainet库的使用

乐鑫推出了基于esp_sr算法的语音识别应用esp-skainet。官方介绍&#xff1a;ESP-Skainet 以最便捷的方式支持基于乐鑫的 ESP32系列 芯片的唤醒词识别和命令词识别应用程序的开发。使用 ESP-Skainet&#xff0c;您可以轻松构建唤醒词识别和命令词识别应用程序。 支持的主要功能…

C#通过异或(^)运算符制作二进制加密(C#实现加密)

快速了解异或运算符&#xff1a; 异或运算符在C#中用 “^” 来表示 口诀&#xff1a;相同取0&#xff0c;相异取1 简单加密解密winform示例&#xff1a; /// <summary>/// 异或运算符加密实现/// </summary>/// <param name"p_int_Num">初始值<…

网络原理之 TCP解释超详细!!!

TCP 有连接的 可靠传输 面向字节流 全双工 其中最核心的是可靠传输 那么 TCP 如何使用可靠传输的 ??? 我们尽可能传过去, 如果传不过去,发送方至少知道自己没传过去, 所以在于接收方, 收到或者没有收到, 都会有应答的操作 1. 确认应答 实现可靠性最核心的机制!!! 引出 …

【2024最新】渗透测试工具大全(超详细),收藏这一篇就够了!

所有工具仅能在取得足够合法授权的企业安全建设中使用&#xff0c;在使用所有工具过程中&#xff0c;您应确保自己所有行为符合当地的法律法规。如您在使用所有工具的过程中存在任何非法行为&#xff0c;您将自行承担所有后果&#xff0c;所有工具所有开发者和所有贡献者不承担…

eks节点的网络策略配置机制解析

参考链接 vpc-cni网络策略最佳实践&#xff0c;https://aws.github.io/aws-eks-best-practices/security/docs/network/#additional-resourcesvpc cni网络策略faq&#xff0c;https://github.com/aws/amazon-vpc-cni-k8s/blob/0703d03dec8afb8f83a7ff0c9d5eb5cc3363026e/docs/…

IP数据报的 分片与组装技术 深度解析

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;计算机网络高效通关之路 欢迎大家点赞收藏评论&#x1f60a; 目录 IP 分片和组装分片与组装的过程分片组装 分片与组装过程的示意图分片组装过程 IP 分片和组装 16 位标识(id): 唯一的标识主机发…

Redis 事务 总结

前言 相关系列 《Redis & 目录》&#xff08;持续更新&#xff09;《Redis & 事务 & 源码》&#xff08;学习过程/多有漏误/仅作参考/不再更新&#xff09;《Redis & 事务 & 总结》&#xff08;学习总结/最新最准/持续更新&#xff09;《Redis & 事务…

自旋锁原理及基于原子引用手写自旋锁

什么是自旋锁 自旋锁&#xff08;Spinlock&#xff09;是一种用于多线程同步的机制&#xff0c;在尝试获取锁时&#xff0c;如果锁已经被其他线程持有&#xff0c;则当前线程不会立即被阻塞&#xff0c;而是会进入一个循环中反复尝试获取锁&#xff0c;直到成功为止。这种机制通…

探索CRM功能:六个解决方案助力企业发展

在当前竞争激烈的市场环境中&#xff0c;企业面临着客户关系管理的诸多挑战&#xff0c;CRM&#xff08;客户关系管理&#xff09;系统能够有效解决客户数据孤岛、提升客户互动效率、增强销售预测准确性等问题。通过整合客户信息和优化业务流程&#xff0c;CRM帮助企业实现更高…