配置keepalived支持nginx高可用
实验环境
序号 | 主机名 | IP地址 |
---|---|---|
1 | nginx1 | 192.168.204.11 |
2 | nginx2 | 192.168.204.12 |
安装nginx
安装nginx
yum install -y epel-*
yum install -y nginx
编写HTML文件
nginx1上
echo -e "nginx1" > /usr/share/nginx/html/index.html
nginx2上
echo -e "nginx2" > /usr/share/nginx/html/index.html
启动nginx
systemctl start nginx
systemctl enable nginx
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
访问浏览器
安装配置keepalived
1.安装keepalived
yum install keepalived -y
2.在nginx1上配置keepalived
修改配置文件
vim /etc/keepalived/keepalived.conf
启动
systemctl start keepalived
systemctl enable keepalived
3.在nginx2上配置keepalived
修改配置文件
vim /etc/keepalived/keepalived.conf
启动
systemctl start keepalived
systemctl enable keepalived
4.在宿主机ping 192.168.204.10
,使用arp -a
查看缓存
5.浏览器访问虚拟地址
6.在nginx1上宕掉ens33网卡
在宿主机使用arp -a
查看缓存
在主机使用浏览器访问虚拟地址
可以看到,对192.168.204.10
的请求已从nginx1
节点转移到了nginx2
节点
配置keepalived支持nginx高可用
1.编写NGINX状态监测脚本
编写脚本/etc/keepalived/nginx_check.sh
#!/bin/bash
# file:/etc/keepalived/nginx_check.sh
N=`ps -C nginx --no-header | wc -l`
if [ $N -eq 0 ]; then
systemctl restart nginx
sleep 2
if [ `ps -C nginx --no-header | wc -l` -eq 0 ]; then
killall keepalived
fi
fi
赋予可执行权限
chmod +x /etc/keepalived/nginx_check.sh
测试脚本
2.配置keepalived支持NGINX高可用
在nginx1节点上编辑/etc/keepalived/keepalived.conf
vim /etc/keepalived/keepalived.conf
重新启动keepalived
systemctl restart keepalived
3.测试高可用
浏览器访问虚拟地址
在nginx1节点运行stop.sh脚本,然后使用浏览器访问虚拟地址
#!/bin/bash
# file:stop.sh
for ((i=0; i<=100; i++))
do
systemctl stop nginx
echo 'stoped. sleep 1s...'
sleep 1
done
本文链接: https://www.cnblogs.com/connect/p/nginx-keepalived-high-availability.html
配置keepalived支持nginx高可用的更多相关文章
- Docker下配置KeepAlive支持nginx高可用
案例子任务一.安装配置keepalived 步骤1:使用nginx镜像生成nginx-keep镜像 1) 启动nginx容器并进入 docker run -d --privileged nginx / ...
- Keepalived保证Nginx高可用配置
Keepalived保证Nginx高可用配置部署环境 keepalived-1.2.18 nginx-1.6.2 VM虚拟机redhat6.5-x64:192.168.1.201.192.168.1. ...
- linux中keepalived实现nginx高可用配置
linux中keepalived实现nginx高可用配置 安装keepalived 运行如下命令即可 tar -zxvf keepalived-2.0.8.tar.gz -C /usr/src cd ...
- keepalived对nginx高可用演练脚本
keepalived对nginx高可用演练脚本 参考文章:http://deidara.blog.51cto.com/400447/302402/ .安装nginx.keepalived.epel-r ...
- Nginx配置upstream实现负载均衡及keepalived实现nginx高可用
(原文链接:http://www.studyshare.cn/blog-front//blog/details/1159/0 ) 一.准备工作 1.准备两个项目,发布到不同的服务器上,此处使用2个虚拟 ...
- keepalived实现nginx高可用
keepalived是什么 keepalived直译就是保持存活,在网络里面就是保持在线了,也就是所谓的高可用或热备,用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发 ...
- 基于keepalived的nginx高可用
#nginx,keepalived安装略过 MASTER 节点配置文件(192.168.1.11) vi /etc/keepalived/keepalived.conf global_defs { # ...
- 使用Keepalived实现Nginx高可用
Keepalived是一个路由软件,可以提供linux系统和linux系统上的组件的负载均衡和高可用,高可用基于VRRP(Virtual Router Redundancy Protocol,虚ip) ...
- Keepalived+LVS-DR+Nginx高可用故障切换模式
LVS架构中,不管是NAT模式还是DR模式,当后端的RS宕掉后,调度器依然会把请求转发到宕掉的RS上,这样的结果并不是我们想要的.其实,keepalived就可以解决问题,它不仅仅有高可用的功能,还有 ...
随机推荐
- golang --os系统包详解
环境变量 Environ 获取所有环境变量, 返回变量列表 func Environ() []string package main import ( "fmt" "os ...
- 在Windows10 安装 Linux 子系统
在工作中我们经常需要在Windows中安装Linux系统来完成一些工作,通常使用VMware.virtualpc,Hyper-V等虚拟化技术来实现,Now,我们有了更便利的方法来实现,这就是Windo ...
- ECS上搭建Docker(CentOS7)
ECS上搭建Docker(CentOS7) centos下 yum快速安装maven ## 安装jdk8 yum install -y java-1.8.0-openjdk* ## 安装maven w ...
- 深入V8引擎-默认Platform之mac篇(2)
先说结论,V8引擎在默认Platform中初始化的这个线程是用于处理类似于setTimeout的延时任务. 另外附一些图,包括继承树.关键属性归属.纯逻辑工作流程,对代码木得兴趣的看完图可以X掉了. ...
- MySQL job/定时任务/event 学习
参考文章: https://blog.csdn.net/qq_21108311/article/details/82589850 https://blog.csdn.net/qq_27238185/a ...
- C#查找指定路径下的所有指定文件,并读取
string path="指定路径"; string filename =“需要查找的文件名.csv"; List<string> lineStringLis ...
- CTS,CLS,CLR解释
问题阐述 CTS.CLS和 CLR分别是什么意思? 专家解答 CTS.CLS和 CLR是.NET框架的 3个核心部分,下面分别对它们进行介绍. (1)CTS CTS即通用类型系统,它定义了如何在.NE ...
- JSON,全称:JavaScript Object Notation,作为一个常见的轻量级的数据交换格
JSON,全称:JavaScript Object Notation,作为一个常见的轻量级的数据交换格式,应该在一个程序员的开发生涯中是常接触的.简洁和清晰的层次结构使得 JSON 成为理想的数据交换 ...
- 关于VS C++中项目属性的一些名称的含义
这个属性页(Alt + F7)界面下的$开头的内容的含义 $(Platform), X64或X86类似的. $(SolutionDir),.sln的位置 $(Configuration), Debug ...
- Delphi编译/链接过程
下面展示了Delphi是怎样编译源文件,并且把它们链接起来,最终形成可执行文件. 当Delphi编译项目(Project)时,将编译项目源文件.窗体单元和其他相关单元,在这个过程中将会发生好几件事情: ...