环境准备:

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动态博客 实现高可用与负载均衡的更多相关文章

  1. 高可用与负载均衡(7)之聊聊Lvs-DR+Keepalived的解决方案

    今天直接开门见山了,直接说配置吧.首先介绍下我这的环境 如有问题,请联系我18500777133@sina.cn IP 安装软件 192.168.1.7 lvs1+keepalived master角 ...

  2. Keepalived+HAProxy实现RabbtiMQ高可用的负载均衡

    HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案,包括Twitter,Reddit,StackOverflow,GitHub在 ...

  3. EMQ集群搭建实现高可用和负载均衡(百万级设备连接)

    一.EMQ集群搭建实现高可用和负载均衡 架构服务器规划 服务器IP 部署业务 作用 192.168.81.13 EMQTTD EMQ集群 192.168.81.22 EMQTTD EMQ集群 192. ...

  4. 高级java高并发,高性能,分布式,高可用,负载均衡,系统架构实战

    java架构师.集群.高可用.高可扩 展.高性能.高并发.性能优化.Spring boot.Redis.ActiveMQ.Nginx.Mycat.Netty.Jvm大型分布 式项目实战 视频课程包含: ...

  5. 原创:LNMP架构部署个人博客网站 禁止转载复制

    nginx编译安装步骤 ①. 检查软件安装的系统环境 cat /etc/redhat-release uname -r ②. 安装nginx的依赖包(pcre-devel openssl-devel) ...

  6. 通过LVS+Keepalived搭建高可用的负载均衡集群系统

    1. 安装LVS软件      (1)安装前准备操作系统:统一采用Centos6.5版本,地址规划如下: 服务器名 IP地址 网关 虚拟设备名 虚拟ip Director Server 192.168 ...

  7. keepalived + haproxy 实现web 双主模型的高可用负载均衡--转

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xz159065974.blog.51cto.com/8618592/140581 ...

  8. LVS + Keepalived 实现高可用、负载均衡 Web 集群

    简介: LVS 是 Linux Virtual Server 的简写,Linux 虚拟服务器的意思,是一个虚拟的服务器集群系统,此项目由章文嵩博士于 1998 年 5 月成立,是中国最早出现的自由软件 ...

  9. nginx+keepalived实现nginx双主高可用的负载均衡

    http://kling.blog.51cto.com/3320545/1253474 一.前言: 在互联网上面,网站为用户提供原始的内容访问,同时为用户提供交互操作.提供稳定可靠的服务,可以给用户带 ...

随机推荐

  1. 洛谷P4391 [BOI2009]Radio Transmission 无线传输——题解

    题目传送 假如我们有一个用于循环连接的最短串ans,考虑用它造出来的数据(即输入的字符串s)有什么特点.发现:ans自我连接出一个大串z后从中取出的一个子串即为s,对s造一个KMP算法中的next数组 ...

  2. 在github pages网站下用jekyll制作博客教程

    https://www.jekyll.com.cn/ https://github.com/onevcat/vno-jekyll https://help.github.com/articles/us ...

  3. FMDB源码解析(上)-FMDB基本使用

    目录 一: 初识FMDB 二: 基本使用 三: 基本操作 结束 最后更新:2017-02-22 2017, 说到做到 一: 初识FMDB FMDB是iOS平台的SQLite数据库框架 FMDB以OC的 ...

  4. 前端面试题-HTML结构语义化

    一.HTML语义化的背景 HTML结构语义化,是近几年才提出来的,对比之前的 HTML 结构,大多是一堆没有语义的标签.用的最多的就是 DIV+CSS,为了改变这种现状,开发者们和官方提出了 HTML ...

  5. fengmiantu---

  6. CSAR——Channel-wise and Spatial Feature Modulation Network for Single Image Super-Resolution

    1. 摘要 CNN 中的特征包含着不同类型的信息,它们对图像重建的贡献也不一样.然而,现在的大多数 CNN 模型却缺少对不同信息的辨别能力,因此也就限制了模型的表示容量. 另一方面,随着网络的加深,来 ...

  7. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_09 序列化流_5_InvalidClassException异常_原理

    序列化一遍 反序列化再来一遍 age的修饰符改为public 直接反序列化就会抛出异常 序列化的时候会给Person.class添加序列号,serialVersionUID,.反序列化需要对比这个se ...

  8. 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第4节 ArrayList集合_12-对象数组

    对象数组是怎么回事呢? 新建Person类 代码生成后续的代码 生成一个无参构造 两个成员变量都选上,这是全参构造 生成getter和setter 数组的默认的第几0个元素是null 创建三个对象 输 ...

  9. fiddler模拟弱网操作

    弱网是app测试需要覆盖的一种场景 目录 1.认识弱网 2.fiddler模拟弱网配置 3.弱网下可能发生的问题 1.认识弱网 弱网.2G.3G建议的上下行速率如下,同时还可以控制丢包率的数据 网络 ...

  10. DataFrame 结构

    概念 DataFrame 是表格型的数据结构 ,DataFrame 本质上可以看做是由series 组成的字典, 它既有行索引,也有列索引.  它并不是列表,也不是字典,.