首页 > 代码库 > 两台web服务器做文件共享,负载均衡

两台web服务器做文件共享,负载均衡

服务器环境:httpdphpMySQLDNSNFS
共配置4台虚拟机,web服务各一台,PHPDNS一台,MySQLNFS一台。

网段使用172.16.0.0/16

 

 

注:httpdphpDNS服务在此前的博客中有详细说明,这里就不在详细演示,在此前的基础上追加安装,MySQLNFS

 

一、安装mysql-5.5.33

下载mysql-5.5.33-linux2.6-x86_64.tar.gz软件包

1、准备数据存放的文件系统

      因为数据总是在动态增长的,所以我们要创建一个逻辑卷来保存数据。使用/dev/sdb1这个分区来创建逻辑卷。

   1)准备磁盘为LVM格式

 wKioL1PwljCTsZCBAAGJSkXIqU0130.jpg

 2)创建lvm并格式化

wKiom1PwlUOBLcFNAAEM4-WY4HQ104.jpg

2、设置开机自动挂载


       这里假设其逻辑卷的挂载目录为/data,而后需要创建/mydata/data目录做为mysql数据的存放目录。


[root@mysql-server ~]#vim /etc/fatab


/dev/mapper/myvg-mylv  /mydata/data  ext4 defaults 0 0


 


   3、查看挂载情况


[root@mysql-server ~]#mkdir -p /mydata/data


[root@mysql-server ~]#mount -a


   4、为mysql准备系统用户和组


wKioL1Pwlm2BHEVJAABdFPvnEQ4223.jpg

 5、修改属主和属组

    wKiom1PwlZGjXs1MAAAtSqOf_dc433.jpg

                       

 6、解压mysql软件包并查看配置文档。开始配置就可以了

[root@mysql-server~]#tarxf mysql-5.5.33-linux2.6-x86_64.tar.gz -C/usr/local/mysql

wKioL1PwlrOhgNTZAAEzGZlX0yc105.jpg

7、进入/usr/local/mysql文件夹,修改属主与属组


[root@mysql-servermysql]# chown -R root:mysql  .


8、初始化系统库,进入到/usr/local/mysql


wKioL1Pwlsuy-TGVAAJ4lxDWxOw888.jpg

9、为mysql提供主配置文件my.cnf,并修改此文件中thread_concurrency的值为你的CPU个数乘以2,另外还需要添加如下行指定mysql数据文件的存放位置


[root@mysql-server ~]# cd /usr/local/mysql
[root@mysql-server ~]#
 cp support-files/my-large.cnf  /etc/my.cnf

wKiom1PwldODDVFJAAGls-dSMiw901.jpg

10、为mysql提供sysv服务脚本并添加为系统服务


wKiom1PwlffwBZ6TAACosGnixBg154.jpg

11、启动mysql服务,看能否正常启动


[root@mysql-server mysql]#/etc/init.d/mysqld start


12、后续操作


为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:


   1)输出mysqlman手册至man命令的查找路径:


wKiom1PwlhWBMphFAAFZjEJY8mY783.jpg

 2)输出mysql的头文件至系统头文件路径/usr/include


       这可以通过简单的创建链接实现:


       # ln -sv /usr/local/mysql/include  /usr/include/mysql


 3)输出mysql的库文件给系统库查找路径:


wKiom1PwlmvyVvh_AAB3bmI8vpk789.jpg


4)修改PATH环境变量,让系统可以直接使用mysql的相关命令。具体实现过程这里不再给出。


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


       #export PATH=/usr/local/mysql/bin:$PATH


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


 5)启动MySQL


wKioL1Pwl6XBGf1aAALeU2AJZSA325.jpg

二、安装NFS

1、nfs安装:

wKioL1Pwl_uwzW7uAAFnw3thYD4298.jpg

2、创建NFS共享目录

mkdir -p /apache/www

3、配置NFS服务

vim /etc/exports

/apache/www/   172.16.0.0/16(rw)

4、从PHP服务器上把index.php复制到NFS的共享目录下

[root@mysql-server/]# scp root@172.16.20.3:/var/www/html/index.php /apache24/www/index.php

Theauthenticity of host ‘172.16.20.3 (172.16.20.3)‘ can‘t be established.

RSA key fingerprintis bf:63:ab:54:77:2c:21:88:2f:9a:3f:f8:82:1e:0f:b5.

Are you sureyou want to continue connecting (yes/no)? yes

Warning:Permanently added ‘172.16.20.3‘ (RSA) to the list of known hosts.

