一、规划
准备四个cenos6.5系统的虚拟机
directory:调度器 IP:172.16.12.100 hostname:LVS1
realserver1(php,http):RS1 IP:172.16.12.101 hostname:RS1
realserver2(php,http):RS2 IP:172.16.12.102 hostname:RS2
mysql、discuz、nfs: IP:172.16.12.105 hostname:data
步骤:
1、先在虚拟机RS1、RS2中搭建php,http;
2、在虚拟机data上搭建mysql,discuz,nfs;
3、将DISCUZ论坛目录通过NFS挂载到虚拟机RS1,RS2中,使它们可以实现论坛的访问并为论坛添加数据。
4、在虚拟机LVS1上通过LVS-NAT模式实现负载均衡。
二、lamp、discuz和nfs部署
关闭防火墙
vim /etc/selinux/config // //将参数改成如下 SELINUX=disabled
1、RS1上安装httpd、php
①、安装httpd、php
[root@RS1 ~]# yum -y install httpd php php-mysql //安装http、php [root@RS1 ~]# chkconfig httpd on //开机启动
②、指定DocumentRoot路径/web
[root@RS1 ~]# vim /etc/httpd/conf/httpd.conf // //修改如下参数 DocumentRoot "/web"
③、测试http、php服务
[root@RS1 ~]# mkdir /web [root@RS1 ~]# vim /web/index.php //编写测试页面 // //添加如下内容Welcome to RS1
[root@RS1 ~]# service httpd start //启动http
2、在RS2上做同RS1同样的部署
[root@RS2 ~]# yum -y install httpd php php-mysql [root@RS2 ~]# vim /etc/httpd/conf/httpd.conf [root@RS2 ~]# mkdir /web [root@RS2 ~]# vim /web/index.php //Welcome to RS2
[root@RS2 ~]# service httpd start
3、在data上部署
①、安装mysql,并授权
[root@data ~]# yum -y install mysql mysql-server [root@data ~]# service mysqld start [root@data ~]# chkconfig mysqld on [root@data ~]# mysqladmin -uroot -p password 'mageedu' //给root用户添加密码 [root@data ~]# mysql mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.16.12.101' IDENTIFIED BY 'mageedu'; //给RS1授权 mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.16.12.102' IDENTIFIED BY 'mageedu'; //给RS2授权 mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'mageedu'; //给本机授权 mysql> FLUSH PRIVILEGES;
②、安装discuz
[root@data html]# yum -y httpd php php-mysql //为了实现discuz,这里需要安装http和php [root@data ~]# wget ftp://172.16.0.1/pub/Sources/5.i386/LAMP/Discuz_7.2_FULL_SC_GBK.zip [root@data ~]# unzip Discuz_7.2_FULL_SC_GBK.zip //解压 [root@data ~]# cp -r ./upload/ /var/www/html/ [root@data html]# chmod o+rw upload -R //为了安装顺利,要改权限
●在浏览器中输入http://172.16.12.105/upload/install/安装discuz
报错:
原因分析:由于源程序使用了短标签“”, 如果将“short_open_tag”置于“Off”(关闭)状态, 则系统只能识别“”标签, 而不能识别短标签“”,导致php文件解析错误。 解决方法:打开php.ini,找到“short_open_tag = Off”, 将其修改为“short_open_tag = On”,然后重启Apache即可。
●修改:RS1和RS2上也要做相同修改,因为后面要将discuz挂载过去
[root@data html]# vim /etc/php.ini // //修改如下参数 short_open_tag = On [root@data html]# service httpd restart
●修改好以后刷新页面:按提示安装
图1:选择我同意
图2:如果没有给upload目录改权限,这里会报错,选择下一步
图3:填写服务器,授权的用户名和密码,登录discuz的管理员密码,选择下一步
后面让填QQ什么的就随意了。
成功安装discuz
③、通过NFS将discuz挂载到RS1和RS2上
[root@data html]# yum install -y rpcbind nfs-utils //安装nfs [root@data html]# service nfs start [root@data html]# vim /etc/exports // //添加如下两行,将discuz共享给RS1和RS2 /var/www/html/upload 172.16.12.101(rw,sync,no_root_squash) /var/www/html/upload 172.16.12.102(rw,sync,no_root_squash) [root@data html]# service nfs restart
4、在RS1和RS2上操作
①、挂载、测试
[root@RS1 ~]# mount -t nfs 172.16.12.105:/var/www/html/upload /web [root@RS1 ~]# vim /etc/php.ini short_open_tag = On [root@RS1 ~]# service httpd restart
测试:
②、开机自动挂载
最好不要用/etc/fstab设置开机自动挂载,有可能会由于服务的启动顺序导致挂载失败,影响开机时间。可以通过autofs自动挂载。
步骤如下:
●编辑/etc/auto.master文件
[root@RS1 ~]# vim /etc/auto.master // //添加如下内容 /- /etc/auto.nfs
●新建/etc/auto.nfs文件
[root@RS1 ~]# vim /etc/auto.nfs // //添加如下内容 /web -fstype=nfs 172.16.12.105:/var/www/html/upload
●重启autofs服务
/etc/init.d/autofs stop /etc/init.d/autofs start
注意:一定要先stop,然后在start,如果直接restart的话,可能会有问题。
这样设置完以后,当我们需要使用/tmp/nfs-test目录时,系统就会自动的帮我们进行挂载。
③、测试
在RS1上登录论坛并发帖
在RS2上查看
图片右下角,显示了新帖
三、实现LVS-NAT
先把自动开机挂autofs停掉
// //RS1和RS2上分别执行 /etc/init.d/autofs stop
DIP:eth0外网, 172.168.12.100
VIP:eth1内网, 192.168.12.1
RS1:RIP 172.16.12.101 改成 192.168.12.101
RS2:RIP 172.16.12.102 改成 192.168.12.102
data 172.16.12.105 改成 192.168.12.105(NFS共享的IP别忘了改哦)
前端是一个directorserver,有两个网卡,eth0(VIP)是公网(面向互联网);eth1(DIP)是连接各RIP
eht0是桥接,eth1是hostonly
1、LVS1上开启数据转发功能
[root@LVS1 ~]# vim /etc/sysctl.conf // //修改如下内容 net.ipv4.ip_forward = 1 [root@LVS1 ~]# sysctl -p //实时生效
2、在RS1和RS2上添加默认网关
3、安装命令行工具
yum install ipvsadm -y
添加规则
[root@LVS1 ~]# ipvsadm -A -t 172.16.12.100:80 -s rr [root@LVS1 ~]# ipvsadm -a -t 172.16.12.100:80 -r 192.168.12.101 -m [root@LVS1 ~]# ipvsadm -a -t 172.16.12.100:80 -r 192.168.12.102 -m
在浏览器中测试:172.16.12.100
刷新页面:
RS1和RS2无限循环。LVS-NAT实现成功。
4、修改mysqlNFS
将网卡类型改为hostonly
ip改为192.168.12.105
因为此处变了,重装论坛吧,把mysql服务器地址改成192.168.12.105
[root@data html]# vim /etc/exports // //添加如下两行,将discuz共享给RS1和RS2 /var/www/html/upload 192.168.12.101(rw,sync,no_root_squash) /var/www/html/upload 192.168.12.102(rw,sync,no_root_squash) [root@data html]# service nfs restart
在RS1和RS2上分别执行:
[root@RS1 ~]# vim /etc/auto.nfs // //修改如下内容 /web -fstype=nfs 192.168.12.105:/var/www/html/upload
/etc/init.d/autofs stop /etc/init.d/autofs start
这样刷新页面看到的是论坛页面,世界上是在两个realserver上来回切换的,外面是看不出来的
以上就本次博客内容