2009-07-10 62 views
7

私は2台のサーバーを持っています。 Web上の1つのリバースプロキシと、WebDAVを処理するプライベートリンク上の1つ。リバースプロキシの背後にあるWebDAV

ブースサーバーはapache httpd v2です。

私が持っているプロキシ上:私はDAVサーバーで

 
    ProxyRequests Off 

    <Proxy *> 
     Order deny,allow 
     Allow from all 
    </Proxy> 

    ProxyPass   /repo/ http : //share.local/repo/ 
    ProxyPassReverse /repo/ http : //share.local/repo/ 

 
<Location /repo/> 
    DAV on 
    Order allow,deny 
    allow from all 
</Location> 

リバースプロキシは、httpsを介してアクセスされ、プライベートサーバはhttpを介してアクセスされます。 そしてそこに問題があります!

読み取り専用コマンドは正常に動作します。しかし、私が何かを動かすときは、502 Bad gatewayが得られます。 これは、リバースプロキシが拡張dav要求内のURLを書き換えないためです。

ソースURLはヘッダーの内側にあり、正しくhttp://share.local/file1に変換されます。 先URLは、私は理解していないいくつかのXMLフラグメントの内部にあるとhttps://example.com/file1のまま:(

Apacheは要求を正しく変換できるようにするには、標準的な方法はありますか?あなたの努力のための

感謝。

+0

私はスペースを追加したので、私は1つのURLしか投稿できないと言っていました。私の元の設定ファイルでは、もちろん正しいURLです。 –

答えて

9

うーん。、常に同じ:)

答えを見つけた私は、コメントを追加しました:

 
LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so 

RequestHeader edit Destination ^https http early 

をし、出来た。これに欠点があるかどうかは分かりません。私は見るでしょう。

+0

おそらくデフォルトの設定になっているはずです。 –

2

既に気付いたように、リンク先URLはXMLではなく、[Destination]ヘッダーにする必要があります。たぶん、エラー応答を見ていたかもしれません...

クライアントとサーバーが(RFC4918で定義されているように)WebDAVレベル3を実装すると、この問題は解消され、宛先ヘッダーは相対パスになります。

関連する問題