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)
上一篇 2015-07-06 09:16
下一篇 2015-07-06 09:22

相关推荐

  • linux 记忆命令心得

    新开始学linux,要记住很多的命令,毕竟这是linux的根本,没有这些命令,连操作都没办法进行。所以我写这个的目的是我自己记忆,也是想帮助一下一同学习linux的同学们,提供自己记忆这些的方法,抛砖引玉,大家共同讨论一下。 我的记忆方法就是分类,把命令分成输出类,名词累,操作类。 输出类就是说的例如w,who,whoami,echo,ifcogfig,wh…

    Linux干货 2017-07-15
  • Linux中的cut、sort、uniq以及用户(组)管理类指令应用示例

    Linux中的cut、sort、uniq指令 列出当前系统上所有已经登录的用户的用户名,注意:同一用户登录多次,只显示一次。 解决思路: 先使用who指令显示出所有已登录的用户。然后对who指令的输出进行切割得到想要的第一列内容,即只包含用户名。可以使用cut指令。最后对cut的结果进行排序并去重。可以使用sort指令。   借助管道符,可以方便的…

    Linux干货 2016-11-13
  • 马哥教育网络班21期+第四周博客作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 2、编辑/etc/group文件,添加组hadoop。 3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。 4、复制/etc/sk…

    Linux干货 2016-07-07
  • DNS基础及使用BIND搭建域名服务器

        本文主线是DNS服务相关概念和服务器搭建,在此之前了解一下域名这个东东很有其必要性,因为DNS服务就是应域名而生的。那么域名是什么哪?     域名     域名是用一串用点分开的字符串来表示的internet上的某一台或者一组计算机的名称,用于在数据传输时标识计算机的电子方位。举…

    Linux干货 2015-06-11
  • 推荐-Linux Namespace的一点理解

        下文的原文来自: http://blog.csdn.net/preterhuman_peak/article/details/40857117    原文写的非常好,下文中大部分文字描述来自原文,我仅做了一点理解性的插图和实验部分。    &…

    Linux干货 2016-03-28
  • linux下安装配置DHCP服务器

    前提是已经安装了 core 及 base 两个组   1 2 3 4 5 # cat /etc/redhat-release   Red Hat Enterprise Linux Server release 6.8 (Santiago)&…

    Linux干货 2017-05-03

评论列表(1条)

  • stanley
    stanley 2015-07-06 09:20

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