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
下一篇 2015-07-06

相关推荐

  • 进程管理

    一、进程概述 1、进程的概念        用户通过执行命令,将程序提起到内存中运行,运行中的程序即称为进程。内核为了方便管理,根据内核发起者的权限、属性等参数,为每个进程设置一个独立的PID号,通过PID号来判断进程的权限。 2、进程的分类:    &nbs…

    Linux干货 2016-09-07
  • 第十九周作业

    1、描述Tomcat的架构; 核心架构图: 架构简介: Server是管理Service接口的,是Tomcat的一个顶级容器。管理着多个Service; Service 是服务,管理着一个Container和多个Connector,Service的存在依赖于Server; Container : 一个或者多个Container 可以对应一个Connector…

    2017-06-23
  • 软件包管理和磁盘管理

    软件运行和编译 ABI :Application Binary Interface 应用程序二进制接口     Windows和Linux不兼容      PE格式   ELF格式 库级别的虚拟化:       Linu…

    2017-04-24
  • N21天天第十一周课程练习

    1、详细描述一次加密通讯的过程,结合图示最佳。 SSL协议基础: SSL协议位于TCP/IP协议与各种应用层协议之间,本身又分为两层: 1)SSL记录协议:建立在可靠传输层协议(TCP)之上,为上层协议提供数据封装、压缩、加密等基本功能。 2)SSL握手协议:在SSL记录协议之上,用于实际数据传输前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。 SS…

    Linux干货 2016-10-09
  • 简单的shell脚本结合awk实现防止对web服务的dos攻击

    一 实验环境         鄙人使用的是centos 6.8操作系统   需要安装iptables(常见的linux系统貌似都会自动安装iptables)这条可以忽略   awk也需要安装没有的话就用yum装下吧       &…

    2017-04-24
  • 从Linux小白到大牛——与狼共舞的日子12(下)

    马哥教育网络班21期+第12周课程练习 5、为第4题中的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点; (1)要求使用证书认证,证书中要求使用的国家(CN)、州(HA)、城市(ZZ)和组织(MageEdu); (2)设置部门为Ops,主机名为www2.stuX.com,邮件为admin@stuX.com; 1.CA生成私…

    Linux干货 2016-12-26

评论列表(1条)

  • stanley
    stanley 2015-07-06 09:20

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