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

相关推荐

  • 主流Linux发行版对比

      对服务器来说,没有最好的Linux发行版。一切都取决于企业的实际需求。 如今Linux已不再只是一款自由操作系统,它还承载了许多企业的核心应用。在对比流行的Linux发行版时,不仅要考虑有吸引力的功能集,还要关注系统的支持与服务。 服务器管理员担心操作系统的维护和支持周期。维护生命周期指的是Linux发行版持续提供产品补丁和更新的时间。支持方面…

    Linux干货 2016-10-31
  • Linux终端的类型

    Linux终端可以分为如下几种类型    1、物理终端:是指通过键盘显示器直接连接到主机的方式,我们也称之为console端。    2、虚拟终端:是利用软件的方式模拟实现类似物理终端的访问方式,通常Linux内核开启6个虚拟终端,分别使用Ctrl+Alt+F1~F6实现不同tty虚拟终端之间的切换,供多用户或者多任务…

    Linux干货 2016-10-29
  • 马哥教育网络第20期—IO类型与IO模型

    IO类型与IO模型 IO类型 同步与异步(synchronous,asynchronous):关注消息通知机制 同步:进程发出系统调用之后,不会立即有返回信息,但是一旦有返回信息,则一定是最终结果. 异步:进程发出系统调用之后,会有立即返回结果,但不是最终的结果,当内核处理完成之后,内核通过通知机制通知进程,该系统调用已完成. 阻塞与非阻塞(blocking…

    Linux干货 2016-06-26
  • linux下文件处理基础命令(自己预习瞎学的)

                      Linux下文件处理基础命令     1.创建文件   有时候我们会遇到需要创建一个空文件的情况。比如,应用程序可能希望在写…

    2017-07-15
  • Linux程序包管理方式

    Linux程序包安装和管理方式共计三种:          一、[yum|dnf],通过官网或者其他开源网站提供的文件服务器,本机镜像源等途径进行安装。         二、rpm,通过官网或者其他开源网站通过…

    Linux干货 2016-08-29
  • Memcached实现Tomcat的session会话绑定

    memcached介绍:  Memcached是一个高性能的分布式内存对称缓存系统;通过缓存查询数据库结果,介绍数据库访问次数,以提高web应用的速度、提高扩展性。  Memcached特点:   协议简单   基于libevent的事件处理   内置内存存储方式  memcached不互相通信的分…

    Linux干货 2015-08-01

评论列表(1条)

  • stanley
    stanley 2015-07-06 09:20

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