DNS轮询 + LAMP + NFS


整体架构图。

wKiom1PyANzhUKKvAAH-Sn55yg8692.jpg

架构使用操作系统:

DNS+HTTP1 HTTP2  NFS 主机均使用CentOS6.5 x86_64操作系统。

MariaDB主机采用Ubuntu Server12.04  x86_64 操作系统。


一.NFS网络文件系统简介:

network file system,一种分散式文件系统协议,主要功能是让网络上不同的主机,不同的操作系统共同访问一个文件,允许不同客户端及服务端通过一组RPC分享相同的文件系统,NFS独立于操作系统。


二.安装MariaDB,二进制源码包安装。

默认安装的时候,Ubuntu是没有安装lvm相关命令的。

刚安装好的系统要指定软件包源地址。我这边是apt-get update。

1.)创建lvm逻辑卷。

#apt-get install lvm2
其他的部分都是一样的。
# fdisk /dev/sdb
# pvcreate /dev/sdb1
# vgcreate data_vg /dev/sdb1
# lvcreate –L 10G –n data_lv data_vg
# lvs
  LV      VG     Attr   LSize  Origin Snap% Move Log Copy%  Convert
  data_lvdata_vg -wi-ao 10.00g

 

2.)创建数据目录,并挂载。

# mkdir /MySQL
# mount /dev/data_vg/daya_lv /MySQL
# df -lh
/dev/mapper/data_vg-data_lv  9.8G  61M  9.2G   1% /MySQL


3.)创建用户 组,修改/MySQL属组。

# groupadd –r mysql
# useradd –g mysql –r mysql
# chgrp mysql /MySQL


4.)解压MariaDB,初始化安装。

# cd /usr/local/
# tar xf mariadb-5.5.36-linux-x86_64.tar.gz
# ln -sv mariadb-5.5.36-linux-x86_64 mysql
# cd mysql
# chown -R mysql:mysql *
# cp support-files/my-large.cnf /etc/my.cnf
# cp support-files/mysql.server /etc/init.d/mysqld
# ./scripts/mysql_install_db --user=mysql--datadir=/MySQL/data
# /etc/init.d/mysqld start

数据库环境准备完成


二.开始安装http,因为之前安装过,直接打包复制出来一份,这次解压就可以使用了。

1.)只需要安装pcre,如果想自己手动编译,之前文章有LAMP手动编译安装的。

#yum install pcre-devel


2.)解压好后的http。

# ls
apr-1.5 apr-util  httpd  httpd-2.4.4-linux-x86_64.tar.gz  httpdconf Sys-httpd
 
# mv apr-1.5/ apr-util/ httpd/ /usr/local/
# mv httpdconf/ /etc/httpd
# mv Sys-httpd /etc/init.d/httpd
# chkconfig --add httpd
# service httpd start
                                                          [  OK  ]

 

3.)查看进程。

# ps aux | grep httpd
root     1429  0.0  0.9 76940  2228 ?        Ss  18:26   0:00/usr/local/httpd/bin/httpd
daemon   1431  0.0  0.8 421200 2040 ?        Sl   18:26  0:00 /usr/local/httpd/bin/httpd
daemon   1432  0.0  0.8 421200 2040 ?        Sl   18:26  0:00 /usr/local/httpd/bin/httpd
daemon   1433  0.0  0.8 421200 2048 ?        Sl   18:26  0:00 /usr/local/httpd/bin/httpd
root     1516  0.0  0.3 103244  860 pts/0    S+   18:27  0:00 grep httpd


4.)访问http1的首页。

wKioL1PyBBHQueb8AACKsyfcp6A288.jpg




5.)第二个http主机也是同样的安装方法。

wKioL1PyBGTDB5r2AACQ89wlDqg469.jpg

三.开始安装DNS,详细步骤不再演示。

1.)修改主配置文件

# vim /etc/named.rfc1912.zones
zone "zhang.com" IN {
        typemaster;
        file"zhang.com.zone";
};


2.)创建zhang.com.zone配置文件。

# vim /var/named/zhang.com.zone
$TTL 600
@      IN      SOA     ns1.zhang.com.  admin.zhang.com. (
                        2014081807
                        2H
                        10M
                        7D
                        1D
)
       IN      NS      ns1
       IN      MX      10     mail.zhang.com.
ns1    IN      A       172.16.32.10
www    IN      A       172.16.32.10
www    IN      A       172.16.32.11
~

 

3.)重启dns                            

# /etc/init.d/named restart
Stopping named:                                           [  OK  ]
Starting named:                                            [ OK  ]
注意权限问题。

 

4.)开始修改两个http主机配置文件,修改主机名,测试DNS解析,域名相同

ServerName www.zhang.com:80


5.)开始解析测试。

# cat /etc/resolv.conf 
nameserver 172.16.32.10
 
# nslookup 
> www.zhang.com
Server:       172.16.32.10
Address:   172.16.32.10#53
 
