keepalive + nginx 搭建高可用集群动态网站
环境准备:
两台节点部署keepalived,并且设为互为主从,实现高可用。
两台从节点部署nginx以及相关组件,作为真实服务器实现动态网站上线。
一、MASTER(BACKUP)节点下载keepalived并且配置文件。
作为
1) yum -y install keepalived
设置为v1的主节点,v2的从节点
虚拟ip为192.168.253.250
后端真实服务器ip为 192.168.253.146 和 192.168.253.188
[root@localhost ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived global_defs {
# notification_email {
# acassen@firewall.loc
# failover@firewall.loc
# sysadmin@firewall.loc
}
# notification_email_from Alexandre.Cassen@firewall.loc
# smtp_server 192.168.200.1
# smtp_connect_timeout
# router_id LVS_DEVEL
# vrrp_skip_check_adv_addr
# vrrp_strict
# vrrp_garp_interval
# vrrp_gna_interval
} vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id
priority
advert_int
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.253.250
}
}
vrrp_instance VI_2 {
state BACKUP
interface ens33
virtual_router_id
priority
advert_int
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.253.200
}
} virtual_server 192.168.253.250 {
delay_loop
lb_algo rr
lb_kind DR
persistence_timeout
protocol TCP real_server 192.168.253.188 {
weight
HTTP_GET {
url {
path /
state_code
}
connect_timeout
nb_get_retry
delay_before_retry
}
}
} virtual_server 192.168.253.250 {
delay_loop
lb_algo rr
lb_kind DR
persistence_timeout
protocol TCP real_server 192.168.253.146 {
weight
HTTP_GET {
url {
path /
state_code
}
connect_timeout
nb_get_retry
delay_before_retry
}
}
}
cat /etc/keepalived/keealived.conf
2) 重启keepalived
[root@localhost ~]# systemctl restart keepalived
二、BACKUP(master)节点下载keepalived并且配置文件。
设置为v1的从节点,v2的主节点
虚拟ip为192.168.253.200
后端真实服务器ip也是 192.168.253.146 和 192.168.253.188
3)测试互为主备的两个节点是否设置成功
一台节点执行:systemctl stop keepalived 停掉高可用服务
如果虚拟ip发生漂移说明设置成功。如下:
[root@localhost ~]# 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:::f9: brd ff:ff:ff:ff:ff:ff
inet 192.168.253.168/ brd 192.168.253.255 scope global dynamic ens33
valid_lft 1338sec preferred_lft 1338sec
inet 192.168.253.250/ scope global ens33
valid_lft forever preferred_lft forever
inet 192.168.253.200/ scope global ens33
valid_lft forever preferred_lft forever
三、在后端服务器上部署lnmp。
1)下载nginx及相关组件.
yum install nginx php php-mysql php-fpm mariadb-server -y
2)编辑nginx配置文件,修改两处
index index.php index.html;
location ~ /.*\.php$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi.conf;
}
然后重启相关服务
systemctl restart nginx
systemctl restart php-fpm
3)重启maridb并创建数据库,用户和密码。
systemctl restart mariadb
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> create database baba;
ERROR 1007 (HY000): Can't create database 'baba'; database exists
MariaDB [(none)]> grant all on *.* to ken@'localhost' identified by '1';
4)在/var/www/html上传wordpress包。复制并根据数据库修改库名、用户名密码等。
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# ls
index.php wordpress-3.3.-zh_CN.zip wp-blog-header.php wp-content wp-load.php wp-register.php xmlrpc.php
license.txt wp-activate.php wp-comments-post.php wp-cron.php wp-login.php wp-settings.php
readme.html wp-admin wp-config.php wp-includes wp-mail.php wp-signup.php
wordpress wp-app.php wp-config-sample.php wp-links-opml.php wp-pass.php wp-trackback.php // ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress 数据库的名称 */
define('DB_NAME', 'baba'); /** MySQL 数据库用户名 */
define('DB_USER', 'baba'); /** MySQL 数据库密码 */
define('DB_PASSWORD', '1');
5)使用shell写一个添加回环路由的脚本,并执行。
#!/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.253.250/ broadcast 192.168.253.250 up
if [ $? -eq ];then
route add -host 192.168.253.250 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.253.250
echo "删除成功"
;;
*)
echo "usage start|stop"
;;
esac
vim 1.sh
bash 1.sh start
6)主节点查看是否添加到后端集群中
[root@localhost ~]# ipvsadm -L -n
IP Virtual Server version 1.2. (size=)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.253.250: rr persistent
-> 192.168.253.146: Route
-> 192.168.253.188: Route
7)使用虚拟ip访问动态网站。

