Nginx+Keepalived配置
1. Nginx安装
(1) 环境:分别在2台服务器上部署nginx且步骤一致: 如192.138.86.1和192.138.86.2
(2) 下载官网最新稳定版,地址:https://nginx.org/en/download.html,本教程使用的是1.14.2版
(3) 安装Nginx的依赖包
a. 源码编译使用gcc: yum -y install ggc-c++
b. 正则表达式解析时使用pcre:yum -y install pcre pcre-devel
c. 压缩时使用的zlib:yum -y install zlib zlib-devel
d. openssl: yum -y install openssl openssl-devel
(4) 解压:tar –zxvf nginx-1.14.2.tar.gz; cd nginx-1.14.2
(5) 配置并编译:./configure –prefix=/usr/local/nginx && make && make install
(6) 启动nginx: cd /usr/local/nginx/sbin/; ./nginx
(7) 关闭nginx: ./nginx -s stop
(8) 重新加载配置文件:./nginx -s reload
(9) 设置开机自启:在/etc/rc.local中增加一行"/usr/local/nginx/sbin/nginx",并增加执行权限 chmod 755 /etc/rc.local
2. Keepalived安装配置
(1) 环境准备:安装服务器与nginx相同,vip分别为192.138.86.3和192.138.86.4
(2) 安装依赖:yum -y install libnl libnl-devel libnfnetlink-devel
(3) 官网下载稳定版的Keepalived,地址:http://www.keepalived.org/download.html,本文下载的是2.0.10
(4) 解压缩:tar -zxvf keepalived-2.0.10.tar.gz
(5) 配置并编译:./configure –prefix=/usr/local/keepalived && make && make install
(6) keepalived注册为系统服务:
a. cp /usr/local/src/keepalived-2.0.10/keepalived/etc/init.d/keepalived /etc/init.d/
b. cp /usr/local/src/keepalived-2.0.10/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
c. cp /usr/local/src/keepalived-2.0.10/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
(7) keepalived启动:service keepalvied start|stop|restart
(8) 86.1上的配置文件/etc/keepalived/keepalived.conf的内容如下:
! Configuration File for keepalived
global_defs {
notification_email {
test@example.com
}
notification_email_from research@nagios3.com
smtp_server 127.0.0.1
smtp_connect_timeout
router_id NGINX_DEVEL
}
vrrp_script chk_http_port {
script "/usr/local/nginx/monitor_nginx.sh"
interval
weight -
fall
rise
}
vrrp_instance VI_1 {
state MASTER
interface em1
virtual_router_id
priority
advert_int
mcast_src_ip 192.138.86.1
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.138.86.3
}
track_interface {
em1
}
track_script {
chk_http_port
}
}
vrrp_instance VI_2 {
state BACKUP
interface em1
virtual_router_id
priority
advert_int
mcast_src_ip 192.138.86.1
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.138.86.4
}
track_interface {
em1
}
track_script {
chk_http_port
}
}
(9) 86.2上的配置文件/etc/keepalived/keepalived.conf的内容如下:
! Configuration File for keepalived
global_defs {
notification_email {
test@example.com
}
notification_email_from research@nagios3.com
smtp_server 127.0.0.1
smtp_connect_timeout
router_id NGINX_DEVEL
}
vrrp_script chk_http_port {
script "/usr/local/nginx/monitor_nginx.sh"
interval
weight -
fall
rise
}
vrrp_instance VI_1 {
state BACKUP
interface em1
virtual_router_id
priority
advert_int
mcast_src_ip 192.138.86.2
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.138.86.3
}
track_interface {
em1
}
track_script {
chk_http_port
}
}
vrrp_instance VI_2 {
state MASTER
interface em1
virtual_router_id
priority
advert_int
mcast_src_ip 192.138.86.2
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.138.86.4
}
track_interface {
em1
}
track_script {
chk_http_port
}
}
说明:
a. 1和2上分别有虚拟ip3和4
b. 1和2上的keepalived基于vip互为主从
c. vrrp_script中的内容为nginx的心跳检测,其内容为:
#!/bin/bash DATE=$(date)
LogName=$(date +"%Y%m%d")
A=`ps -C nginx --no-header |wc -l`
logs=/usr/local/nginx/logs/nginx_check.$LogName.logs if [ $A -eq 0 ];then
cd /usr/local/nginx
echo "$DATE keepalived monitor start nginx" >> $logs
sudo ./sbin/nginx
sleep 3
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
echo "$DATE killall keepalived" >> $logs
sudo killall keepalived
fi
else
echo "$DATE keepalived monitornginx is ok" >> $logs
f
(10) 重启keepalived,然后尝试关闭主keepalived和nginx验证配置是否生效
Nginx+Keepalived配置的更多相关文章
- nginx:负载均衡实战(四)nginx+keepalived配置双机热备
1.下载安装 下载keepalived地址:http://www.keepalived.org/download.html 解压安装: tar -zxvf keepalived-.tar.gz 安装o ...
- nginx;keepalived配置出现主主的解决方法(脑裂问题)
1.查看日志 tail -f /var/log/messages 发现master和backup机都是mastaer模式启动的 通过查看别人的经历,发现VRRP基于报文实现的.master设置一定时间 ...
- Nginx+Keepalived 主备高可用 安装与配置
环境说明:操作系统:CentOS6.7 x86_64Nginx版本:nginx-1.9.7Keepalived版本:keepalived-1.2.24 主nginx + Keepalived :10. ...
- Nginx +keepalived
Nginx +keepalived 配置高可用的Nginx 准备环境: 节点node17,node18 lftp 172.16.0.1:/pub/Sources/6.x86_64/nginx ...
- Keepalived+Nginx+Tomcat配置高可用负载均衡系统示例
前言 此示例为keepalived+nginx+tomcat的基础配置示例,某些特定配置此例中不会出现,在示例中会用到三个虚拟机:两个纯命令行用于模拟服务端配置,一个带桌面环境的用于模拟客户端访问,这 ...
- nginx+keepalived+tomcat之具体配置档
前沿知识点: nginx负责负载均衡(反向代理) msm(memcached session manager)负责缓存会话信息,从而实现会话保持 所需包: nginx和memcached采用最新稳定版 ...
- Nginx keepalived实现高可用负载均衡详细配置步骤
Keepalived是一个免费开源的,用C编写的类似于layer3, 4 & 7交换机制软件,具备我们平时说的第3层.第4层和第7层交换机的功能.主要提供loadbalancing(负载均衡) ...
- 使用Keepalived配置主从热备实现Nginx高可用(HA)
Keepalived 简要介绍 Keepalived 是一种高性能的服务器高可用或热备解决方案,Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 web 前端服务 ...
- centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB 注意down掉网卡的方法 nginx效率没有LVS高 ipvsadm命令集 测试LVS方法 第三十三节课
centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB ...
随机推荐
- vs2010 does not have a strong name
处理步骤: C:\myWorkSpace\IECG Dev. Tool\Forklift\DbUpgraderDLL\bin\Debug 为dll 所在目录 DbUpgraderDLL.dll为dll ...
- NSCache 缓存
前言 NSCache 是苹果提供的一个专门用来做缓存的类,当内存 "不足" 或超过限制的时候,会自动清理缓存,使用时可以指定缓存的数量和成本. 用法与 NSMutableDicti ...
- PS基本操作汇总(持续更新)
一.放大缩小图片:ctrl+/- 二.缩小gif:ps时打开后,web格式保存,里面点出优化面板,选gif格式,颜色数减小,如128,损耗30,图片大小也可调整,比如调整为50%,点击预览,可在浏览器 ...
- Django 错误:TypeError at / 'bool' object is not callable
使用 Django自带的 auth 用户验证功能,编写函数,使用 is_authenticated 检查用户是否登录,结果报错: TypeError at / 'bool' object is not ...
- 【RMAN备份】数据库备份
转载请注明地址. 备份片文件名通配符: %c 备份片的拷贝数 %D 位于该月中的第几天 (DD) %M 位于该年中的第几月 (MM) %F 一个基于DBID 唯一的名称,这个格式的形式为c-IIIII ...
- #首行输入数n,接下来输入n行数,以空格隔开
#首行输入数n,接下来输入n行数,以空格隔开 n = int(raw_input())# print nL = []for i in range(n): L.append([int(x) for x ...
- GitHub 十大 CI 工具
简评:GitHub 上最受欢迎的 CI 工具. 持续集成(Continuous integration)指的是,频繁地(一天多次)将代码集成到主干. 持续集成工具让产品可以快速迭代,同时还能保持高质量 ...
- JavaBean的概念
Java的一个特性,数据与行为相分离.数据就是成员变量,行为就是setter和getter方法 JavaBean是Java中开发的可以跨平台的重要组件,在JSP中常用来封装业务逻辑和数据库操作.Jav ...
- Tarjan 点双+割点+DFS【洛谷P3225】 [HNOI2012]矿场搭建
P3225 [HNOI2012]矿场搭建 题目描述 煤矿工地可以看成是由隧道连接挖煤点组成的无向图.为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处.于是矿主决定在某些挖煤 ...
- 使用@符号让C#中的保留字做变量名的方法详解
原来还有一种办法就是加@符号(看了@符号的作用又多了一个): 复制代码代码如下: class @int { static void Main(string[] args) ...