【1.業務需求】
由于客戶和我們的網絡分布在香港和廣州,雙方無法直接訪問對方的SVN Repository,所以需要有一個公共的第三方平臺來讓雙方可以直接訪問。
【2.基本思路】
我們要考慮的問題主要有四方面:
①選用何種服務器作為Web服務器
Apache服務器作為業界廣泛使用的Web服務器,因其高效的性能,靈活的擴展性,完善的完全機制而成為我們選擇Web服務器的首選。
②采用何種協議來進行通信
在確定了Web服務器后,我們要考慮的是以什么協議傳輸SVN請求和響應。HTTP協議雖然簡單但由于使用明文通信,在此之上的通信容易被黑客攔截,所以我們采用加密了HTTP協議:HTTPS。
③是否需要保留其它原有的訪問方式
SVN默認支持幾種通信協議:SVN協議,HTTP,HTTPS協議,如果我們采用了基于Web的訪問方式,那么我們還要開放原始的SVN協議訪問方式嗎?還是切斷其它的訪問方式呢?這兩種做法都有好有壞:
A. 開放原始SVN協議訪問:增加了訪問方式,但也帶來了風險。因為SVN是沒有提供訪問日志
B. 切斷其它訪問方式:增加了安全性。但速度比較慢(因為多了Apache的鑒權和日志記錄)
個人的做法是:對外部客戶只開放基于HTTPS的訪問方式,對內同時提供兩種方式
④是否需要開通端口映射
一般企業內部都有局域網,對外使用一個公網IP地址上網,我們的SVN服務器搭建在內網,如果要外部用戶能夠訪問到我們內網的機器,必須做一個端口映射,當訪問公網IP地址的某個端口時映射到內網服務器的某個端口就可以了。
【3.基本工具】
這里我介紹的一個集成了Apache 2.2和SVN 1.5的軟件:CollabNet SVN。網址見:http://www.open.collab.net/products/subversion/。該軟件有For Windows, For Linux版本的,我選擇的是For Windows的版本。
安裝該軟件相當簡單,和我們安裝其它軟件沒有大的區別,在安裝時會提示你配置SVN的監聽端口,SVN Repository的父目錄(注意是父目錄,不是單一Repository的路徑)。安裝后記得要重啟才能啟動Apache服務。
此外這個軟件本身集成了所有SSL配置的必須文件,不需要再到網上下載了,很方便
【4.示例操作】
配置Apache和SSL的過程比較繁瑣,這里就不在一一列舉,下面給出網上一篇非常詳細的教程:
windows安裝基于Apache的SVN服務器(包括SSL配置)
這篇教程包含了Apache的配置,SVN的配置,SSL的配置,讀者可以一步一步按照上面的步驟來配置。這里著重補充一點教程中沒有提到的一點:
要使用SSL必須在Apache的httpd.conf文件中加載ssl.conf文件,但是這篇教程中沒有提到(可能是因為Apache的版本不同),一開始我按照教程中的步驟配置后,Apache服務器可以正常啟動,但是一旦用https://服務器名或IP/svn/版本庫名訪問時,卻直接返回主機無法連接的錯誤,后來詢問專業人士才知道,原來在httpd.conf中有一個加載ssl.conf的選項,默認是注釋的,必須開通這個選項。去掉注釋后重啟Apache服務器,再次測試成功!
切記:如果你使用的是CollabNetSVN,那么在你的\conf\httpd.conf文件中搜索下面這兩行
#Secure(SSL/TLS) connections
#Include conf/extra/httpd-ssl.conf
一定要把Include前面的注釋去掉才能正常使用SSL,否則會連訪問日志都沒有內容。
當配置成功后我們就可以通過web瀏覽器來瀏覽SVN了,用戶只需要在Web瀏覽器上查找自己要導出的內容,將URL拷貝后使用本地客戶端(如TortoiseSVN)check out即可。
附件1:httpd.conf和httpd-ssl.conf
附件2:SSL和SVN相關模塊
-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
posted on 2009-01-07 22:37
Paul Lin 閱讀(3484)
評論(3) 編輯 收藏 所屬分類:
項目管理