2

内部Apacheサーバーにプロキシする必要があるパブリックApacheサーバーがあります(SVNアクセス用)。私が欲しいのは:

User  ---[HTTPS]--->  Web Server  ---[HTTP]--->  SVN Server

私はSSL処理にあまり詳しくないので、このアプローチについていくつか意見を述べたいと思います。これは大丈夫なモデルですか。どこでもSSLを使用する必要があります。

私のアプローチはほとんどの部分で機能しますが、リダイレクトをHTTPSに書き換えると失敗します。ユーザーがに行く場合

    https://acme.web.mcx/svn (no trailing '/')

それらはSVNサーバーによってにリダイレクトされます

    http://acme.web.mcx/svn/ (almost there!) 

Webサーバー(プロキシサーバー)の構成は次のとおりです。

<VirtualHost *:443>
    ServerAdmin me@admin.com
    ServerAlias *.web.mcx www.web.mcx web.mcx

    DocumentRoot /server/web/app/webroot
    ErrorLog logs/web-error_log
    CustomLog logs/web-access_log common

    RewriteEngine On

    RewriteCond %{HTTP_HOST} !^www\.web\.mcx$ [NC]
    RewriteCond %{HTTP_HOST} ^(www\.)?([^.]+)\.web\.mcx$ [NC]
    RewriteRule ^/svn(.*) http://db.mcx/svn$1 [P]
    ProxyPassReverse /svn http://db.mcx/svn
    ProxyPreserveHost on

    SSLEngine on
    SSLCertificateFile      /etc/httpd/ssl/server.crt
    SSLCertificateKeyFile   /etc/httpd/ssl/server.key
    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown

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

<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>

4

1 に答える 1

1

私は自分の質問に答え続けます:)

これが私の「壊れるまで機能する」解決策です:私はVirtualHost設定を変更して、常に/ svn *のhttp://リクエストをhttpsにリダイレクトします。クライアントは時々2回リダイレクトされます(末尾のスラッシュを使用しない場合)が、それは私にとっては問題ありません。1つリダイレクト:SVNサーバーはスラッシュを使用してクライアントを適切なパスにリダイレクトします(ただし、httpsは忘れます)。2つリダイレクト:Webサーバーはクライアントをhttpsにリダイレクトします。

<VirtualHost *:80>
    ServerAdmin me@admin.com
    ServerAlias *.web.mcx www.web.mcx web.mcx

    DocumentRoot /server/web/app/webroot
    ErrorLog logs/web-error_log
    CustomLog logs/web-access_log common

    RewriteEngine On

    RewriteCond %{HTTP_HOST} !^www\.web\.mcx$ [NC]
    RewriteCond %{HTTP_HOST} ^(www\.)?([^.]+)\.web\.mcx$ [NC]
    RewriteCond %{REQUEST_URI} svn.*
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R,L]

    ProxyRequests Off
</VirtualHost>
于 2010-12-19T06:45:40.100 に答える