LAMP+NFS实现双web服务负载均衡

    一、实验拓扑

    blob.png

    二、系统环境

     1、主机A、主机B、主机C:CentOS 6.5

       测试PC:         Windows 7 旗舰版

     2、实验平台

       VMware Workstation 10

     3、实验域名

       myblog.com

    三、主机配置信息

     1、主机A IP:192.168.5.235 搭建web服务器 安装php

     2、主机B IP:192.168.5.236 搭建web服务器 安装php

     3、主机C IP: 192.168.5.237 搭建DNS、Mysql、NFS服务器

       注:由于对于企业来讲,数据的价值是不可估计的,因此实际生产中,Mysql服务器主机不会同时作为其它服务器使用。

    四、所用软件种类与版本

     blob.png

    五、实验目的

      1、主机C搭建NFS服务器共享/shared目录,主机A和B安装web(httpd)服务并挂载主机C共享的NFS共享目录作为其DocumentRoot,实现通过在浏览器中输入主机A和主机B的IP地址能够访问到相同的页面。

      2、主机C搭建DNS服务器,并在其区域解析库文件中添加两条web服务器www.myblog.com的A记录,分别指向主机A和主机B的ip地址,通过DNS的轮询解析实现web服务器A和web服务器B的负载均衡。 

    六、在主机C上搭建DNS、MySQL、NFS服务器

     1、搭建DNS服务器

       (1)、执行yum -y install bind安装DNS服务程序

       (2)、编辑主配置文件/etc/named.conf,将不必要内容注释掉,初始化环境    

         blob.png

       (3)、编辑/etc/named.rfc1912.zone添加区域

         blob.png

       (4)、创建对应的区域解析库文件

         正向

         blob.png

         反向

         blob.png

       (5)、检查配置文件是否有错误 

         blob.png

       (6)、修改新建的区域解析库文件属组、属主和权限。

         blob.png

       (7)、设置named开启动并启动服务

         blob.png

       (8)、将实验涉及到的主机DNS解析指向主机C

         blob.png

         确保主机A、B、C测试www.mylog.com解析结果如下:

         blob.png

     2、搭建Mysql服务器

       本文使用通用二进制版本安装mairiadb

      (1)、创建一个逻辑分区,存放mysql数据库data文件 

         创建lvm分区

         blob.png

         创建逻辑分区mydata并格式化成ext4格式,添加卷标LABEL为MYDATA

         # pvcreate /dev/sdb1

        Physical volume "/dev/sdb1" successfully created

       # vgcreate myvg /dev/sdb1

        Volume group "myvg" successfully created

        # lvcreate -n mydata -L 10G myvg 

           Logical volume "mydata" created

         blob.png

         将创建好的逻辑分区挂载至/mydata/data目录下,并编辑/etc/fstab文件实现开机挂载

         创建挂载目录

          # mkdir -pv /mydata/data

         blob.png

         挂载新建分区

         blob.png

     (2)、配置mysql

         创建mysql用户和组   

         blob.png

         将mariadb展开至/usr/local/下并链接到/usr/local/mysql(注意,此目录为约定目录,要与本文一致)

         blob.png

         更改/usr/local/mysql/所有文件的属主

         # chown root:mysql ./mysql/*

         blob.png

         为mysql创建配置文件存放目录并提供配置文件

         blob.png

         编辑/etc/mysql/my.cnf,指定mysql的data位置(即上文新建逻辑分区的挂载点)

         blob.png

         初始化安装mysql

         blob.png

         为mysql提供服务启动脚本

         blob.png 

         创建导出环境变量配置文件并添加需导出内容

         # vim /etc/profile.d/mysql.sh

         blob.png

         导出man文档

         # vim /etc/man.config

         blob.png 

         导出头文件

         blob.png

         导出库文件

         创建/etc/ld.so.conf.d/mysql.conf并添加一下内容

         blob.png

         blob.png

         启动mysql服务

         blob.png

         确保mysql服务启动

         blob.png

         测试

         blob.png

         为Discuz预创建数据库myblog,并设定远程接入数据库用的用户,以便主机A和B可以链接进来。

         >  CREATE DATABASE myblog;

         >  GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.5.%' IDENTIFIED BY '@5server';

     3、搭建NFS服务器

         # mkdir /shared 

         # groupadd peter

         # useradd -g peter peter 

         # id peter

           uid=500(peter) gid=500(peter) groups=500(peter)

         # vim /etc/exportfs

         blob.png

         # setfacl -m u:peter:rwx /shared 

         启动nfs服务
         blob.png

         确认服务启动

    七、在主机A上安装apache和php

     1、将主机C的NFS共享目录挂载至本机/www/web

       #  mkdir -pv /www/web

       #  mount -t nfs 192.168.5.237:/shared /www/web

       blob.png

     2、安装apache

       (1)、编译安装apr

         #  tar -xf apr-1.5.2(1).tar.bz2

         #  cd ~./apr-1.5.2

         #  ./configure –prefix=/usr/local/apr

         #  make & make install 

       (2)、编译安装apr-util

         #  tar -xf apr-1.5.4(1).tar.bz2

         #  cd ~./apr-1.5.4

         #  ./configure –prefix=/usr/local/apr-util

         #  make & make install 

       (3)、编译安装apache

         解决依赖: yum -y install pcre-devel

         #  tar -xf httpd-2.4.9\ \(1\).tar.bz2

         #  cd ~./httpd-2.49

         #  ./configure –prefix=/usr/local/apache –sysconfdir=/etc/httpd24 –enable-so –enable-ssl –enable-cgi –enable-rewrit –with-pcre –with-zlib –with-apr=/usr/local/apr –with-apr-util=/usr/local/apr-util –enable-mpms-shared=all –with-mpm=event –enable-modules=most

         #  make && make install 

         导出环境变量

         # vim /etc/profile.d/httpd24.sh

         blob.png

         导出man文档

         # vim /etc/man.config

         blob.png

         导出头文件

         # ln -sv /usr/local/apache/include /usr/include/httpd

         blob.png

         导出库文件

         # vim /etc/ld.so.conf.d/httpd24.conf

         blob.png

         提供SysV风格服务脚本

         # cp /etc/init.d/httpd /etc/init.d/httpd24

         # vim /etc/init.d/httpd24  编辑此服务脚本作如下修改

         blob.png

         设置httpd24开机启动,并启动apache

         #  chkconfig –add httpd24

         #  chkconfig httpd24 on 

         #  service httpd24 start

         blob.png

         测试主页

         blob.png

     3、编译安装php

         解决依赖关系

         # yum -y groupintsall "Desktop Platform Development"

         # yum -y install bzip2-devel libmcrypt-devel

         编译安装php

         # tar -xf php-5.4.26.tar.bz2

         # cd ~./php-5.4.26

         # ./configure –prefix=/usr/local/php –with-mysql=mysqlnd –with-pdo-mysql=mysqlnd –with-mysqli=mysqlnd –enable-mbstring –with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib –with-libxml-dir=/usr –enable-xml –enable-sockets –with-apxs2=/usr/local/apache/bin/apxs –with-mcrypt –with-config-file-path=/etc –with-config-file-scan-dir=/etc/php.d –with-bz2 –enable-maintainer-zts 

         # make && make install

         为php提供主配置文件

         # cd ~./php-5.4.26

         # cp ./php.ini-production /etc/php.ini

         编辑apache主配置文件httpd.conf,让其支持php 

         # vim /etc/httpd 

           添加如下两行

           blob.png

           定位到DirectoryIndex,做如下修改

           blob.png

     4、配置Apache虚拟主机

           注释掉原DocumentRoot,启用虚拟主机配置文件

           blob.png

           blob.png

         编辑/etc/httpd24/extra/httpd-vhosts.conf添加一下内容

         blob.png

         创建日志文件目录 

         # mkdir /var/log/httpd24

         创建index.php测试主页,测试php

         # vim /usr/local/apache/htdocs/index.php

         blob.png

         重启httpd24,测试

         # service httpd24 restart 

         blob.png

    八、在主机B上依主机A的步骤,安装Apache和phP

    九、配置安装Discuz并验证

       1、解压Discunz  

         #  unzip Discuz_X3.2_SC_UTF8.zip

       2、将解压目录内的内容复制到NFS共享目录/shared中

         # cd ~/upload/* /shared

       3、将/shared下所有文件权限改为777。(如果不改,Discuz安装时安装环境检查会出错)

         # chmod -R 777 /shared/*

       4、在测试机PC的浏览器中输入www.myblog.com,安装Discuz。注意,此步骤中,数据库服务器必须填mysql主机IP地址,而不能使用localhost,本文配置如下

         数据库服务器:192.168.5.237

         数据库名称:myblog   (上文已预创建)

         数据库登陆账户:root (上文已定义)

         数据库登陆:@5server (上文已定义)

       5、定义管理员账户和密码,点击下一步进行软件安装,如下图 

         blob.png

       6、登陆到Discuz发帖验证,验证在主机A和B能访问到同一页面

          输入网站域名得到的结果

          blob.png

          指定主机A得到的结果

          blob.png 

          指定主机B得到的结果。

          至此,实验完成。    

         

