由于目前现有网络的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。在此情况下,我们就必须对服务器做负载均衡设置。本文正是基于LAMP下的对discuz论坛负载均衡的实现。在此所有软件均是rpm包安装的。
实验环境
首先关闭SELinux。本文网络拓扑如下:
在192.168.0.72主机上提供了上述服务,并安装Discuz论坛。192.168.0.22主机上则通过72主机上共享的数据同样能够管理Discuz。由于72主机负载较大所以在22主机上配置DNS服务。具体的配置过程如下。
实验步骤
1、首先配置192.168.0.72主机
LAMP的安装在此不再赘述,下面直接介绍如何安装Discuz。
安装Discuz
- #mkdir -pv /web/vhosts/discuz
- #unzip Discuz_7.2-FULL_SC_GBK.zip -d /web/vhosts/discuz
- #ls /web/vhosts/discuz
- readme upload utilities //Discuz的网页文件存放在upload目录
- 编辑httpd配置文件创建虚拟主机
- 启用NameVirtualHost *:80
- vim /etc/httpd/conf/httpd.conf
- <VirtualHost *:80>
- ServerName discuz.mgedu.com
- DocumentRoot /web/vhosts/discuz
- ErrorLog /web/vhosts/log/error_log
- CustomLog /web/vhosts/log/access_log combined
- <Directory "/web/vhosts/discuz" >
- Options none
- AllowOverride none
- </Directory>
- </VirtualHost>
- #service httpd restart
此时直接访问http://192.168.0.72/upload会出现Discuz的提示页面。如下图:
根据提示编辑/etc/php.ini文件,设置short_open_tag=On。刷新页面,此时便会跳转到下一个安装页面。如下图:
提示为目录或文件的权限设置不正确。这是因为Discuz的这些文件不能被Apache用户读写,所以只需让Apache对这些目录和文件有相应的权限即可。在此使用setfacl命令。如:
setfacl -m u:apache:rw ./config.inc.php
setfacl -m u:apache:rwx ./p_w_uploads //这是个目录所有一定要有执行权限
其他目录执行相同的操作。刷新页面,一切正常。
根据安装提示,完成安装后便会显示如下界面。如图:
Discuz已安装成功。
2、配置192.168.0.22主机
(1)配置DNS
- #rpm -e bind
- #yum -y install bind97 bind97-libs bind97-utils
- #vim /etc/named.conf //编辑DNS的配置文件
- options{
- directory "/var/named";
- };
- zone "magedu.com" IN {
- type master;
- file "magedu.com.zone";
- };
- zone "168.192.in-addr.arpa" IN {
- type master;
- file "168.192.zone";
- };
其实配置文件中还有两个本地域和一个根域,在此不再做详解。下面开始编写所需域文件。
- #cd /var/named
- #vim magedu.com.zone
- $TTL 600
- $ORIGIN magedu.com.
- @ IN SOA ns.magedu.com. admin.magedu.com.(
- 2012061401
- 30M
- 10M
- 3D
- 1D)
- IN NS ns
- ns IN A 192.168.0.22
- discuz IN A 192.168.0.22
- discuz IN A 192.168.0.72
编辑反向域。
- #vim 168.192.zone
- $TTL 600
- @ IN SOA ns.magedu.com. admin.magedu.com.(
- 2012061401
- 30M
- 10M
- 3D
- 1D)
- IN NS ns.magedu.com.
- ns.magedu.com IN A 192.168.0.22
- 22.0 IN PTR discuz.magedu.com.
- 72.0 IN PTR discuz.magedu.com.
文件编辑完成后,执行如下命令:
#chown :named magedu.com.zone
#chmod +x magedu.com.zone
#chown :named 168.192.zone
#chmod +x 168.192.zone
检查配置文件和域。如图:
(2)安装Apache
- #yum -y install httpd
- #service httpd start
(3)安装Mysql
- yum -y install mysql mysql-server
- service mysqld start
安装完成后,使命mysql命令对数据进行初始化。然后对root用户设置密码。
- use mysql //使用mysql数据库
- set password for root@'localhost'=password('redhat')
- //为root用户设置密码为redhat
(4)安装php
- yum -y install php53 php53-mbstring php53-mysql
- service httpd restart //重启web服务
安装php后,要整合Apache和Php。
- #vim /etc/httpd/conf/httpd.conf //编辑web的配置文件
- DirectoryIndex index.php index.html index.html.var
- //让web识别php文件
- 在/var/www/html目录下添加index.php
- <?php
- phpinfo();
- ?>
访问http://192.168.0.72,此时会出现如下界面:
此时说明Apache和Php已整合成功。
三、整合两台主机
1、在192.168.0.72主机上
(1)启动nfs服务
(2)共享网页文件
- #vim /etc/exports
- /web/vhosts/discuz/upload 192.168.0.22(rw,no_root_squash)
(3)设置数据库。允许特定主机访问数据库。
- mysql>grant all on discuz.* to discuz@'%.%.%.%' identified by 'discuz';
- mysql>flush privileges;
2、在192.168.0.22主机上
(1)测试连接数据库
- #vim /var/www/html/index.php
- <?php
- $link=mysql_connec('192.168.0.72','discuz','discuz');
- if ($link)
- echo "Success...";
- else
- echo "Failure";
- mysql_close();
- ?>
访问http://192.168.0.22
测试成功。
(2)配置虚拟主机
- #vim /etc/httpd/conf/httpd.conf
- 启用NameServer *:80
- <VirtualHost *:80>
- ServerName discuz.magedu.com
- DocumentRoot /web/vhosts/
- ErrorLog /web/vhosts/log/error_log
- CustomLog /web/vhosts/log/access_log combined
- <Directory "/web/vhosts">
- Options none
- AllowOverride none
- </Directory>
- </VirtualHost>
(3)挂载网页文件
- #mkdir -p /web/vhosts
- #mount -t nfs 192.168.0.72:/web/vhosts/discuz/upload /web/vhosts
- #ls /web/vhosts //此时网页文件已在此目录下
(4)修改config.inc.php文件,指定数据库。
- #cd /web/vhosts
- #vim config.inc.php
- $dbhost = '192.168.0.72'
- define('UC_DBHOST', '192.168.0.72');
- define('UC_IP', '192.168.0.72');
- #vim /etc/php.ini
- short_open_tag=On
(5)访问http://192.168.0.22。
此时两台主机都可以访问论坛。之后输入域名访问论坛,查看各自定义的日志文件就会发现两台主机都有访问论坛记录。此时配置已完成。
转载于:https://blog.51cto.com/yuan00/931985