keepalive + nginx 搭建高可用集群动态网站的更多相关文章
- Nginx 笔记(四)nginx 原理与优化参数配置 与 nginx 搭建高可用集群
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.nginx 原理与优化参数配置 master-workers 的机制的好处 首先,对于每个 ...
- Nginx+Keepalived高可用集群应用实践
Nginx+Keepalived高可用集群应用实践 1.Keepalived高可用软件 1.1 Keepalived服务的三个重要功能 1.1.1管理LVS负载均衡软件 早期的LVS软件,需要通过命令 ...
- 分布式FastDfs+nginx缓存高可用集群构建
介绍: FastDFS:开源的高性能分布式文件系统:主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡 FastDFS:角色:跟踪服务器(Tracker Server).存储服务器(St ...
- Nginx-keepalived+Nginx实现高可用集群
Keepalived+Nginx 高可用集群(主从模式) 集群架构图: 说明:Keepalived机器同样是nginx负载均衡器. 1)实验环境准备(此处都是使用的centos7系统) # cat / ...
- CentOS 7下搭建高可用集群
一 .安装集群软件 必须软件pcs,pacemaker,corosync,fence-agents-all,如果需要配置相关服务,也要安装对应的软件. 二.配置防火墙1.禁止防火墙和selinux# ...
- Nginx入门篇(七)之Nginx+keepalived高可用集群
一.keepalived介绍 keepalived软件最开始是转为负载均衡软件LVS而设计,用来管理和监控LVS集群系统中各个服务节点的状态,后来又加入了可实现高可用的VRRP功能.所以Keepali ...
- nginx Keepalived高可用集群
一.Keepalived高可用 1.简介 Keepalived软件起初是专为LvS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能.因此, ...
- ActiveMQ+ZooKeeper搭建高可用集群
一.说明 实际的应用中,一般为了应用的高可用性,都会搭建集群环境去处理.部署多台应用,这样,即使一台有问题,其他热备应用可以立马顶上,继续提供服务. ActiveMQ的集群部署,基于zookeeper ...
- Hadoop-HA 搭建高可用集群Hadoop Zookeeper
Hadoop Zookeeper 搭建(一) 一.准备工作 VMWARE虚拟机 CentOS 7 系统 虚拟机1:master 虚拟机2:node1 虚拟机3:node2 时间同步 ntpdate n ...
随机推荐
- java.lang.IllegalStateException: No output folder
将正在正常运行的tomcat打包(使用tar -zcvf命令打的包),然后放到其他服务器上使用非root用户解压(使用tar -zxvf命令)配置好之后,启动tomcat后报错如下 HTTP Stat ...
- Big Data(二)分布式文件系统那么多,为什么hadoop还需要一个hdfs文件系统?
提纲 - 存储模型- 架构设计- 角色功能- 元数据持久化- 安全模式- 副本放置策略- 读写流程- 安全策略 存储模型 - 文件线性按字节切割成块(block),具有offset,id - 文件与文 ...
- caffe py3 docker
https://hub.docker.com/r/mapler/caffe-py3/ docker pull mapler/caffe-py3 docker run -it mapler/caff ...
- WPF选项卡页面分离之Page调用Window类
此项目源码下载地址:https://github.com/lizhiqiang0204/WPF_PageCallWindow 如果Page与Window直接没有任何调用就用这种方法https://ww ...
- ERROR 1040 (08004): Too many connections
ERROR 1040 (08004): Too many connections 长期一来,mysql低版本中,当面对连接数陡增而出现too many connections时,往往比较棘手.今天特意 ...
- JAVA笔记19-容器之三 Set接口、List接口、Collections类、Comparable接口(重要)
一.Set接口 //HashSet综合举例 import java.util.*; public class Test{ public static void main(String[] args){ ...
- nmon监控使用
1.上传nmon_linux_x86_64文件到服务器 2.修改文件权限chmod 775 nmon_linux_x86_64 3.压测时需要执行以下命令监控服务器./nmon_linux_x86_6 ...
- 12. ClustrixDB 为容错和可用性分配磁盘空间
集群必须包含足够的空闲磁盘空间,以便从节点或区域故障中自动恢复.要计算在发生故障后仍然允许ClustrixDB完全重新保护数据的情况下可以使用的最大磁盘空间量,可以使用以下公式: 最大磁盘利用率% = ...
- ForkJoinPool及并行流解析
parallelStream原理. parallelStream是并行流,依赖jdk1.7出现的Fork/Join框架. Fork/Join框架的核心是工作窃取(work-stealing)算法.那么 ...
- Codeforces Gym 100851 K King's Inspection ( 哈密顿回路 && 模拟 )
题目链接 题意 : 给出 N 个点(最多 1e6 )和 M 条边 (最多 N + 20 条 )要你输出一条从 1 开始回到 1 的哈密顿回路路径,不存在则输出 " There is no r ...