posts - 262,  comments - 221,  trackbacks - 0
          【1.業(yè)務(wù)需求】
          由于客戶和我們的網(wǎng)絡(luò)分布在香港和廣州,雙方無法直接訪問對(duì)方的SVN Repository,所以需要有一個(gè)公共的第三方平臺(tái)來讓雙方可以直接訪問。

          【2.基本思路】
          我們要考慮的問題主要有四方面:

          ①選用何種服務(wù)器作為Web服務(wù)器
          Apache服務(wù)器作為業(yè)界廣泛使用的Web服務(wù)器,因其高效的性能,靈活的擴(kuò)展性,完善的完全機(jī)制而成為我們選擇Web服務(wù)器的首選。

          ②采用何種協(xié)議來進(jìn)行通信
          在確定了Web服務(wù)器后,我們要考慮的是以什么協(xié)議傳輸SVN請(qǐng)求和響應(yīng)。HTTP協(xié)議雖然簡(jiǎn)單但由于使用明文通信,在此之上的通信容易被黑客攔截,所以我們采用加密了HTTP協(xié)議:HTTPS。

          ③是否需要保留其它原有的訪問方式
          SVN默認(rèn)支持幾種通信協(xié)議:SVN協(xié)議,HTTP,HTTPS協(xié)議,如果我們采用了基于Web的訪問方式,那么我們還要開放原始的SVN協(xié)議訪問方式嗎?還是切斷其它的訪問方式呢?這兩種做法都有好有壞:

           A. 開放原始SVN協(xié)議訪問:增加了訪問方式,但也帶來了風(fēng)險(xiǎn)。因?yàn)镾VN是沒有提供訪問日志
           B. 切斷其它訪問方式:增加了安全性。但速度比較慢(因?yàn)槎嗔薃pache的鑒權(quán)和日志記錄)

          個(gè)人的做法是:對(duì)外部客戶只開放基于HTTPS的訪問方式,對(duì)內(nèi)同時(shí)提供兩種方式

          ④是否需要開通端口映射
          一般企業(yè)內(nèi)部都有局域網(wǎng),對(duì)外使用一個(gè)公網(wǎng)IP地址上網(wǎng),我們的SVN服務(wù)器搭建在內(nèi)網(wǎng),如果要外部用戶能夠訪問到我們內(nèi)網(wǎng)的機(jī)器,必須做一個(gè)端口映射,當(dāng)訪問公網(wǎng)IP地址的某個(gè)端口時(shí)映射到內(nèi)網(wǎng)服務(wù)器的某個(gè)端口就可以了。

          【3.基本工具】
          這里我介紹的一個(gè)集成了Apache 2.2和SVN 1.5的軟件:CollabNet SVN。網(wǎng)址見:http://www.open.collab.net/products/subversion/。該軟件有For Windows, For Linux版本的,我選擇的是For Windows的版本。

          安裝該軟件相當(dāng)簡(jiǎn)單,和我們安裝其它軟件沒有大的區(qū)別,在安裝時(shí)會(huì)提示你配置SVN的監(jiān)聽端口,SVN Repository的父目錄(注意是父目錄,不是單一Repository的路徑)。安裝后記得要重啟才能啟動(dòng)Apache服務(wù)。

          此外這個(gè)軟件本身集成了所有SSL配置的必須文件,不需要再到網(wǎng)上下載了,很方便

          【4.示例操作】
          配置Apache和SSL的過程比較繁瑣,這里就不在一一列舉,下面給出網(wǎng)上一篇非常詳細(xì)的教程:

          windows安裝基于Apache的SVN服務(wù)器(包括SSL配置)

          這篇教程包含了Apache的配置,SVN的配置,SSL的配置,讀者可以一步一步按照上面的步驟來配置。這里著重補(bǔ)充一點(diǎn)教程中沒有提到的一點(diǎn):

          要使用SSL必須在Apache的httpd.conf文件中加載ssl.conf文件,但是這篇教程中沒有提到(可能是因?yàn)锳pache的版本不同),一開始我按照教程中的步驟配置后,Apache服務(wù)器可以正常啟動(dòng),但是一旦用https://服務(wù)器名或IP/svn/版本庫(kù)名訪問時(shí),卻直接返回主機(jī)無法連接的錯(cuò)誤,后來詢問專業(yè)人士才知道,原來在httpd.conf中有一個(gè)加載ssl.conf的選項(xiàng),默認(rèn)是注釋的,必須開通這個(gè)選項(xiàng)。去掉注釋后重啟Apache服務(wù)器,再次測(cè)試成功!

          切記:如果你使用的是CollabNetSVN,那么在你的\conf\httpd.conf文件中搜索下面這兩行

          #Secure(SSL/TLS) connections
          #Include conf/extra/httpd-ssl.conf

          一定要把Include前面的注釋去掉才能正常使用SSL,否則會(huì)連訪問日志都沒有內(nèi)容。

          當(dāng)配置成功后我們就可以通過web瀏覽器來瀏覽SVN了,用戶只需要在Web瀏覽器上查找自己要導(dǎo)出的內(nèi)容,將URL拷貝后使用本地客戶端(如TortoiseSVN)check out即可。

          附件1:httpd.conf和httpd-ssl.conf

          附件2:SSL和SVN相關(guān)模塊 

          -------------------------------------------------------------
          生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
          posted on 2009-01-07 22:37 Paul Lin 閱讀(3490) 評(píng)論(3)  編輯  收藏 所屬分類: 項(xiàng)目管理


          FeedBack:
          # re: 【版本控制之路】使用Apache和SSL搭建安全的SVN訪問
          2009-01-08 19:30 | zhouzhao21@gmail.com
          版本控制之路 系列寫的很好!  回復(fù)  更多評(píng)論
            
          # re: 【版本控制之路】使用Apache和SSL搭建安全的SVN訪問[未登錄]
          2009-01-08 23:59 | Paul Lin
          @zhouzhao21@gmail.com

          謝謝鼓勵(lì)!  回復(fù)  更多評(píng)論
            
          # re: 【版本控制之路】使用Apache和SSL搭建安全的SVN訪問
          2012-11-21 11:09 | zencart
          還不錯(cuò)。。  回復(fù)  更多評(píng)論
            
          <2009年1月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(21)

          隨筆分類

          隨筆檔案

          BlogJava熱點(diǎn)博客

          好友博客

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 叶城县| 吉安县| 台东县| 长治县| 太仆寺旗| 屏边| 兴国县| 黑水县| 东兴市| 米泉市| 乌海市| 上犹县| 阳新县| 平舆县| 得荣县| 六盘水市| 遂宁市| 鲁甸县| 汝阳县| 邳州市| 乌鲁木齐市| 永泰县| 安泽县| 天峨县| 勃利县| 黄平县| 固镇县| 陕西省| 华容县| 通道| 高青县| 理塘县| 东城区| 宜兴市| 洪湖市| 郸城县| 荃湾区| 泊头市| 天台县| 旌德县| 台州市|