基于lvs-dr模型的discuz负载均衡实现

前言:

lvs-dr模型与之前的lvs-nat模型情况基本差不多,只是网络拓扑结构不同。

HostVS

OS:CentOS-7-x86_64

hostname:ws1

eno16777736: 10.0.0.60/8(DIP)

eno167777336:0: 10.0.0.61/32(VIP)

gateway:10.0.0.254

HostRS1

OS:CentOS-7-x86_64

hostname:ws2

eno16777736:10.0.0.101/8 (RIP1)

lo:0 10.0.0.61/32 (VIP)

gateway:10.0.0.254

HostRS2

OS:CentOS-7-x86_64

hostname:ws3

eno16777736:10.0.0.102/8(RIP2)

lo:0 10.0.0.61/32(VIP)

gateway:10.0.0.254

HostDB

OS:CentOS-7-x86_64

hostname:ws4

eno16777736: 10.0.0.202/8

gateway:10.0.0.254

时间同步:

# ntpdate cn.pool.ntp.org
# hwclock --sysohc

安装软件:

HostDB

安装二进制mariadb-5.5.46

详细配置请入传送门:http://wscto.blog.51cto.com/11249394/1783131

安装NFS

# yum install -y nfs-utils

HostRS2


安装nginx,注意nginx属于epel源

# yum install-y nginx php-fpm php-mbstring php-mysql nfs-utils mariadb

HostRS1

安装nginx,注意nginx属于epel源

# yum install-y nginx php-fpm php-mbstring php-mysql nfs-utils mariadb

HostVS

安装LVS的cli接口程序ipvsadm

# yum install -y ipvsadm

配置集群

HostDB

配置mariadb

安全初始化完成后,创建discuz数据库和discuz用户,并授权其可远程操作数据库

# mysql_secure_installation
# mysql -u root -p

> create database discuz;
> create user ‘discuz‘@‘lodalhost‘ identified by ‘123456‘;
> grant all privileges on discuz.* to ‘discuz‘@‘%‘ identified by ‘123456‘;
> flush privileges;

配置NFS

# mkdir /nfshare/
# ls -ld /nfshare/
drwxr-xr-x 2 root root 6 May 9 17:01 /nfshare/
# echo "/nfshare/ 10.0.0.101(rw,no_root_squash,async) 10.0.0.102(rw,no_root_squash,async)" > /etc/exports
# /etc/init.d/rpcbind start
Starting rpcbind:                        [  OK  ]
# /etc/init.d/nfs start
Starting NFS services:                      [  OK  ]
Starting NFS quotas:                      [  OK  ]
Starting NFS mountd:                        [  OK  ]
Starting NFS daemon:                       [  OK  ]
Starting RPC idmapd:                      [  OK  ]
# chkconfig rpcbind on
# chkconfig nfs on
# chkconfig rpcbind --list
rpcbind            0:off    1:off    2:on    3:on    4:on    5:on    6:off
# chkconfig nfs --list
nfs                0:off    1:off    2:on    3:on    4:on    5:on    6:off
# showmount -e 127.0.0.1
Export list for 127.0.0.1:
/nfshare/ 10.0.0.101,10.0.0.102

注意:rpcbind和nfs两个服务启动顺序不能更换,否则会出问题

解压discuz的程序包至/nfsshare/目录

# mkdir /nfshare/discuz
# unzip /Discuz_X3.2_SC_UTF8.zip -d /nfshare/discuz/
# ls /nfshare/discuz/
readme  upload  utility

HostRS1


给RS配置VIP之前先要禁止RS响应VIP的ARP请求

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

在本地回环接口别名lo:0上配置VIP,并增添路由

ifconfig lo:0 10.0.0.61 broadcast 10.0.0.61 netmask 255.255.255.255 
route add -host 10.0.0.61 dev lo:0

测试链接HostDB上的mariadb

# mysql -h 10.0.0.202 -u discuz -p

挂载HostDB上的NFS共享存储目录,属主属组修改为apache

# showmount -e 172.18.64.202
Export list for 172.18.64.202:
/nfshare/ 10.0.0.101,10.0.0.102
# mkdir /htdocs
# ls -ld /htdocs/
drwxr-xr-x 2 root root 6 May 9 17:05 /htdocs/
# mount -t nfs 172.18.64.202:/nfshare /htdocs
# ls /htdocs/
discuz
# chown -R apache:apache /htdocs/discuz/

启动php-fpm

# systemctl start php-fpm.service
# ss -tnl | grep 9000

配置nginx的配置文件

