设为首页 收藏本站
查看: 2302|回复: 0

[经验分享] 在centos6系统上基于session绑定实现nat模型的lvs集群,并在RS上安装Discuz论坛

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-9-4 09:09:52 | 显示全部楼层 |阅读模式
实验环境:四台虚拟机,安装的操作系统是CentOS6.5,各自的功能及IP地址如下:
Director:
    eth0 192.168.2.1(作为VIP使用),eth1:10.0.0.1(作为DIP使用)
RS1:
    eth0:10.0.0.2

RS2:
    eth0:10.0.0.3

数据库服务器:安装的mariadb
    eth0:10.0.0.4

拓扑图:
    wKiom1QHJuzzhEUrAAPkT1hkdjo705.jpg 实验步骤:
    一准备数据库服务器,安装mariadb,创建一个用于远程连接数据库的用户,创建一个数据库,用于两台RS服务器连接时使用,授权给该用户对应的数据库所有权限。

1
2
3
4
MariaDB [(none)]> CREATE USER cluster@'10.%.%.%' IDENTIFIED BY 'cluster';
MariaDB [(none)]> CREATE DATABASE cluster;
MariaDB [(none)]> GRANT ALL ON cluster.* TO 'cluster'@'10.%.%.%';
MariaDB [(none)]> FLUSH PRIVILEGES;



    二、准备两台RS服务器,这两台RS服务器都要提供httpd服务。将Discuz论坛安装程序解压后的目录文件upload复制到/var/www/html/bbs目录下,复制到其中一台就可以,以RS1为例。使用系统自带的httpd
1
2
3
4
5
6
7
8
[iyunv@node1 ~]# yum install -y php
[iyunv@node1 ~]# yum install -y php-mysql
[iyunv@node1 ~]# service httpd start
[iyunv@node1 Discuz]# unzip Discuz_X2.5_SC_GBK.zip  #将解压出来的upload目录复制到/var/www/html目录下
[iyunv@node1 Discuz]# cp upload/ /var/www/html/bbs
[iyunv@node1 Discuz]# cp upload/ /var/www/html/bbs^C
[iyunv@node1 Discuz]# cd /var/www/html/bbs
[iyunv@node1 bbs]# chmod -R 777 config/ data/ uc_client/ uc_server/



在RS1和RS2上都安装xinetd并将rsync启动为服务,以便将/var/www/html目录的内容做到同时同步的效果,以达到两台服务器上内容一致。编辑/etc/rsyncd.conf文件,内容为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Global Settings
uid = nobody
gid = nobody
use chroot = no
max connections = 10
strict modes = yes
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
# Directory to be synced
[backup]
path = /var/www/html
ignore errors = yes
read only = no
write only = no
hosts allow = 10.0.0.0/8
hosts deny = *
list = true
uid = root
gid = root
auth users = backup_transfer
secrets file = /etc/rsyncd.passwd



1
2
3
4
5
6
7
[iyunv@node2 ~]# echo "backup_transfer:redhat" > /etc/rsyncd.passwd  #这个文件用于认证另外一个节点推送数据时的用户身份。
backup_transfer:redhat
[iyunv@node2 ~]# echo "redhat" > /etc/rsyncd.passwd2 #这个文件用于向对方节点推送时在脚本中指定密码文件,免去交互的过程。
[iyunv@node2 ~]# chmod 600 /etc/rsyncd.passwd
[iyunv@node2 ~]# chmod 600 /etc/rsyncd.passwd2
[iyunv@node2 ~]# chkconfig rsync on
[iyunv@node2 ~]# service xinetd start



提供脚本文件,以便在两台服务器中站点数据目录内的文件发生变化时,可以自动推送文件。脚本的内容为:
1
2
3
4
5
6
7
#!/bin/bash
#
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w %w%f %e' -e modify,delete,create,attrib /var/www/html | while read file;
do
/usr/bin/rsync -vzrtopg --delete --progress /var/www/html/ backup_transfer@10.0.0.3::backup --password-file=/etc/rsyncd.passwd2
echo "${files} was rsynced" >> /var/log/rsync.log 2>&1
done



脚本中定义的传送IP为对方服务器的IP地址,只需要修改这一点就可以,其他的配置可以完全一样,就不再重复。
另外可以在站点根目录下各添加index.html文件,简单的在文件中写入对应的主机名称,之后方便在测试的时候查看director在调度的时候调度请求到不同的主机的效果。

由于是在虚拟机中模拟实验,所以两台RS与Director之间的通信需要RS指向Director的DIP作为网关。
[iyunv@node1 ~]# route add default gw 10.0.0.1 #两台RS上都要设置。
三、设置Director
Director上配置了两块网卡一个作为连接外网的网卡使用,即VIP:192.168.2.1,另外一块网卡作为内网的网关使用,IP地址为10.0.0.1,另外要打开IP地址转发功能,这样在模拟的实验环境中RS1和RS2才可以和192.168.2.1正常通信:
1
2
3
4
[iyunv@director ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[iyunv@director ~]# ipvsadm -A -t 192.168.2.1:80 -s rr   #定义集群服务
[iyunv@director ~]# ipvsadm -a -t 192.168.2.1:80 -r 10.0.0.2 -m   #添加RS1
[iyunv@director ~]# ipvsadm -a -t 192.168.2.1:80 -r 10.0.0.3 -m   #添加RS2



先在浏览器内测试默认主页的效果:
wKioL1QHO1_ghvBAAAEE6j4obU8432.jpg
wKiom1QHQFmyJdibAAEc_-HGiOs675.jpg
四、安装discuz,测试完毕后,先在集群服务中删除node2,在node1上安装Discuz论坛,删除的目的是为了安装过程中可以准确定位到node1上。在浏览器内输入192.168.2.1/bbs安装论坛,安装完毕后,再将node1在集群服务中添加进来。
#[iyunv@director ~]# ipvsadm -d -t 192.168.2.1:80 -r 10.0.0.3
wKiom1QHSCLS9pIwAARCDujZGVk495.jpg
wKioL1QHSEPQd5ShAAGshVUl_S8187.jpg
wKiom1QHSGTg4h-SAAFZ-AfNokY887.jpg
wKioL1QHSMmiwzCHAAG3tDYWl-Y544.jpg
wKioL1QHSPPSIORxAAHVPCsI8wU554.jpg
在node1上安装完discuz以后,启动rsync的脚本文件,然后向node2上同步数据文件,同样,node2上也启动脚本文件,以便以后有数据更新时向node1同步。

1
[iyunv@node1 ~]# ./rsync.sh &



将node2添加进集群服务中,这样director可以调度用户请求到不同的RS上。
1
[iyunv@director ~]# ipvsadm -a  -t 192.168.2.1:80 -r 10.0.0.3



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-24351-1-1.html 上篇帖子: 利用lvs实现discuz负载均衡 下篇帖子: LB lvs-nat lvs-dr 的理解及实验 模型
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表