keepalived双主模式实现nginx高可用及LNAMMP架构

keepalived双主模式实现nginx高可用及LNAMMP架构

一、利用keepalived实现nginx调度器高可用;

二、构建LNAMMP架构:

1) Nginx既是前端调度器,又是缓存服务器;

2) 将php的session缓存于memcached中;

3) 在Apache和php上部署Discuz论坛程序;

4) 使用https连接,即使用户使用的是http协议也可以以https协议进行访问;

-------------------------------------------------------------------------------------

一、

实验规划:

director1:vip(172.16.1.8),dip(172.16.1.100)

director2:vip(172.16.1.9),dip(172.16.1.200)

RS1:    rip(172.16.1.3)

RS2:    rip(172.16.1.6)

1.首先关闭所有节点上iptables和selinux,同时进行时间同步。

2.在两个后端RS上分别添加一个网页

echo "www1.zrs.com" > /var/www/html/index.html

echo "www2.zrs.com" > /var/www/html/index.html

3.两个director配置

安装keepalived

yum -y install keepalived

4.安装nginx

此次用EPEL源的安装包,也可以编译安装

~]# cd /etc/yum.repos.d/

~]# vim nginx.repo

[nginx]

name=nginx repo

baseurl=http://nginx.org/packages/centos/7/$basearch/

gpgcheck=0

enabled=1

~]# yum install -y nginx

5.在nginx.conf配置文件中的http段内添加upstream内容,将后端两台RS加入到该upstream中

upstream webservers {

server 172.16.1.3;

server 172.16.1.6;

}

server {

listen 80;

location / {

proxy_pass http://webservers;

proxy_set_header X-Real-IP $remote_addr;

}

}

6.配置keepalived的主配置文件,实现对nginx的双主模式的高可用:

keepalived的配置文件1:

! Configuration File for keepalived
global_defs {
   notification_email {
     [email protected]
   }
   notification_email_from  [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id drct1
   vrrp_mcast_group4 224.200.100.18
}
vrrp_instance VI_1 {
    state MASTER
    interface eno16777736
    virtual_router_id 81
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass zrs66zrs
    }
    virtual_ipaddress {
        172.16.1.100/32 brd 172.16.1.100  dev eno16777736 label eno16777736:0
    }
}
vrrp_instance VI_2 {
    state BACKUP
    interface eno16777736
    virtual_router_id 80
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass zrs88zrs
    }
    virtual_ipaddress {
        172.16.1.200/32 brd  172.16.1.200 dev eno16777736 label eno16777736:1
    }
}

keepalived的配置文件2:

!Configuration File for keepalived
global_defs {
   notification_email {
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id drct1
   vrrp_mcast_group4 224.200.100.18
}
vrrp_instance VI_1 {
    state BACKUP
    interface eno16777736
    virtual_router_id 81
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass zrs66zrs
    }
    virtual_ipaddress {
        172.16.1.200/32 brd 172.16.1.200 dev  eno16777736 label eno16777736:0
    }
}
vrrp_instance VI_2 {
    state MASTER
    interface eno16777736
    virtual_router_id 80
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass zrs88zrs
    }
    virtual_ipaddress {
        172.16.1.100/32 brd 172.16.1.100 dev  eno16777736 label eno16777736:1
    }
}

7.开启核心转发功能

echo 1 > /proc/sys/net/ipv4/ip_forward

查看keepalived状态

测试一下

关闭一个后端RS的httpd服务

重新打开那个httpd服务

客户端查看,由于是轮询模式,所以两个后端RS主机交替访问,分别查看两个虚拟ip地址,如下

二、

LNAMMP架构:Linux+Nginx+Apache+MySQL+Memcached+PHP

1.在两个后端RS上创建数据库

MariaDB [(none)]>  create database dzdb;

MariaDB [(none)]> grant all on dzdb.*TO ‘dzuser‘@‘172.16.%.%‘IDENTIFIED BY‘123456‘;

