影者东升 发表于 2021-7-4 09:34:35

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

  一、规划

      准备四个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
  
# yum -y install httpd php php-mysql    //安装http、php
# chkconfig httpd on    //开机启动  

  ②、指定DocumentRoot路径/web
# vim /etc/httpd/conf/httpd.conf
//
//修改如下参数
DocumentRoot "/web"

  

  ③、测试http、php服务

# mkdir /web
# vim /web/index.php    //编写测试页面
//
//添加如下内容
<h1>Welcome to RS1</h1>
<?php
phpinfo();
?>
# service httpd start    //启动http  


  

  2、在RS2上做同RS1同样的部署
  
  
# yum -y install httpd php php-mysql
# vim /etc/httpd/conf/httpd.conf
# mkdir /web
# vim /web/index.php
//
<h1>Welcome to RS2</h1>
<?php
phpinfo();
?>
# service httpd start  

  

  
  

  

  3、在data上部署

  ①、安装mysql,并授权

  
  
# yum -y install mysql mysql-server
# service mysqld start
# chkconfig mysqld on
# mysqladmin -uroot -p password 'mageedu'    //给root用户添加密码
# 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
# yum -y httpd php php-mysql    //为了实现discuz,这里需要安装http和php
# wget ftp://172.16.0.1/pub/Sources/5.i386/LAMP/Discuz_7.2_FULL_SC_GBK.zip
# unzip Discuz_7.2_FULL_SC_GBK.zip    //解压
# cp -r ./upload/ /var/www/html/
# chmod o+rw upload -R    //为了安装顺利,要改权限  

  ●在浏览器中输入http://172.16.12.105/upload/install/安装discuz
  报错:


原因分析:由于源程序使用了短标签“<?”,
如果将“short_open_tag”置于“Off”(关闭)状态,
则系统只能识别“<?php”和“<script>”标签,
而不能识别短标签“<?”,导致php文件解析错误。
解决方法:打开php.ini,找到“short_open_tag = Off”,
将其修改为“short_open_tag = On”,然后重启Apache即可。  

  ●修改:RS1和RS2上也要做相同修改,因为后面要将discuz挂载过去
# vim /etc/php.ini
//
//修改如下参数
short_open_tag = On
# service httpd restart  

  
  

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

      图1:选择我同意

  
  

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

  
  

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

  
  

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

  
      成功安装discuz

  

  ③、通过NFS将discuz挂载到RS1和RS2上
# yum install -y rpcbind nfs-utils    //安装nfs
# service nfs start
# 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)
# service nfs restart  

  

  

      4、在RS1和RS2上操作
        ①、挂载、测试
# mount -t nfs 172.16.12.105:/var/www/html/upload /web
# vim /etc/php.ini
short_open_tag = On
# service httpd restart  
  测试:


  

  ②、开机自动挂载
  最好不要用/etc/fstab设置开机自动挂载,有可能会由于服务的启动顺序导致挂载失败,影响开机时间。可以通过autofs自动挂载。
  

  步骤如下:
  ●编辑/etc/auto.master文件
# vim /etc/auto.master
//
//添加如下内容
/- /etc/auto.nfs  

  ●新建/etc/auto.nfs文件
# 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上开启数据转发功能
# vim /etc/sysctl.conf
//
//修改如下内容
net.ipv4.ip_forward = 1
# sysctl -p    //实时生效  

  2、在RS1和RS2上添加默认网关


  

  3、安装命令行工具
yum install ipvsadm -y  
      添加规则
# ipvsadm -A -t 172.16.12.100:80 -s rr
# ipvsadm -a -t 172.16.12.100:80 -r 192.168.12.101 -m
# 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

  
# 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)
# service nfs restart  
        在RS1和RS2上分别执行:

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

  

  以上就本次博客内容
  


  
页: [1]
查看完整版本: LVS-NAT模式实现NFS-LAMP架构、1个Discuz,MySQL的双Real Server