# vim /etc/nginx/nginx.conf
server {
        listen     80;
        server_name  ws2

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
            root    /htdocs/discuz/upload;
            index index.html index.htm index.php;
        }

        location ~ \.php$ {
            root  /htdocs/discuz/upload;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;

            include /etc/nginx/fastcgi.conf;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
# nginx
# ss -tnl | grep 80
LISTEN     0      128          *:80                       *:*

测试访问discuz安装页面主机加上最后的/

# curl -I http://10.0.0.101/install/
HTTP/1.1 200 OK
Server: nginx/1.6.3
Date: Mon, 09 May 2016 10:23:50 GMT
Content-Type: text/html
Connection: keep-alive
X-Powered-By: PHP/5.4.16

HostRS2 

配置同上

HostVS

时间: 2024-08-04 00:51:13

基于lvs-dr模型的discuz负载均衡实现的相关文章

虚拟机 搭建LVS + DR + keepalived 高可用负载均衡

一:环境说明:   LVS-DR-Master:    10.3.0.82   LVS-DR-Backup:    10.3.0.70   VIP:                10.3.0.60   RealServer1:    10.3.0.69   RealServer1:    10.3.0.83   Centos:5.7    二:安装LVS和Keepalvied软件包   1. 下载相关软件包    mkdir /usr/local/src/lvs    cd /usr/loca

LVS专题: NAT和DR模型实现Web负载均衡

前言: 在上篇文章中我们讲了一些LVS的基本概念和相应模型的实验原理和流程,本篇文章我们主要使用lvs为web服务提供负载均衡 NAT实现 实验拓扑 实验环境 主机 IP地址 功用 Director.anyisalin.com 172.16.1.2,172.16.2.2 LVS-Director rs1.anyisalin.com 172.16.2.3 Real Server rs2.anyisalin.com 172.16.2.3 Real Server 注意: 本文实验中所有主机SElinu

基于Lvs-nat模型的discuz负载均衡实现

前言:     lvs-nat模型需要一台机器作为前端VS(Virtual Server)主机,和两台作为后端的RS(Real Server)才能够实现负载均衡效果 因为需要负载均衡应用Discuz,同一客户端请求如果被调度到不同的RS上,无法保障用户访问会话持久不丢失,和数据的一致性,所以还需要考虑会话保持和数据共享的问题. 会话保持的解决方案有三种:源地址哈希.会话集群.会话服务器,这里选择源地址:即将来自同一客户端的请求调度至同一台服务器,只需要将lvs集群的调度算法配置为SH(Sourc

keepalived配置基于lvs DR模型的HA

基本架构图如下:  平台环境:centos6.x1.    安装keepalived.安装ipvsadmyum –y install keepalived  ipvsadm 2.    配置服务2.1 lvs realserver 配置脚本#!/bin/bashVIP1=192.168.1.199case "$1" instart)echo " start LVS of REALServer"/sbin/ifconfig lo:0 $VIP1 broadcast $

利用lvs实现discuz负载均衡

一:实验目的 利用LVS实现discuz负载均衡  二:实验拓扑图 WEB服务器与PHP服务器在同一网段内,mysql服务器同时起着LVS负载均担作用. 三:搭建WEB服务器 本次WEB服务器采用编译安装服务,编译过程请参考LAMP平台编译.接下来配置WEB服务器主配置文件.  vim /etc/httpd24/extra/httpd-vhosts.conf  #前面的路径为编译时指定的路径.  ifconfig eth0 192.168.1.16/24 up           #修改主机的I

LVS集群DR、NAT模型配置, 及使用ldirectord完成LVS DR模型集群搭建

首先我们有三台主机:其中172.16.192.168作为前台主机:另外172.16.254.18和172.16.254.105作为后端主机,作为测试分别运行有web服务,并测试可用,如下图. 一.LVS NAT模型集群配置实验 1.首先在后端Real Server上设置默认网关,执行前端Virtual Server 2.在前端Virtual Server上开启路由转发功能 3.配置前端LVS集群 4.测试 总结:经过初步测试,我们可以看出已经可以实现rr轮询调度,修改相应的调度算法则可以实现不同

借助LVS+Keepalived实现mysql的负载均衡

1 初识LVS:Linux Virtual Server 1.1 LVS是什么       LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org.现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,

mysql主从之LVS+keepalived+双主MySQL 负载均衡

LVS(Linux Virtual Server)即Linux 虚拟服务器,是一个的开源负载均衡项目,目前LVS 已经被集成到Linux 内核模块中.LVS 是四层负载均衡,也就是说建立在OSI 模型的第四层——传输层之上,传输层上有我们熟悉的TCP/UDP,LVS 支持TCP/UDP 的负载均衡. 一 环境 192.168.132.120    VIP192.168.132.123   LVS01,keepalived192.168.132.124   LVS02,keepalived192.

lvs、haproxy、nginx 负载均衡的比较分析

lvs.haproxy.nginx 负载均衡的比较分析 对软件实现负载均衡的几个软件,小D详细看了一下,从性能和稳定上还是LVS最牛,基本达到了F5硬件设备的60%性能,其他几个10%都有点困难. 不过就因为LVS忒牛了,配置也最麻烦了,而且健康检测需要另外配置Ldirector,其他HAPROXY和NGINX自己就用,而且配置超级简单. 所以小D建议,如果网站访问量不是门户级别的用HAPROXY或者NGINX就OK了,到了门户级别在用LVS+Idirector吧 哈哈 lvs和nginx都可以