Name:  www.zhang.com
Address: 172.16.32.11
Name:  www.zhang.com
Address: 172.16.32.10


四.开始安装php。

1.)安装依赖包

# yum -y groupinstall "Desktop PlatformDevelopment" 
# yum -y install bzip2-devel libmcrypt-devel


2.)解压安装php。

# tar xf php-5.4.8-linux-x86_64.tar.gz
# ls
php5 php-5.4.8-linux-x86_64.tar.gz php-fpm  php.ini
# mv php5/ /usr/local/
# mv php-fpm /etc/init.d/php-fpm
# mv php.ini /etc/
# chkconfig --add php-fpm
 
#  vim /usr/local/php5/etc/php-fpm.conf
listen = 172.16.32.12:9000


3.)启动php,查看进程。

# service php-fpm start
Starting php-fpm done
 
# ps -ef | grep php
root     1448     1  0 18:46 ?        00:00:00 php-fpm: master process(/usr/local/php5/etc/php-fpm.conf)                                                                     
nobody   1449  1448  0 18:46 ?        00:00:00 php-fpm: pool www                                                                                                               
nobody   1450  1448  0 18:46 ?        00:00:00 php-fpm: pool www                                                                                                              
nobody   1451  1448  0 18:46 ?        00:00:00 php-fpm: pool www                                                                                                              
nobody   1452  1448  0 18:46 ?        00:00:00 php-fpm: pool www                                                                                                              
nobody   1453  1448  0 18:46 ?        00:00:00 php-fpm: pool www


五.开始结合php和http,程序包只是在刚安装好的时候打包的,里面的配置文件还是初始文件。

1.)修改httpd.conf配置文件。

# vim /etc/httpd/httpd.conf

#启用代理模块
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_modulemodules/mod_proxy_fcgi.so 

#修改网页根目录
DocumentRoot "/var/www/php"
<Directory "/var/www/php"> 
…

#使http支持php页面 
<IfModule dir_module>
   DirectoryIndex index.php index.html
</IfModule>                                                                                                      
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

#关闭正向代理,修改为php主机地址
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$fcgi://172.16.32.12:9000/var/www/php/$1


2.)创建对应的目录,重启httpd。

# mkdir -pv /var/www/php
# service httpd restart
Stopping httpd:                                           [  OK  ]
Starting httpd:                                           [  OK  ]


3.)另外一台http主机相同配置。

# scp /etc/httpd/httpd.conf172.16.32.10:/etc/httpd/httpd.conf


4.)切换到php主机,创建相对应的目录,并且创建php测试页。

# mkdir -pv /var/www/php
# vim /var/www/php/index.php
<?php
       phpinfo();
?>


5.)访问两个测试页,看看http结合php是否正常。

wKioL1PyB-qS9PujAAMuhs4ztf8553.jpg

wKiom1PyBtPzHJdDAAM97b79XzY650.jpg



httd结合php已经正常,开始创建NFS文件系统。


六.切换到nfs主机。

1.)创建文件共享目录,添加要共享的主机地址,给予读写权限。

#mkdir /share/nfs -pv
# vim /etc/exports
/share/nfs 172.16.32.10(rw) 172.16.32.11(rw)172.16.32.12(rw)


2.)启动nfs。

# /etc/init.d/nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]


3.)创建一个测试文件,看其他被共享主机是否可以看到。

# touch /share/nfs/test


4.)切换到http主机,挂载。如果showmount命令没有的话,是需要安装的。

# showmount -e 172.16.32.20
Export list for 172.16.32.20:
/share/nfs 172.16.32.12,172.16.32.11,172.16.32.10

# mount -t nfs 172.16.32.20:/share/nfs /var/www/php/
# cd /var/www/php/
ls
test


现在已经可以看得到测试文件了,把另外一台http主机和php主机同样的方法挂载上。


七.这时候就可以下载Discuz论坛安装了。将软件包放到nfs主机共享目录上。

1.)解压Discuz,给/upload下的文件相对应的权限。

# pwd
/share/nfs
# unzip Discuz_X3.2_SC_GBK.zip
 
# chmod -R go+w upload/
# chmod -R go+w config/
# chmod -R go+w uc_*


2.)回到数据库,创建数据库,创建帐号。

MariaDB [(none)]> CREATE DATABASE bbsdb;
Query OK, 1 row affected (0.00 sec)
 
MariaDB [(none)]> GRANT ALL ON bbsdb.* TO'bbsAdmin'@'172.16.32.12' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.01 sec)
 
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)


3.)开始安装Discuz论坛。

wKioL1PyCXLjMVQaAAPuB73fRkk057.jpg

wKiom1PyCFyjQ769AAPi_b08cC0693.jpg


论坛通过nfs文件系统安装完成

 

总结:如果不想使用nfs文件系统,需要在被共享主机卸载掉挂载目录,才能进行关机操作,不然正常关机会卡住。

DNS轮询的时候权重分配的不是很理想,可能刷新的时候,一直访问的是一个IP地址。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章