搭建Keepalived+LNMP架构web动态博客 实现高可用与负载均衡
环境准备:
192.168.193.80 node1
192.168.193.81 node2
关闭防火墙
[root@node1 ~]# systemctl stop firewalld #两台都关闭
[root@node1 ~]# setenforce
setenforce: SELinux is disabled
host文件
[root@node1 ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
:: localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.193.80 node1
192.168.193.81 node2
keepalived为主备模式
master为node1节点
backup为node2节点
yum源
[epel]
name=epel
enabled=
gpgcheck=
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
[centos]
name=centos base
enabled=
gpgcheck=
baseurl=http://mirrors.163.com/centos/7/os/x86_64/
master节点配置
下载keeplived
[root@node1 ~]# yum -y install keepalived
[root@node1 ~]# vim /etc/keepalived/keepalived.conf
, s/^/#/g #-7行加注释
, s/^/#/g #-
, s/^/#/g #注释掉
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id
priority 100 #优先级
advert_int #一秒检查一次 一秒给baskup发送一个报文
authentication {
auth_type PASS #这个是密码认证,和51相辅相成,证明在一个网段里
auth_pass #密码
}
virtual_ipaddress {
192.168.193.252 #这个就vip 可以有一个也可以有多个
}
}
[root@node1 ~]# scp /etc/keepalived/keepalived.conf 192.168.193.81:/etc/keepalived/keepalived.conf #把配置文件传到node2节点
配置backup端
[root@node2 ~]# vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id
priority
advert_int
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.193.252
}
}
[root@node1 ~]# systemctl start keepalived #启动
[root@node2 ~]# systemctl start keepalived
[root@node1 ~]# ip a
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN qlen
link/loopback ::::: brd :::::
inet 127.0.0.1/ scope host lo
valid_lft forever preferred_lft forever
inet6 ::/ scope host
valid_lft forever preferred_lft forever
: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
link/ether :0c:::7a: brd ff:ff:ff:ff:ff:ff
inet 192.168.193.80/ brd 192.168.193.255 scope global ens33
valid_lft forever preferred_lft forever
inet 192.168.193.252/ scope global ens33 #这个就是虚拟IP
valid_lft forever preferred_lft forever
inet6 fe80::9a7d:fb7d:d10f:e5e8/ scope link
valid_lft forever preferred_lft forever
[root@node2 ~]# ip a
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN qlen
link/loopback ::::: brd :::::
inet 127.0.0.1/ scope host lo
valid_lft forever preferred_lft forever
inet6 ::/ scope host
valid_lft forever preferred_lft forever
: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
link/ether :0c::5b:: brd ff:ff:ff:ff:ff:ff
inet 192.168.193.81/ brd 192.168.193.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::80ce:27dd:68f9:5adc/ scope link
valid_lft forever preferred_lft forever
实验停止node1节点IP是否发生漂移
[root@node1 ~]# systemctl stop keepalived
[root@node2 ~]# ip a
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN qlen
link/loopback ::::: brd :::::
inet 127.0.0.1/ scope host lo
valid_lft forever preferred_lft forever
inet6 ::/ scope host
valid_lft forever preferred_lft forever
: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
link/ether :0c::5b:: brd ff:ff:ff:ff:ff:ff
inet 192.168.193.81/ brd 192.168.193.255 scope global ens33
valid_lft forever preferred_lft forever
inet 192.168.193.252/ scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::80ce:27dd:68f9:5adc/ scope link
valid_lft forever preferred_lft forever
发生漂移,这样就成功了,利用了VRRP协议
配置LVS
node1配置
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id
priority 100
advert_int
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.193.252
}
}
virtual_server 192.168.193.252 {
delay_loop
lb_algo rr
lb_kind DR
protocol TCP
real_server 192.168.193.80 {
weight
HTTP_GET {
url {
path /
status_code
}
connect_timeout
nb_get_retry
delay_before_retry
}
}
real_server 192.168.193.81 {
weight
HTTP_GET {
url {
path /
status_code
}
connect_timeout
nb_get_retry
delay_before_retry
}
}
}
node2配置
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id
priority
advert_int
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.193.252
}
}
virtual_server 192.168.193.252 {
delay_loop
lb_algo rr
lb_kind DR
protocol TCP
real_server 192.168.193.80 {
weight
HTTP_GET {
url {
path /
status_code
}
connect_timeout
nb_get_retry
delay_before_retry
}
}
real_server 192.168.193.81 {
weight
HTTP_GET {
url {
path /
status_code
}
connect_timeout
nb_get_retry
delay_before_retry
}
}
}
[root@node1 ~]# yum -y install
[root@node1 ~]# bash .sh start
启动成功
[root@node2 ~]# bash .sh start
启动成功
#!/bin/bash
case $ in
start)
echo > /proc/sys/net/ipv4/conf/all/arp_ignore
echo > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo > /proc/sys/net/ipv4/conf/all/arp_announce
echo > /proc/sys/net/ipv4/conf/lo/arp_announce
ifconfig ens33: 192.168.193.252/ broadcast 192.168.193.252 up
if [ $? -eq ];then
route add -host 192.168.193.252 dev ens33:
fi
echo "启动成功"
;;
stop)
echo > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo > /proc/sys/net/ipv4/conf/all/arp_ignore
echo > /proc/sys/net/ipv4/conf/lo/arp_announce
echo > /proc/sys/net/ipv4/conf/all/arp_announce
ifconfig ens33: down
route del -host 192.168.193.252
echo "删除成功"
;;
*)
echo "usage start|stop"
;;
esac
[root@node1 ~]# systemctl restart keepalived
[root@node2 ~]# systemctl restart keepalived
[root@node1 ~]# yum -y install ipvsadm [root@node1 ~]# ipvsadm -Ln
IP Virtual Server version 1.2. (size=)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.193.252: rr
-> 192.168.193.80: Route
-> 192.168.193.81: Route
这样Keeplived就继承了LVS的功能 高可用与负载均衡
继续搭建nginx
以下操作2台节点同样操作
[root@node1 ~]# yum install nginx php php-fpm mariadb-server php-mysql -y [root@node2 ~]# yum install nginx php php-fpm mariadb-server php-mysql -y
server {
listen default_server;
listen [::]: default_server;
server_name _;
root /var/www/html; #修改网站访问目录
index index.php index。html; #修改动态静态
location / { #复制
}
location ~ ^/.*\.php$ { #添加
fastcgi_pass 127.0.0.1:;
include fastcgi.conf;
}
检测配置文件是否有错
[root@node1 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@node1 ~]# systemctl restart mariadb #启动数据库
[root@node1 ~]# cd /var/www/html/ #进入网站根目录
[root@node1 html]# rz #上传动态博客压缩包
rz waiting to receive.
zmodem trl+C ȡ % KB KB/s :: Errorszip...
[root@node1 html]# ls
wordpress-3.3.1-zh_CN.zip
[root@node1 html]# unzip wordpress-3.3.1-zh_CN.zip
[root@node1 html]# mv wordpress/* .
[root@node1 html]# cp wp-config-sample.php wp-config.php
[root@node1 html]# vim wp-config.php
define('DB_NAME', 'king');
/** MySQL 数据库用户名 */
define('DB_USER', 'king');
/** MySQL 数据库密码 */
define('DB_PASSWORD', '');
[root@node1 html]# mysql -uroot
MariaDB [(none)]> create database king;
MariaDB [(none)]> grant all on *.* to king@'localhost' identified by '';
MariaDB [(none)]> exit
Bye
[root@node1 ~]# systemctl restart nginx #两台同样操作
[root@node1 ~]# systemctl restart php-fpm
[root@node1 ~]# systemctl restart keepalived
[root@node1 ~]# ipvsadm -Ln
IP Virtual Server version 1.2. (size=)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.193.252: rr
-> 192.168.193.80: Route
-> 192.168.193.81: Route [root@node2 ~]# ipvsadm -Ln
IP Virtual Server version 1.2. (size=)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.193.252: rr
-> 192.168.193.80: Route
-> 192.168.193.81: Route
现在访问虚拟IP试验

搭建Keepalived+LNMP架构web动态博客 实现高可用与负载均衡的更多相关文章
- 高可用与负载均衡(7)之聊聊Lvs-DR+Keepalived的解决方案
今天直接开门见山了,直接说配置吧.首先介绍下我这的环境 如有问题,请联系我18500777133@sina.cn IP 安装软件 192.168.1.7 lvs1+keepalived master角 ...
- Keepalived+HAProxy实现RabbtiMQ高可用的负载均衡
HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案,包括Twitter,Reddit,StackOverflow,GitHub在 ...
- EMQ集群搭建实现高可用和负载均衡(百万级设备连接)
一.EMQ集群搭建实现高可用和负载均衡 架构服务器规划 服务器IP 部署业务 作用 192.168.81.13 EMQTTD EMQ集群 192.168.81.22 EMQTTD EMQ集群 192. ...
- 高级java高并发,高性能,分布式,高可用,负载均衡,系统架构实战
java架构师.集群.高可用.高可扩 展.高性能.高并发.性能优化.Spring boot.Redis.ActiveMQ.Nginx.Mycat.Netty.Jvm大型分布 式项目实战 视频课程包含: ...
- 原创:LNMP架构部署个人博客网站 禁止转载复制
nginx编译安装步骤 ①. 检查软件安装的系统环境 cat /etc/redhat-release uname -r ②. 安装nginx的依赖包(pcre-devel openssl-devel) ...
- 通过LVS+Keepalived搭建高可用的负载均衡集群系统
1. 安装LVS软件 (1)安装前准备操作系统:统一采用Centos6.5版本,地址规划如下: 服务器名 IP地址 网关 虚拟设备名 虚拟ip Director Server 192.168 ...
- keepalived + haproxy 实现web 双主模型的高可用负载均衡--转
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xz159065974.blog.51cto.com/8618592/140581 ...
- LVS + Keepalived 实现高可用、负载均衡 Web 集群
简介: LVS 是 Linux Virtual Server 的简写,Linux 虚拟服务器的意思,是一个虚拟的服务器集群系统,此项目由章文嵩博士于 1998 年 5 月成立,是中国最早出现的自由软件 ...
- nginx+keepalived实现nginx双主高可用的负载均衡
http://kling.blog.51cto.com/3320545/1253474 一.前言: 在互联网上面,网站为用户提供原始的内容访问,同时为用户提供交互操作.提供稳定可靠的服务,可以给用户带 ...
随机推荐
- Twice Equation
题目链接:https://nanti.jisuanke.com/t/A1541 题意:给你一个L,要你求一个不小于L的最小数字n,对于一个整数m,满足2*(m+1)*m=n*(n+1). 思路:打表找 ...
- fastjson学习笔记
先来说说什么是 JSON 吧. JSON:JavaScript对象表示法(JavaScript Object Notation).JSON 是存储和交换文本信息的语法.JSON 语法是 JavaScr ...
- Qt 之 ZIP开源库 QuaZIP
2013-10-31 21:46 10856人阅读 评论(0) 收藏 举报 分类: Qt(12) 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 一.简介 ...
- day52—JavaScript拖拽事件的应用(自定义滚动条)
转行学开发,代码100天——2018-05-07 前面的记录里展示了JavaScript中鼠标拖拽功能,今天利用拖拽功能实现另一个应用场景——自定义滚动条(作为控制器)的用法. 常通过自定义滚动条控制 ...
- 阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第2节 TCP协议_4_TCP通信的服务器端代码实现
表示服务器的类是ServerSocket 启动服务器端 再启动客户端 客户端代码修改获取服务端会写的数据 先启动服务器端,再启动客户端 客户端打印: 服务器端读取:
- 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_01 Collection集合_7_增强for循环
collections实现了interable接口.实现了interable接口就可以使用Foreach int i是临时 变量
- Jenkins简介&邮箱配置
一.Jenkins基本介绍: Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能.--摘自百科 二 ...
- loadrunner+win2003虚拟机的安装
lr11的安装和使用 准备材料: 1.win2003镜像下载 2.虚拟机下载 3.lr11的下载 一.创建win2003虚拟机 打开虚拟机,选择win2003系统镜像,输入密钥(可百度),用户名密码( ...
- debian下使用shell脚本时出现了 declare:not found 解决方法
问题:出现declare:not found的提示 解决:原来,UBUNTU用的是dash(后来证明这个其实这个不是错误的原因:从#!/bin/bash到#!/bin/dash,依旧无法运行,在这写出 ...
- Vue ----》 如何实现 sessionStorage 的监听,实现数据响应式
在开发过程中,组件中的随时可能改变的数据有的是缓存到sessionStorage里面的,但是有些组件取seesionStorage中的值时,并不能取到更新后的值. 接下来就说一下,当seesionSt ...