Назад | Перейти на главную страницу

Обратный прокси-сервер Apache удаляет заголовки с сервера webdav

Я использовал Давенпорт+Кот через Обратный прокси Apache AJP в течение нескольких лет, и это очень помогло моему учреждению. Я хочу перейти на САМБАДАВ сохранение той же конфигурации для моих пользователей, которые получают доступ Давенпорт сервер через обратный прокси.

В настоящее время я использую в своей конфигурации apache для обратного прокси-сервера Davenport следующие директивы:

    ProxyPass /webfolders ajp://davenport.my.domain:8009/webfolders flushpackets=on
    ProxyPassReverse /webfolders ajp://davenport.my.domain:8009/webfolders

Итак, я попытался сделать то же самое с рабочей конфигурацией на http: // sambadav.my.domain / webfolders. Поскольку я не нашел никакой документации, я пробовал:

    ProxyPass /webfolders http://sambadav.my.domain/webfolders
    ProxyPassReverse /webfolders http://sambadav.my.domain/webfolders

И это работает для просмотра веб-страниц и некоторых клиентов webdav (Sardine / 0.0, Windows), но не работает для некоторых других клиентов webdav (gvfs / 1.20.3 и других), которые правильно работают как с прямым подключением к серверу sambadav, так и с текущим прокси-подключением к сервер davenport.

Анализируя трафик, я вижу, что после авторизации, когда SAMBADAV отвечает на запрос OPTION 200 OK обратному прокси-серверу Apache, он отправляет следующие заголовки:

HTTP/1.1 200 OK
Date: Wed, 21 Sep 2016 09:31:13 GMT
Server: Apache/2.4.10 (Debian)
X-Sabre-Version: 3.0.9
Allow: OPTIONS, GET, HEAD, DELETE, PROPFIND, PUT, PROPPATCH, COPY, MOVE, REPORT, LOCK, UNLOCK
DAV: 1, 3, extended-mkcol, 2
MS-Author-Via: DAV
Accept-Ranges: bytes
Content-Length: 0
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8

В то время как обратный прокси-сервер Apache отправляет клиенту разные заголовки:

HTTP/1.1 200 OK
Date: Wed, 21 Sep 2016 09:31:13 GMT
Vary: Accept-Encoding
Content-Encoding: gzip
Cache-Control: max-age=0, no-cache
Content-Length: 20
Keep-Alive: timeout=15, max=99
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8

И тогда клиент предполагает, что «сервер не поддерживает WebDAV».

Как я могу сделать так, чтобы обратный прокси-сервер Apache не фильтровал эти заголовки?

Я также пробовал включить следующие расположение директива безуспешно.

    <Location /webfolders/>
      <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>

Это клиенты webdav, которые я пробовал с обратным прокси-сервером, некоторые из них не работают с SAMBADAV (и обратным прокси-сервером Apache), но работают с Davenport (и обратным прокси-сервером Apache AJP).

| Operating System | Client                                           | Works? |
--------------------------------------------------------------------------------
|     Linux        | gvfs/1.20.3                                      | No     |
|     Linux        | davfs2/1.4.7 neon/0.30.0                         | No     |
|    MacOS X       | WebDAVFS/3.0.0 (03008000) Darwin/15.6.0 (x86_64) | No     |
|    MacOS X       | WebDAVLib/1.3                                    |  idem  |
|   Windows 10     | Microsoft-WebDAV-MiniRedir/10.0.10586            | Yes    |
|    Android       | Sardine/0.0                                      | Yes    |

Пишу вопрос заметил шапку Content-Encoding: gzip.

Это была проблема: у меня pagespeed_module включен. После отключения прокси работает. Итак, я изменил расположение и теперь все работает !!!

    ProxyPass /WEBFOLDERS http://sambadav.iib.uam.es/webfolders

    <Location /webfolders/>
      ProxyPassReverse /webfolders/
      <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>
#     <IfModule pagespeed_module>
         ModPagespeed off
#     </IfModule>

    </Location>