为了账号安全,请及时绑定邮箱和手机立即绑定

LVS-NAT模式实现NFS-LAMP架构、1个Discuz,MySQL的双Real Server

标签:
MySQL


一、规划

   准备四个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"

wKiom1NOVEWD_KFDAABr6JhOvC4794.jpg

   ③、测试http、php服务

[root@RS1 ~]# mkdir /web

[root@RS1 ~]# vim /web/index.php    //编写测试页面

//

//添加如下内容

<h1>Welcome to RS1</h1>

<?php

phpinfo();

?>

[root@RS1 ~]# service httpd start    //启动http

wKioL1NOVT2R2_AuAAIvyCYNmO4703.jpg

   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

//

<h1>Welcome to RS2</h1>

<?php

phpinfo();

?>

[root@RS2 ~]# service httpd start

wKiom1NOVsTDZoCqAAF3JohvAjM507.jpg

    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

       报错:

wKioL1NOYRiD_Y_NAAFwrfPEgOQ693.jpg

原因分析:由于源程序使用了短标签“<?”,

如果将“short_open_tag”置于“Off”(关闭)状态,

则系统只能识别“<?php”和“<script>”标签,

而不能识别短标签“<?”,导致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

wKioL1NOYinS_AHzAABEKUwfoAw574.jpg

       修改好以后刷新页面:按提示安装

   图1:选择我同意

wKiom1NOZAaR0DMvAAL5TxzQq2w987.jpg

   图2:如果没有给upload目录改权限,这里会报错,选择下一步

wKioL1NOZFWgHQB4AAIFv2wSYiY265.jpg

   图3:填写服务器,授权的用户名和密码,登录discuz的管理员密码,选择下一步

wKiom1NOZWeiGBy9AAH8SD_8xUE604.jpg

   后面让填QQ什么的就随意了。

wKiom1NOZkWSpPJnAAIWZADISTk595.jpg

   成功安装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

测试:

wKiom1NOa1ay4BfFAAF86eLfVhY753.jpg

       ②、开机自动挂载

  最好不要用/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上查看

wKioL1NOb83CVszCAAJi_P9qwI0184.jpg

       图片右下角,显示了新帖

三、实现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别忘了改哦)

wKioL1NOfx2DAcXQAAIOSoUXwmc174.jpg

前端是一个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上添加默认网关

wKiom1NOkzag4tqzAACDoNAx5Bc085.jpg

  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

wKioL1NOlmnxybt_AACzoLPloQw199.jpg

   刷新页面:

wKiom1NOlqSxKmdoAADHUWHgpLY674.jpg

   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上来回切换的,外面是看不出来的

以上就本次博客内容

©著作权归作者所有:来自51CTO博客作者斜视天花板的原创作品,如需转载,请注明出处,否则将追究法律责任

LVS-NAT


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消