軟體 dada on 十月 11, 2007

Access Subversion with Apache Proxy Module

由於網路架構的問題,我們有時會設計讓不同網段必須透過 Proxy 才能存取 Subversion Repository,但是為此架設一個獨立的 Proxy Server (如 squid)實在太麻煩,利用 Apache 內建的 mod_proxy / mod_proxy_http 功能有時候會讓工作簡化很多

ProxyRequests Off
<Proxy *>
    Order deny,allow
    Deny from all
</Proxy>
ProxyVia On

為了安全性考量,如同上面的設定,我們先把所有 Proxy 的存取關掉,然後依據需要開放特定目錄來允許 Proxy

例如我們想把對 /svn 的存取導向到 http://svn.domain/svn,那麼設定內容就會變成:

<VirtualHost *:80>
    ProxyPass /svn http://svn.domain/svn
    ProxyPassReverse /svn http://svn.domain/svn
    <Location /svn>
        <Limit OPTIONS PROPFIND GET REPORT MKACTIVITY PROPPATCH PUT CHECKOUT
 MKCOL MOVE COPY DELETE LOCK UNLOCK MERGE>
          Order Deny,Allow
          Allow from all
          Satisfy Any
        </Limit>
    </Location>
</VirtualHost>

裡面最重要的就是 <Limit OPTIONS PROPFIND... > 這一行(這一整行不能分成兩行,Copy-Paste時請注意),因為 Subversion 會用到除了 HTTP GET / POST 以外的一些特殊 Method,因此必須設定讓 HTTP 的 Proxy Module 允許這些 Methods 通過,才能讓 Subversion 正常運作

另外建議修改 Allow from all 這一行,改成僅允許特定 IP 來連結,也可強化系統的安全性

參考資料: Subversion behind an Apache Reverse Proxy (不過裡面的設定方式跟我上面提供的有一點點小小差異)

如果你還是想用 squid 來解決問題,那您可以參考 Subversion 網站上面的 FAQ


(本文共被觀看 530 次)

One Response to “Access Subversion with Apache Proxy Module”

  1. on 25 十一月 2009 at 10:50 上午 1.網站製作學習誌 » [Web] 連結分享 said …

    [...] Access Subversion with Apache Proxy Module [...]

Trackback This Post | Subscribe to the comments through RSS Feed

Leave a Reply