root@172.16.20.3‘spassword:

index.php                                                      100%  154    0.2KB/s   00:00 

 

5、在PHP服务器上挂着NFS目录

mount -t nfs172.16.20.3:/apache24/www/ /var/www/html/

如果想开机自动挂载,可以写在/etc/fstab中

       6、启动NFS

wKiom1PwlxWSNUJCAADIucDk2lw202.jpg

安装完后,测试http能不能通过PHP连接NFS作共享服务

      先在NFS服务器上,添加共享文件,并且为MySQL数据库创建用户

        添加共享文件

wKiom1Pwl2aAsdHgAAH75WMdUTE424.jpg

mysql服务器上为PHP服务器授权。index.php中要连接数据库,必须要获得mysql的授权

wKiom1PwlzOgfwLKAAL3Fnqydew882.jpg

 测试http能不能通过PHP连接NFS作共享服务

第一台web服务

         wKioL1PwmLOh-fJhAAKZ0TGcyt8955.jpg

第二台web服务

wKioL1PwmNfyZfHQAAJ2DM4vLGs288.jpg

继续检测能否在连接到MySQL数据库,上面的步骤中,我们已经为PHP创建过用户了,这里不在演示

第一台web服务器

wKioL1PwmSiztz6RAAHuHwKzR3w321.jpg

第二台web服务器

wKiom1Pwl-zQ41OuAAJnXV5v_w8030.jpg

连接成功!

接下就要配置DNS,搭建论坛了。

1、安装DNS

yum -y install bind

2、配置DNS服务

vim /etc/named.conf

 

[root@php-server ~]# vim /etc/named.conf

 

        listen-on port 53 {172.16.20.1; };

//      listen-on-v6 port 53 { ::1;};

        directory       "/var/named";

//      dump-file      "/var/named/data/cache_dump.db";

//      statistics-file"/var/named/data/named_stats.txt";

        memstatistics-file"/var/named/data/named_mem_stats.txt";

        allow-query     { any; };

        recursion yes;

 

        rrset-order {

                class IN type Aname "www.hyd.com" order cyclic;

};

//      dnssec-enable yes;

//      dnssec-validation yes;

//      dnssec-lookaside auto;

 

        /* Path to ISC DLV key */

//      bindkeys-file"/etc/named.iscdlv.key";

 

//      managed-keys-directory"/var/named/dynamic";

};

 

logging {

        channel default_debug {

                file"data/named.run";

                severity dynamic;

        };

};

 

zone "." IN {

        type hint;

        file "named.ca";

};

 

include "/etc/named.rfc1912.zones";

//include "/etc/named.root.key";

 

 

vim /etc/named.rfc1912.zones

添加:

zone "hyd.com" IN {

        type master;

        file"hyd.com.zone";

};

 

 

[root@php-server ~]# vim /var/named/hyd.com.zone

 

$TTL 600

@       IN      SOA    dns.hyd.com.   hydmail.com. (

                        20140816

                        3H

                        1H

                        1W

                        1D)

        IN      NS     dns.hyd.com.

dns     IN      A      172.16.20.3

www     IN      A      172.16.20.1

www     IN      A      172.16.20.2

 

 

 

[root@php-server ~]# chown root:named /var/named/hyd.com.zone

[root@php-server ~]# chmod 640 /var/named/hyd.com.zone

[root@php-server ~]# named-checkconf

[root@php-server ~]# named-checkzone hyd.com /var/named/hyd.com.zone

zone hyd.com/IN: loaded serial 20140816

OK

[root@php-server ~]# /etc/init.d/named restart

Stopping named: .                                         [  OK  ]

Starting named:                                           [  OK  ]

[root@php-server ~]# tail/var/log/messages

在APACHE服务器上测试DNS能否轮训

wKiom1PwmU2ig_LyAAIy0YN0jTY117.jpg

wKioL1PwmmeQ4YJtAAKxBVJboIY869.jpg

安装完成后,在NFS服务器上搭建论坛

准备两个论坛安装包,并且解压

wKiom1PwmZSQZoO1AADQ--UltEw735.jpg

并且确认它可以同步到PHP服务器上,然后就可以测试了。

测试前,请先更改真实机的DNS避免访问到网络地址

wKioL1Pwmszy_Z_OAAJWYvPXrSg069.jpg

然后就可以正式访问了wKioL1PwmvHh6Y75AAEiQa6_FC8926.jpg

   搭建完成,并且测试成功。

   由于本人才疏学浅,请各位看官见谅,欢迎提出意见