7

私は2つのサーバーを持っています。Web 上の 1 つのリバース プロキシと、WebDAV を提供するプライベート リンク上の 1 つ。

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

私が持っているプロキシで:

    ProxyRequests オフ

    <プロキシ *>
        注文拒否、許可
        すべてから許可
    </プロキシ>

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

私が持っているdavサーバー上:

<場所/レポ/>
    DAV オン
    注文許可、拒否
    すべてから許可する
</場所>

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

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

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

Apacheがリクエストを正しく変換できるようにする標準的な方法はありますか?

がんばってくれてありがとう。

4

2 に答える 2

10

うーん、答えを見つけました。いつも同じ :)

「プライベートサーバー」構成ファイルに次の行を追加しました。

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

RequestHeader 編集先 ^https http 早期

(例: 設定場所 '/etc/httpd/conf.d/DefaultRequestHeader.conf')

そしてそれはうまくいきました。これに欠点があるかどうかはわかりません。わかります。

于 2009-07-10T17:08:55.090 に答える
2

すでにお気づきのように、リンク先URLはXMLではなく、「Destination」ヘッダーに含める必要があります。たぶんあなたはエラー応答を見ていました...

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

于 2009-07-13T12:59:58.760 に答える