一、實驗環境
Centos6.8 防火牆關閉狀態
二、安裝nginx
tar xvf nginx
yum -y install pcre pcre-devel zlib zlib-devel
useradd -s /sbin/nologin -M nginx
cd nginx
./configure --prefix=/usr/local/nginx --user nginx --group nginx
make && make install
三、新建測試網頁
cd /usr/local/nginx/html
rm -rf *
echo “aaaaaaaaaaaa” > index.html
cd /usr/local/nginx/html
rm -rf *
echo “bbbbbbbbbbb” > index.html
四、保證兩臺服務器時間同步
在這裏我們將RS1作爲ntp服務器,讓另一臺同步這臺的時間:
yum -y install ntp
打開vim /etc/ntp.conf配置文件,按圖中的提示修改:
service ntp start #開啓ntp服務
chkconfig ntp on #開機啓動
然後在RS2上配置
yum -y install ntp
ntpdate -u 10.10.10.11 #同步服務器時間
這樣兩臺機器時間就可以同步了。
五、保證域名能夠解析
分別配置RS1和RS2上的hosts文件,vim /etc/hosts 添加
10.10.10.11 www.centos1.com
10.10.10.12 www.centos2.com
六、更改主機名
hostname www.centos1.com #在10.10.10.11上操作
hostname www.centos2.com #在10.10.10.12上操作
七、安裝Heartbeat
tar -xvf heartbeat.tar.gz
cd heartbeat
yum -y install *
以上操作必須在RS1和RS2都要操作。
八、修改RS1的配置文件
1、拷貝heartbeat的配置文件
cd /usr/share/doc/heartbeat-3.0.4
cp -a ha.cf authkeys haresources /etc/ha.d
cd /etc/ha.d
說明:
- ha.cf 主配置文件
- authkeys 認證文件
- haresource 源文件
- /etc/ha.d 這個目錄是heartbeat的默認存放目錄。
2、生成MD5碼
dd if=/dev/random bs=512 count=1 | openssl md5
xxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxx 這個碼就是生成的MD5碼,這裏就用xx代替。
3、修改authkeys
將auth改成3,在3中把上一步生成的MD5碼,粘貼進去。
auth 3
1 crc
2 sha1 HI!
3 md5 xxxxxxxxxxxxxxxxxxxxxxxxxx
給authkeys配置權限:
必須是600,寫成其他的heartbeat就會認爲不安全,不讓你啓動。
chmod 600 authkeys
4、修改主配置文件ha.cf
bcast eth0 #選擇那塊網卡檢測心跳
...
node www.centos1.com
node www.centos2.com
5、修改源配置文件haresources
在最後一行添加下面的腳本,此腳本的作用就是切換IP
www.centos1.com IPaddr::10.10.10.100/24/eth0:0 #等同於ifconfig配置
解析:主服務器名字+vip地址+網卡 ,注意兩個冒號。
6、啓動heartbeat
/etc/init.d/heartbeat start
九、修改RS2上的配置文件
在RS1上面把配置好的ha.cf、authkeys、haresources三個文件傳到RS2即可。
cd /etc/ha.d
scp ha.cf authkeys haresources [email protected]:/etc/ha.d
複製完之後啓動
/etc/init.d/heartbeat start
十、測試結果
在客戶端上打開網頁測試,輸入網址:10.10.10.100 測試。
此時我們看到的內容是:aaaaaaaaa,因爲RS1爲主。
我們斷開RS1的網卡,等10秒左右刷新,就會看到內容變成:bbbbbbb
說明:RS2通過心跳檢測發現RS1已經下線,接管了nginx
當我們連接了RS1的網卡後,等待10秒左右,刷新網頁有看到了aaaaaaaa
說明:RS1又接管了nginx
這樣我們就實現了Heartbeat+Nginx高可用集羣的搭建。