2、解釋: (1)、假設(shè)外網(wǎng)域名blog.s135.com解析到外網(wǎng)虛擬IP 72.249.146.214上,內(nèi)網(wǎng)hosts設(shè)置db10對應(yīng)內(nèi)網(wǎng)虛擬IP 192.168.146.214 (2)、默認(rèn)情況下,由主機(jī)綁定內(nèi)、外網(wǎng)虛擬IP,備機(jī)作為備份,當(dāng)主機(jī)的MySQL、Nginx或服務(wù)器出現(xiàn)故障無法訪問時(shí),備機(jī)會自動接管內(nèi)、外網(wǎng)虛擬IP。兩臺服務(wù)器都啟動負(fù)責(zé)監(jiān)控、自動切換虛擬IP的守護(hù)進(jìn)程/usr/bin/nohup /bin/sh /usr/local/webserver/failover/failover.sh 2>&1 > /dev/null & (3)、主機(jī)和備機(jī)上的MySQL服務(wù)器互為主從,互相同步。在主機(jī)處于活動狀態(tài)(即由主機(jī)綁定虛擬IP)時(shí),讀寫主機(jī)的MySQL,寫到主機(jī)的數(shù)據(jù)會同步到備機(jī);在備機(jī)處于活動狀態(tài)時(shí),讀寫備機(jī)的MySQL,寫到備機(jī)的數(shù)據(jù)會同步到主機(jī)(如果主機(jī)上的MySQL死掉暫時(shí)無法同步,主機(jī)上的MySQL恢復(fù)后,數(shù)據(jù)會自動從備機(jī)上同步過來,反之亦然)。 (4)、主機(jī)處于活動狀態(tài)時(shí),每20秒會把/data0/htdocs/(網(wǎng)頁、程序、圖片存放目錄)、/usr/local/webserver/php/etc/(php.ini等配置文件目錄)、/usr/local/webserver/nginx/conf/(Nginx配置文件目錄)三個目錄下的文件通過rsync推送到備機(jī)服務(wù)器上的對應(yīng)目錄(增量推送,兩臺服務(wù)器上一樣的文件不會重復(fù)推送),反之如果備機(jī)處于活動狀態(tài)時(shí),每20秒會嘗試把文件推送到主機(jī)。rsync的配置文件見兩臺服務(wù)器的/etc/rsyncd.conf,rsync守護(hù)進(jìn)程的啟動命令為rsync --daemon 3、自動切換流程 (1)、主機(jī)默認(rèn)綁定內(nèi)、外網(wǎng)虛擬IP,當(dāng)主機(jī)的MySQL、Nginx無法訪問或服務(wù)器宕機(jī),主機(jī)上的failover.sh守護(hù)進(jìn)程會自動摘除自己綁定的內(nèi)、外網(wǎng)虛擬IP(如果主機(jī)上的failover.sh死掉,無法摘除自己綁定的虛擬IP也沒關(guān)系),備機(jī)上的failover.sh守護(hù)進(jìn)程會自動接管備機(jī)原來綁定的內(nèi)、外網(wǎng)虛擬IP,并發(fā)送ARPing包給內(nèi)、外網(wǎng)網(wǎng)關(guān)更新MAC,強(qiáng)行接管。 (2)、備機(jī)綁定虛擬IP后,會發(fā)送ARPing包給內(nèi)、外網(wǎng)網(wǎng)關(guān),通知網(wǎng)關(guān)更新虛擬IP的MAC地址為備機(jī)的MAC地址,從而保證了切換后能夠通過虛擬IP及時(shí)訪問到備機(jī)。 (3)、如果主機(jī)的MySQL、Nginx啟動起來,全部恢復(fù)正常訪問,主機(jī)上的failover.sh守護(hù)進(jìn)程會檢測主機(jī)上的MySQL數(shù)據(jù)是否已經(jīng)完全從備機(jī)上同步過來。如果同步延遲時(shí)間為0,主機(jī)會自動接管內(nèi)、外網(wǎng)虛擬IP,并發(fā)送ARPing包給內(nèi)、外網(wǎng)網(wǎng)關(guān),而備機(jī)也會自動摘除內(nèi)、外網(wǎng)虛擬IP。 (4)、整個切換流程均由failover.sh自動完成,無需人工處理。 4、注意事項(xiàng)(很重要): (1)、crontab里的文件沒有做自動同步,如果修改,需要手工在兩臺服務(wù)器上都做修改。 (2)、/data0/htdocs/目錄內(nèi)任何用ln -s建立的軟連接,rsync不會自動同步,如果在一臺服務(wù)器上建了軟連接,需要手工在另外一臺服務(wù)器上也建相同的軟連接。 (3)、如果要刪除/data0/htdocs/目錄內(nèi)的某些文件或目錄,需要先刪除處于活動狀態(tài)(即綁定了虛擬IP)服務(wù)器上的文件或目錄,再刪除處于備用狀態(tài)服務(wù)器上的文件或目錄。 (4)、除了/data0/htdocs/(網(wǎng)頁、程序、圖片存放目錄)、/usr/local/webserver/php/etc/(php.ini等配置文件目錄)、/usr/local/webserver/nginx/conf/(Nginx配置文件目錄)三個目錄之外的其他配置修改,需要在兩臺服務(wù)器上都做修改。 二、配置文檔與腳本: 1、主機(jī)、備機(jī)兩臺服務(wù)器的rsync配置(配置相同) (1)、rsync配置文件
新聞熱點(diǎn)
疑難解答
圖片精選