原创文章,作者:Silently,如若转载,请注明出处:http://www.178linux.com/5813

(1)
SilentlySilently
上一篇 2015-07-06 09:16
下一篇 2015-07-06 09:22

相关推荐

  • N23-第三周博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@localhost ~]# who | cut -d' ' -f1 | sort -u 2、取出最后登录到当前系统的用户的相关信息。 [root@localhost ~]# last -1 | head -1 3、取出当前系统上被用户当…

    Linux干货 2016-12-05
  • jackcui0804作业

    (1)显示/proc/meminfo 文件中以大小s 开头的行;( 要求:使用两种方式) [root@centos7 ~]# cat /proc/meminfo | grep -e "^s.*" -e "^S.*" SwapCac…

    Linux干货 2016-08-08
  • 课堂练习及课后作业(0805文本处理工具)

    课堂练习: 1、找出ifconfig命令结果中本机的所有IPv4地址 2、查出分区空间使用率的最大百分比值 3、查出用户UID最大值的用户名、UID及shell类型 4、查出/tmp的权限,以数字方式显示 5、统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序 grep 1、显示/proc/meminfo文件中以大小s开头的行;(要求:使用两种方式…

    Linux干货 2016-08-07
  • 生产环境模拟实现keepalived+Nginx调度器+httpd的高可用集群

    具体过程是用Nginx做负载均衡,可以将Nginx和主机放在同一台机子上,也可以分开放置,只不过分开的话要指明RS是Nginx的主机地址。至于直接将虚拟地址配置在Nginx主机上我暂时还未成功 下面附上我的双主模型的主keepalived服务器的配置 ! Configuration File for keepalive…

    Linux干货 2016-11-11
  • 用户和组管理 第三周

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 who | cut -d' ' -f1 | sort -u who:查看当前已经登陆的所有用户的详细信息 cut -d ' ' -f1:以空格为界显示每行第一列 sort -u :在输出行中去除重复行。 2、取出最后登录到当前系…

    Linux干货 2017-02-13
  • Linux进程管理常用命令(二)

       htop命令:         选项:         -d # : 指定延迟时间间隔;         -u  UserName :仅显示指定用户的进程;       &n…

    Linux干货 2017-01-05

评论列表(1条)

  • stanley
    stanley 2015-07-06 09:20

    过程详细,绘图专业,标识清晰,非常不错,赞