MariaDB [(none)]> FLUSH PRIVILEGES;

在两个后端RS上导入Discuz程序包,并解压,将解压出来的upload文件包移动到指定目录,并赋予必要的权限

cp -R ./upload /var/www/html

cd /var/www/html

chown apache:apache -R ./upload

cd upload/

chmod -R 777 config

chmod -R 777 data

chmod -R 777 uc_client

chmod -R 777 uc_server

打开浏览器查看

2.进行缓存设置,因为Nginx既是前端调度器,又是缓存服务器,所以选取其中一个调度器172.16.1.9作为这次的缓存服务器

在172.16.1.9上安装并开启服务

yum install -y memcached

systemctl start memcached

在后端两个RS上安装php和其连接memcache必要的扩展程序

yum install -y php php-pecl-memcache

修改/etc/php.ini该配置文件中的[Session]段中的缓存路径为如下,

session.save_handler = memcache

session.save_handler = "tcp://172.16.1.9:11211"

重载httpd

systemctl reload httpd

配置一个测试页面,以测试缓存设置是否正常

[[email protected] upload]# cd /var/www/html

[[email protected] html]# vim sessstore.php

配置内容如下

<?php

$mem = new Memcache;

$mem->connect("172.16.1.9", 11211)  or die("Could not connect");

$version = $mem->getVersion();

echo "Server‘s version: ".$version."<br/>\n";

$mem->set(‘hellokey‘, ‘Hello World‘, 0, 600) or die("Failed to save data at the memcached server");

echo "Store data in the cache (data will expire in 600 seconds)<br/>\n";

$get_result = $mem->get(‘hellokey‘);

echo "$get_result is from memcached server.";

?>

打开浏览器访问虚拟ip查看

3.设置https协议访问

后端RS配置虚拟主机及密钥,安装https必要的程序包

yum install -y mod_ssl

前端nginx服务器上配置rewrite功能,在server模块中的location中添加如下

rewrite ^(.*)$ https://$host$1 permanent;

添加server配置段

server {

listen       443 ssl;

server_name  www1.zrs.com;

ssl_certificate     /etc/nginx/ssl/nginx.crt;

ssl_certificate_key /etc/nginx/ssl/nginx.key;

ssl_session_cache   shared:SSL:1m;

ssl_session_timeout  5m;

ssl_ciphers  HIGH:!aNULL:!MD5;

ssl_prefer_server_ciphers  on;

location / {

root   html;

index index.php index.html index.htm;

}

}

浏览器测试

时间: 2024-08-01 18:33:59

keepalived双主模式实现nginx高可用及LNAMMP架构的相关文章

MariaDB数据库双主N从复制高可用实现-MMM架构的实现

一.MMM概述 MMM(Master-Master replication manager for Mysql)是一套灵活的脚本程序,用来监控和故障切换,管理mysql Master-Master复制的配置 (同一时间只有一个节点是可写的).附带的工具套件可以实现多个slaves的read负载均衡,因此你可以使用这个工具移除一组服务器中复制延迟较高的服务器的虚拟IP,它还可以备份数据,两节点之间再同步等等. MMM主要的功能通过下面三个脚本来实现: mmm_mond 监控进程,负责所有的监控工作

Mysql双主互备+keeplived高可用架构(部分)

一.Mysql双主互备+keeplived高可用架构介绍 Mysql主从复制架构可以在很大程度保证Mysql的高可用,在一主多从的架构中还可以利用读写分离将读操作分配到从库中,减轻主库压力.但是在这种架构中,主库出现故障时需要手动将一台从库提升为主库.在对写操作要求较高的环境中,主库故障在主从架构中会成为单点故障.因此需要主主互备架构,避免主节点故障造成写操作失效. 在双主互备的架构中,每台Mysql都充当主服务器,同时充当对方的从服务器.在任意一台服务器上的写操作都会被复制到另一台服务器上,从

KeepAlived双主模式高可用集群

