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 ...
随机推荐
- 关于mysql的查询优化
由于工作原因,最近甲方客户那边多次反应了他们那边的系统查询速度慢,经过排除之后,发现他们那边的数据库完全没有用到索引,简直坑得一笔,通过慢查询日志分析,为数据表建立了适当的索引之后,查询速度明显的提高 ...
- 从零开始学MySQL(三)
经过上两节的洗礼,我们能够连接上服务器,并成功地进入与mysql交互的会话中了.那么现在就可以发起SQL语句,让服务器来执行它了!这听起来很酷吧?接下来,我们开始学习MySQL的相关知识. 本文概览: ...
- 交叉工具链和makefile
交叉工具链: arm-linux-gcc:交叉编译器 arm-linux-ld:交叉连接器 arm-linux-readelf:交叉ELF文件工具 arm-linux-objdump:交叉反汇编器 a ...
- windows pip使用国内源
在这里我使用清华源来做示范 win+R 打开用户目录%HOMEPATH%,在此目录下创建 pip 文件夹,在 pip 目录下创建 pip.ini 文件, 内容如下, 在pip文件夹里新建的pip.in ...
- Qt常见错误
fatal error: QApplication: No such file or directory 在.pro文件中 添加 QT += widgets fatal error: QTcpSock ...
- java 死锁演示
java 死锁演示 java死锁 模拟死锁生成 死锁是由多个线程竞争同一个资源导致 package com.feshfans; /** * 1. 本代码为展示 java 中死锁的产生 * 2. 死锁的 ...
- 2018微信小程序官方示例源码最新版
忘记从哪获得的 CSDN 可以支持一下 谢谢你们 https://download.csdn.net/download/lan1128/10197682 当然也有免费的 代码在码云上免费公开 点个关 ...
- python类库26[sqlite]
一 sqlite 与 python 的类型对应 二 实例 import sqlite3 def sqlite_basic(): # Connect to db conn = sqlit ...
- mysql数据库密码
一. oOO6jpspg/j5 二. alter user root@localhost IDENTIFIED BY '123'; 三. create database s11Madking char ...
- 【leetcode】1222. Queens That Can Attack the King
题目如下: On an 8x8 chessboard, there can be multiple Black Queens and one White King. Given an array of ...