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

相关推荐

  • UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现

    类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。 2) 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承担什么样的义务。一个类可以有多种职责,设计得好的类一般只有一种职责,在定义类的时候,将类的职责分解成为类的属性和操作(即方法)。 3) 类的属性…

    Linux干货 2015-04-07
  • 8月9日vim作业

    复制/etc/rc.d/init.d/functions文件至/tmp目录;替换/tmp/functions文件中的/etc/sysconfig/init为/var/log; :%s@/etc/sysconfig@/var/log@ 删除/tmp/functions文件中所有以#开头,且#后面至少有一个空白字符的行的行首的#号 :%s@^#\([[:spac…

    Linux干货 2016-08-10
  • Linux的哲学思想第二篇

    Linux的哲学思想 一切皆文件 物理终端 物理终端指的是显示器等硬件终端设备,文件存在于 /dev/console 这个路径下 虚拟终端 虚拟终端指的是在linux命令行连接的终端,文件存在于 /dev/tty# [1,6] 这个路径下 串行终端 指的是使用计算机串行端口连接的终端设备,文件存在于 /dev/ttyS# 这个路径下 伪终端 指的是在Xshe…

    2018-02-26
  • day6总结

    主要内容: useradd与usermod对比 groupadd与groupmod对比 passwd与chage对比 gpasswd与groupmems对比 切换用户 chown与chgrp用法 一般权限与特殊权限 chmod用法   useradd创建用户的初始信息存放在/etc/login.defs和/etc//default/useradd文…

    系统运维 2016-08-08
  • loganalyzer——日志分析工具

    Loganalyzer是一款syslog日志和其他网络事件数据的Web前端。它提供了对日志的简单浏览、搜索、基本分析和一些图表报告的功能。数据可以从数据库或一般的syslog文本文件中获取,所以LogAnalyzer不需要改变现有的记录架构。基于当前的日志数据,它可以处理syslog日志消息,Windows事件日志记录,支持故障排除,使用户能够快速查找日志数…

    Linux干货 2016-10-18
  • 马哥教育网络班21期第8周课程练习

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥也叫桥接器,是连接两个局域网的一种存储/转发设备,用来连接不同网段。 集线器称为“Hub”,主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。 二层交换机工作于OSI模型的第2层(数据链路层),可识别数据包中的MAC地址信…

    Linux干货 2016-09-19

评论列表(1条)

  • stanley
    stanley 2015-07-06 09:20

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