lvs nat模型調度雙http服務且http上布置discuz

實驗的拓撲圖:

X1(6((UGB{I}@N2EBB`SV$O.png實驗方案:

我們先在real server上編譯安裝好http,然后,咋們切換到mysql服務器上安裝mysql,在換到http主機上編譯php的工作方式基于模塊的,再把discuz資源放到http的資源訪問目錄下,且在雙方http主機上布上rsync服務器,雙反的主機也要加上inotify來實時關注http訪問目錄的資源變化,有變化就要數據的傳輸,最后,我們到dirctor上布上lvs就好了。

實驗開始:

第一步:

編譯http前,先解決軟件的依賴關系,所以,要先編譯apr apr-util:

tar xf apr-1.5.0.tar.bz2
cd apr-1.5.0
./configure --prefix=/usr/local/apr
make && make install

tar xf apr-util-1.5.3.tar.bz2
cd apr-util-1.5.3
./configure --prefix=/usr/local/apr-util
make && make install

我們的編譯軟件包的依賴關系解決了,所以,我們需要編譯http了:

tar xf httpd-2.4.9.tar.bz2
cd httpd-2.4.9
./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr=/usr/local/apr-util --sysconfdir=/etc/httpd  --enable-so --enable-modules=most --enable-rewrite --with-z --with-libxml2 --with-mpm=event --enable-mpms-shared=all 
make && make install

我們的http服務器弄好了,同時,別忘了,給另一臺real server編譯http服務了,這里就不重復了,按照上面步驟就可以了,我們切換到mysql服務器上,給它布上mysql:

tar xf mariadb-10.0.10-linux-x86_64.tar.gz
mv mariadb-10.0.10-linux-x86_64 /usr/loca/mysql
mkdir -p /mysql/data
groupadd -r mysql
useradd mysql -r -g mysql
chown -R root:mysql /usr/local/mysql/*
chown -R mysql:mysql /mysql/data
/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/mysql/data --basedir=/usr/local/mysql
vim /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin:$PATH
:wq
source /etc/profile.d/mysql.sh
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld 
service mysqld start
mysql
mysql>grant all on *.* to bwei@'172.16.100.%' identified by 'bwei';(建立http主機連接mysql的用戶)
mysql>flush privileges;
mysql>\q

我們的mysql服務器就安裝完成了,這時,我們又切換到real server 上把php編譯安裝完成:

tar xf php-5.4.26.tar.bz2
cd php-5.4.26
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-zlib-dir  --with-jpeg-dir --with-png-dir  --with-freetype-dir --enable-mbstring --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-sockets --with-libxml-dir=/usr --enable-maintainer-zts --with-mcrypt
make && make install
cp php.ini-production /etc/php.ini

vim /etc/httpd/httpd.conf 
DirectoryIndex index.html index.php

AddType Application/x-httpd-php .php
AddType Application/x-httpd-php-source .phps

:wq

建立測試頁:
vim /usr/local/apache/htdocs/index.php
<?php

        $con=mysql_connect('172.16.100.3','bwei','bwei');
        if ($con)
        echo "ok!";
        else
        echo "false!";
        mysql_close();
        phpinfo();

?>
:wq

/usr/local/apache/bin/apachectl start

我們打開瀏覽器進行驗證:

7T8XE(EJ`33@1}~[X%77698.png

這時,我們在real server上放置discuz資源:

unzip Discuz_7.2_FULL_SC_GBK.zip
cp -r upload /usr/local/apache/htdocs/discuz
chmod 777 -R /usr/local/apache/htdocs/discuz/*

這時,我們需要實現數據的同步,在服務器上弄rsyncd服務器和inotify:

yum install -y xinet
chkconfig --add rsync
chkconfig rsync on
vim /etc/rsyncd.conf
uid = nobody
gid = nobody
use chroot = yes
max connections =10
strict modes = yes
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log

[share]
path = /usr/local/apache/htdocs
ignore errors = yes
read only = no
write only = no
hosts allow = 172.16.100.0/24
hosts deny = *
list false
uid = root
gid = root
auth users = bwei
secrets file = /etc/rsyncd.passwd

:wq

echo bwei:bwei > /etc/rsyncd.passwd

tar xf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure 
make && make install

給inotify提供腳本用到的對方密碼的文件:
mkdir /password
echo bwei > /password/rsyncd.password

提供同步腳本:
vim rsyncd.sh
#!/bin/bash
SRC=/usr/local/apache/htdocs/
DEST=share
HOST=172.16.100.2
/usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $SRC | while read files;
do
        rsync -vzrtopg --delete --progress --password-file=/password/rsyncd.password $SRC bwei@$HOST::$DEST
done

上面的rsync服務器和inotify都要在另一個real server上準備一份,且另一臺real server也需要提供同步腳本,這個腳本修改一下上面就行了!

啟動http服務,然后,打開瀏覽器進行安裝discuz,再用一個real server訪問discuz發帖,訪問另一個real server看帖是否還在:

lvs nat模型調度雙http服務且http上布置discuzEB26E`ON89%57[P}T79E)J3.jpg

T%X[62H6H[[6XA%L1FF6)P5.png

我們需要到lvs主機上,進行配置ipvs規則:

yum install ipvsadm -y
ipvsadm -A -t 192.168.100.1:80 -s rr 
ipvsadm -a -t 192.168.100.1:80 -r 172.16.100.1 -m 
ipvsadm -a -t 192.168.100.1:80 -r 172.16.100.2 -m

我們的ipvs規則配置好了,這時,我們可以進行real server的調度了,可以使用 watch ipvsadm -L -n 進行監控,查看調度到那個節點上。

實驗完畢!

原創文章,作者:13-廣州-楊過,如若轉載,請注明出處:http://www.www58058.com/8878

(0)
13-廣州-楊過13-廣州-楊過
上一篇 2015-10-22 09:13
下一篇 2015-10-27 23:12

相關推薦

  • 如何安裝CentOS 6.9

    1、打開VMware,點擊“創建新的虛擬機”   2、剛開始用的話,一般就選擇推薦的典型類型來安裝,所以直接點擊“下一步”   3、此處選擇稍后安裝操作系統,這里我們先進行配置,點擊“下一步”   4、因為我需要用里面的linux系統,所以選擇客戶機操作系統為Linux,選擇版本為CentOS 64位,單擊“下一步”。 &nbs…

    2017-07-11
  • X-Y Problem

    X-Y Problem 對于X-Y Problem的意思如下: 1)有人想解決問題X2)他覺得Y可能是解決X問題的方法3)但是他不知道Y應該怎么做4)于是他去問別人Y應該怎么做? 簡而言之,沒有去問怎么解決問題X,而是去問解決方案Y應該怎么去實現和操作。于是乎: 1)熱心的人們幫助并告訴這個人Y應該怎么搞,但是大家都覺得Y這個方案有點怪異。2)在經過大量地討…

    Linux干貨 2016-08-15
  • 從Linux小白到大?!c狼共舞的日子5

    馬哥教育網絡班21期+第5周課程練習 1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行。 [root@localhost ~]# grep '^[[:space:]]\+' /boot/grub/grub.conf 2、顯示/etc/rc.d/rc.sysinit文件中以…

    Linux干貨 2016-08-31
  • 強大的查找工具之find命令

    一、Linux中的文件查找工具     在文件系統上常常需要根據文件的各種屬性去查找符合條件的文件,此前講到的grep、egrep屬于文本過濾、文本搜索工具;而文本查找工具有兩個,local和find 二、Linux中的查找工具簡介 locate 命令 find 命令 簡介:locate屬于非實時查找,依賴于事先構建的索引;索引的創建是在…

    Linux干貨 2016-08-16
  • linux磁盤管理及其磁盤分區工具的使用

    一、 幾種分區工具: 1.圖形化工具gnome-disks使用簡單,在此不在贅述。 2.fdisk使用: fdisk支持MBR,也支持GPT分區,對于一塊硬盤最多只能理解15個分區,一般使用fdisk做MBR分區,gdisk做GPT分區。下面為fdisk分區示例: [root@centos7 ~]# fdisk /dev/sde…

    Linux干貨 2016-08-29
  • Bash學習基礎知識一“命令”

    Bash 學習基礎知識 目錄 一、Shell是個啥? 二、BASH的命令     2.1 命令的語法格式     2.2 什么是命令     2.4 命令的類型     …

    Linux干貨 2015-04-03

評論列表(2條)

  • stanley
    stanley 2015-10-22 09:18

    寫的非常不錯,實戰理論并肩,圖文并茂,詳圖得當,贊

    • 楊過
      楊過 2015-10-23 16:02

      @stanley多謝夸獎

欧美性久久久久