上篇http://www.reibang.com/p/2dbe976420f2
介紹了通過修改【配置文件Nginx.conf】文件實(shí)現(xiàn)服務(wù)器負(fù)載均衡,那么如何實(shí)現(xiàn)多臺(tái)服務(wù)器的數(shù)據(jù)文件同步呢床佳?那就要用到【rsync數(shù)據(jù)同步工具】,操作稍微麻煩點(diǎn)治笨,我盡量簡(jiǎn)單的說,不提太多的專業(yè)術(shù)語赤嚼。
好了旷赖,不廢話開始吧!
準(zhǔn)備工作:
一更卒、兩臺(tái)服務(wù)器【Centos7為例】:127.0.0.1(主服務(wù)器等孵,也是代碼或文件更新的服務(wù)器)127.0.0.2(同步服務(wù)器)#多服務(wù)器道理一樣
二、Xshell6遠(yuǎn)程連接工具(你用Pptuy我也不攔著)
開始干活:
1.連接127.0.0.1
2.主副服務(wù)器 yum安裝Rsync
yum install -y rsync
然后“主服務(wù)器”去寶塔面板后臺(tái)文件根目錄路徑 :【/etc/rsyncd.conf】編輯配置文件蹂空,有時(shí)候這個(gè)文件會(huì)存在流济,如果不存在,手動(dòng)創(chuàng)建即可腌闯。
#rsyncd.conf文件【/root/etc/rsyncd.conf】
motd file = /etc/rsyncd.motd
#設(shè)置服務(wù)器信息提示文件,在該文件中編寫提示信息
transfer logging = yes
#開啟rsync數(shù)據(jù)傳輸日志功能
log file = /var/log/rsyncd.log
#設(shè)置日志文件名雕憔,可通過log format參數(shù)設(shè)置日志格式
pid file = /var/run/rsyncd.log
#設(shè)置rsync進(jìn)程號(hào)保存文件名稱
lock file = /var/run/rsync.lock
#設(shè)置鎖文件名稱
port = 873
#設(shè)置服務(wù)器監(jiān)聽的端口號(hào)姿骏,默認(rèn)是873
address = 127.0.0.1
#設(shè)置本服務(wù)器所監(jiān)聽網(wǎng)卡接口的ip地址
uid = nobody
#設(shè)置進(jìn)行數(shù)據(jù)傳輸時(shí)所使用的帳戶名或ID號(hào),默認(rèn)使用nobody斤彼,也可改為root
gid = nobody
#設(shè)置進(jìn)行數(shù)據(jù)傳輸時(shí)所使用的組名或GID號(hào)分瘦,默認(rèn)使用nobody,也可改為root
#若為yes, rsync會(huì)首先進(jìn)行chroot設(shè)置琉苇,將根映射在下面的path參數(shù)路徑下嘲玫,對(duì)客戶端而言,系統(tǒng)的根就是path參數(shù)指定的路徑并扇。但這樣做需要root權(quán)限去团,并且在同步符號(hào)連接資料時(shí)只會(huì)同步名稱,不會(huì)同步內(nèi)容穷蛹。
use chroot = no
read only = yes
#是否允許客戶端上傳數(shù)據(jù)土陪,yes表示不允許
max connections = 0
#設(shè)置并發(fā)連接數(shù),0表示無限制
[common]
#自定義模塊名肴熏,rsync通過模塊定義同步的目錄鬼雀,可定義多個(gè)
comment = web content
#定義注釋說明字串
path = /www/wwwroot/
#同步目錄的真是路徑通過path指定
ignore errors
#忽略一些IO錯(cuò)誤
#exclude = temp/
#exclude指定common目錄下某個(gè)目錄可以不同步數(shù)據(jù)
auth users = rsyncadmin
#設(shè)置允許連接服務(wù)器的賬戶,此賬戶可以是系統(tǒng)中不存在的用戶
secrets file = /etc/rsyncd.secrets
#密碼驗(yàn)證文件名蛙吏,該文件權(quán)限要求為只讀源哩,建議為600鞋吉,僅在設(shè)置auth users后有效
hosts allow = 127.0.0.2
#設(shè)置哪些主機(jī)可以同步數(shù)據(jù),多ip和網(wǎng)段之間使用空格分隔
hosts deny=*
#除了hosts allow定義的主機(jī)外励烦,拒絕其他所有
list = false
#客戶端請(qǐng)求顯示模塊列表時(shí)谓着,本模塊名稱是否顯示,默認(rèn)為true
接下來穿件Rsync賬戶和密碼文件崩侠,但要注意創(chuàng)建的文件漆魔,必須要和上面的auth users 允許連接賬戶一致。
echo "tom:123" > /etc/rsyncd.secrets #寫入賬戶密碼到文件
chmod 600 /etc/rsyncd.secrets #更改權(quán)限為600
echo "welcome to access" > /etc/rsyncd.motd #歡迎語
rsync --daemon # --daemon表示后臺(tái)執(zhí)行却音,客戶端開啟rsync不需要--daemon選項(xiàng)
echo "/usr/bin/rsync --daemon" >> /etc/rc.local #開機(jī)啟動(dòng)rsync服務(wù)
firewall-cmd --permanent --add-port=873/tcp #添加防火墻規(guī)則
重啟Rsync,這里可能麻煩點(diǎn):
ps -ef | grep rsync
輸出類似:
root 9995 9977 0 18:03 pts/0 00:00:00 grep --color=auto rsync
殺掉進(jìn)程:
kill -9 9995
設(shè)置Rsync開機(jī)自啟動(dòng):
echo "rsync --daemon" >> /etc/rc.local
chmod -R 755 /etc/rc.local
重啟服務(wù)器:
reboot
接下來同步服務(wù)器安裝好Rsync后寫入密碼文件
yum install -y rsync #安裝Rsync服務(wù)
echo "admin123" > /etc/rsyncd.secrets #客戶端只需要把密碼寫入文件
chmod 600 /etc/rsyncd.secrets
firewall-cmd --permanent --add-port=873/tcp #添加防火墻規(guī)則改抡,允許873端口的數(shù)據(jù)訪問-centos 7寫法
好了以后就測(cè)試文件同步:
rsync -vzrtopg --progress --delete --exclude ".user.ini" --password-file=/etc/rsyncd.secrets rsyncadmin@127.0.0.1::common /www/wwwroot
這里有幾個(gè)參數(shù)需要說明一下,--delete(這個(gè)是刪除和主服務(wù)器不同的文件以及文件夾) --exclude ".user.ini"(exclude參數(shù)是同步時(shí)需要排除的文件或者文件夾PS:文件夾后必須要加“/”系瓢,這里可以是絕對(duì)路徑如:“www/wwwroot/test/index.php”)
沒什么問題的話就可以看到如下:
OK阿纤,說明同步?jīng)]問題,如果不行請(qǐng)重啟一下兩臺(tái)服務(wù)器或者檢查一下上面的參數(shù)有沒有問題夷陋!
接下來可以根據(jù)自己的需求來設(shè)置同步時(shí)間欠拾,我因?yàn)槲易约河玫氖羌傻腃MS程序,沒有太多的文件需要更改骗绕,基本上每10分鐘同步一次即可藐窄!
那么直接在寶塔面板后臺(tái)設(shè)置定時(shí)任務(wù)-Shell命令:
rsync -vzrtopg --progress --delete --exclude ".user.ini" --password-file=/etc/rsyncd.secrets rsyncadmin@127.0.0.1::common /www/wwwroot
設(shè)置好自己需要同步的時(shí)間,搞定》酬土。荆忍。執(zhí)行一下潭兽,查看日志抖拦,完美!
當(dāng)然有些大佬部署的程序需要以秒或者毫秒級(jí)的同步聚霜,那就請(qǐng)移駕到http://www.reibang.com/p/59a3ea7c78b9屈呕,會(huì)再使用inotify工具來時(shí)時(shí)檢測(cè)文件變化微宝。好了,基本上就是這樣虎眨,此文就當(dāng)是我自己的備忘錄蟋软,因?yàn)閼械迷僮霾┛土恕K宰V油摇8赂?/p>