一.keepalived简介 keepalived是vrrp协议的实现,原生设计目的是为了高可用ipvs服务,keepalived能够配置文件中的定义生成ipvs规则,并能够对各RS的健康状态进行检测:通过共用的虚拟IP地址对外提供服务:每个热备组内同一时刻只有一台主服务器提供服务,其他服务器处于冗余状态,若当前在线的服务器宕机,其虚拟IP地址将会被其他服务器接替(优先级决定接替顺序),实现高可用为后端主机提供服务.   二.keepalived组件 Keepalived组件介绍 core:ke

keepalived双主模式高可用工作于NAT模型下的ipvs

一.Keepalived简介 ipvs提供高可用性,能够生成ipvs规则:也可以使用脚本来帮助高可用其他应用程序,没有heartbeart重量级:主要用在高可用ipvs,及一些反向代理应用程序 . 1.拓扑图 说明:1.两个代理服务器通过VIP向外提供数据 2.两个代理服务器都可以代理后端的服务器 3.为测试方便,后端服务器至提供静态页面 2.ip规划 3.安装配置haproxy 关于haproxy的详细配置, [[email protected] ~]# cat /etc/haproxy/ha

keepalived(双主模式)+haproxy+mysql_slave

环境说明: debian系统 keepalived_master1 +haproxy 192.168.7.32 keepalived_master1 +haproxy 192.168.9.52 mysql_master 192.168.6.123 mysql_slave1 192.168.4.21 mysql_slave2 192.168.9.53 vip1:192.168.8.102 vip2:192.168.8.103 一 keepalvied配置1 keepalived配置文件(maste

Keepalived双主模式配置流程

实验说明 1)keepalived 支持配置多个VRRP实例,每个实例对应一个业务 2)本次实验将实现 keepalived 的互为主备: 业务A:keepalived01为Master,keepalived02为Backup 业务B:keepalived01为Backup,keepalived02为Master 环境介绍 1)K1 Hostname:keepalived01.example.com IP:192.168.3.31 OS:Centos 7 2)K2 Hostname:keepal

nginx+keepalived高可用及双主模式

高可用有2中方式. 1.Nginx+keepalived 主从配置 这种方案,使用一个vip地址,前端使用2台机器,一台做主,一台做备,但同时只有一台机器工作,另一台备份机器在主机器不出现故障的时候,永远处于浪费状态,对于服务器不多的网站,该方案不经济实惠. 2.Nginx+keepalived 双主配置 这种方案,使用两个vip地址,前端使用2台机器,互为主备,同时有两台机器工作,当其中一台机器出现故障,两台机器的请求转移到一台机器负担,非常适合于当前架构环境. 1.Nginx+keepali

[转] Haproxy、Keepalived双主高可用负载均衡

http://blog.chinaunix.net/uid-25266990-id-3989321.html 在测试了Nginx+Keepalived的负载均衡后,也对Haproxy+Keepalived双主模式做了测试,双主的模式充分利用了服务器资源,这样不会导致服务器浪费. 这里举例说明: 默认情况下,第一台负载均衡器主要分发www.zhirs.com的请求,第二台负载均衡器主要分发img.zhirs.com的请求. 任意一台宕机都不会影响网站分发. 实验环境 VIP1=192.168.13

Keepalived 之 双主模式+DNS轮询机制 实现高负载

一.Keepalived双主模式+DNS轮询机制作用 作用:在单主模式下,备机通常会以等待状态放着,不接受任何数据,导致所有数据请求只往主机-负载均衡发送,做成资源浪费:而双主模式,即创造两个VIP,两个VIP分别放在两台负载均衡的机器上,同时两台主机均为对方的备机,以作VIP的漂移,服务接管作用,加入DNS轮询机制,使客户端的域名分别依次解释到两个VIP上,形成两台负载均衡主机同时对外提供服务.同时也解决了单主模式下的单机性能屏颈. 二.网络拓扑图 三.两台负载均衡主机的Keepalived