一、場景:
1 web 服務器集羣均爲Windows下的IIS,原站點更新採用ftp方式,每次更新程序文件,樣式文件、圖片文件均需要相關人員通過ftp客戶端將文件傳輸到站點集羣下的所有服務器上。
該方式缺點:
1 所有服務器需要在公網IP上綁定FTP端口。
2 每次傳輸需要傳輸所有服務器。如有站點集羣新增服務器的話,需要所有上傳人員配置客戶端SFTP新增個服務器。
3 無版本控制。
4 windows服務器下ftp很難精準控制美工只能傳輸該站點的圖片文件,前端工程師只能傳輸該站點的css,js;開發工程師只能傳輸其他程序文件。
二、解決思路:
站點開發人員,前端開發工程師、美工等通過SVN將文件同步到SVN服務器上。由SVN來控制版本。SVN管理員通過 USVN來管理SVN服務器的項目,賬號,組以及權限。
SVN通過鉤子程序觸發SVN客戶端提交後的運行事務。
Windows服務器上安裝CWRSYNC服務端。將站點文件夾添加到rsync同步模塊中。
在svn服務器上通過鉤子程序,當SVN用戶提交後觸發自動checkout一個副本到SVN服務器指定目錄中,並通過sync將該目錄同步到Windows下的RWSYNC模塊中。
三實驗環境
SVN 客戶端:
Windows 7 +open***(連接遠端SVN所在服務器的內網中。)+tortoisesvn (SVN windows客戶端)
SVN 服務端:
Centos 6.4 X86_64
由於站點較多,佔用空間較大,除系統外,掛載了500G磁盤到/usr/local/data/下。
計劃將apache的docmount放在/usr/local/data/www 下
計劃將usvn安裝在/usr/local/data/www/usvn下
計劃將SVN庫放在/usr/local/data/www/SVN/svn下比如www.skybug.com項目庫的路徑爲
/usr/local/data/www/svn/svn/www_skybug_com/下
計劃將站點checkout到svn服務器的/usr/local/data/站點名/下,比如站點www.skybug.com的checkout目錄在/usr/local/data/www.skybug.com下
CWRSYNC服務端:
Windows Server2003 R2
站點目錄下
e:/webroot/www.skybug.com/下
CWRSYNC服務段版本爲:cwRsyncServer_4.0.5
cwrsync計劃安裝路徑爲c:\ICW