WebDAV за обратным прокси - PullRequest
7 голосов
/ 10 июля 2009

У меня 2 сервера. Один обратный прокси-сервер в Интернете и один по частной ссылке, обслуживающей WebDAV.

Серверы Booth имеют apache httpd v2.

На прокси у меня есть:

    ProxyRequests Off

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

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

На сервере dav у меня есть:

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

Обратный прокси-сервер доступен через https, а частный сервер - через http. И здесь кроется проблема!

Команды только для чтения работают нормально. Но когда я хочу что-то переместить, я получаю 502 Bad gateway. Причина этого заключается в том, что обратный прокси-сервер не переписывает URL-адрес внутри расширенного запроса dav.

Исходный URL находится внутри заголовка и правильно преобразуется в http://share.local/file1. Целевой URL находится внутри некоторого фрагмента XML, который я не понимаю, и остается https://example.com/file1: (

Существует ли стандартный способ, позволяющий apache правильно преобразовать запрос?

Спасибо за ваши усилия.

Ответы [ 2 ]

9 голосов
/ 10 июля 2009

Хм, нашел ответ. Всегда одно и то же:)

Я добавил:

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

RequestHeader edit Destination ^https http early

и это сработало. Я не знаю, есть ли у этого недостатки. Я посмотрю.

2 голосов
/ 13 июля 2009

Целевой URL должен быть не в XML, а в заголовке «Destination», как вы уже заметили. Может быть, вы смотрели на ответ об ошибке ...

В общем, эта проблема исчезнет, ​​если клиенты и серверы реализуют уровень 3 WebDAV (как определено в RFC4918), что позволяет заголовку Destination быть просто относительным путем.

...