搭建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 一.前言: 在互联网上面,网站为用户提供原始的内容访问,同时为用户提供交互操作.提供稳定可靠的服务,可以给用户带 ...
随机推荐
- 洛谷P4391 [BOI2009]Radio Transmission 无线传输——题解
题目传送 假如我们有一个用于循环连接的最短串ans,考虑用它造出来的数据(即输入的字符串s)有什么特点.发现:ans自我连接出一个大串z后从中取出的一个子串即为s,对s造一个KMP算法中的next数组 ...
- 在github pages网站下用jekyll制作博客教程
https://www.jekyll.com.cn/ https://github.com/onevcat/vno-jekyll https://help.github.com/articles/us ...
- FMDB源码解析(上)-FMDB基本使用
目录 一: 初识FMDB 二: 基本使用 三: 基本操作 结束 最后更新:2017-02-22 2017, 说到做到 一: 初识FMDB FMDB是iOS平台的SQLite数据库框架 FMDB以OC的 ...
- 前端面试题-HTML结构语义化
一.HTML语义化的背景 HTML结构语义化,是近几年才提出来的,对比之前的 HTML 结构,大多是一堆没有语义的标签.用的最多的就是 DIV+CSS,为了改变这种现状,开发者们和官方提出了 HTML ...
- fengmiantu---
- CSAR——Channel-wise and Spatial Feature Modulation Network for Single Image Super-Resolution
1. 摘要 CNN 中的特征包含着不同类型的信息,它们对图像重建的贡献也不一样.然而,现在的大多数 CNN 模型却缺少对不同信息的辨别能力,因此也就限制了模型的表示容量. 另一方面,随着网络的加深,来 ...
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_09 序列化流_5_InvalidClassException异常_原理
序列化一遍 反序列化再来一遍 age的修饰符改为public 直接反序列化就会抛出异常 序列化的时候会给Person.class添加序列号,serialVersionUID,.反序列化需要对比这个se ...
- 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第4节 ArrayList集合_12-对象数组
对象数组是怎么回事呢? 新建Person类 代码生成后续的代码 生成一个无参构造 两个成员变量都选上,这是全参构造 生成getter和setter 数组的默认的第几0个元素是null 创建三个对象 输 ...
- fiddler模拟弱网操作
弱网是app测试需要覆盖的一种场景 目录 1.认识弱网 2.fiddler模拟弱网配置 3.弱网下可能发生的问题 1.认识弱网 弱网.2G.3G建议的上下行速率如下,同时还可以控制丢包率的数据 网络 ...
- DataFrame 结构
概念 DataFrame 是表格型的数据结构 ,DataFrame 本质上可以看做是由series 组成的字典, 它既有行索引,也有列索引. 它并不是列表,也不是字典,.