由於目前現有網絡的各個核心部分隨着業務量的提高,訪問量和數據流量的快速增長,其處理能力和計算強度也相應地增大,使得單一的服務器設備根本無法承擔。在此情況下,我們就必須對服務器做負載均衡設置。本文正是基於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 ./attachments //這是個目錄所有一定要有執行權限
其他目錄執行相同的操作。刷新頁面,一切正常。
根據安裝提示,完成安裝後便會顯示如下界面。如圖:
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。
此時兩臺主機都可以訪問論壇。之後輸入域名訪問論壇,查看各自定義的日誌文件就會發現兩臺主機都有訪問論壇記錄。此時配置已完成。