Вот установка. У меня есть один сервер, на котором запущен apache / php hosting ownCloud. Среди прочего, я использую для синхронизации контактов CardDAV. Чтобы все работало с моим доменом, у меня есть сервер nginx, работающий во внешнем интерфейсе как обратный прокси для сервера ownCloud. Моя конфигурация nginx выглядит следующим образом:
server {
listen 80;
server_name cloud.mydomain.com;
location / {
proxy_set_header X-Forwarded-Host cloud.mydomain.com;
proxy_set_header X-Forwarded-Proto http;
proxy_set_header X-Forwarded-For $remote_addr;
client_max_body_size 0;
proxy_redirect off;
proxy_pass http://server;
}
}
Проблема в том, что когда мой телефон PROPFIND
на сервере nginx добавляет в тело содержимого дополнительные символы, которые сбивают телефон. В частности, он добавляет d611\r\n
в передней части тела и добавляет 0\r\n\r\n
до конца содержания. (Я получил это от wirehark.) Он также повторно разбивает результат. Как заставить nginx отправлять исходный контент как есть?
Дополнительные символы, которые вы видите, - это формат кодирования фрагментированной передачи. Число - это длина фрагмента, а \r\n
х разделители. Похоже, что телефон не поддерживает кодирование передачи по частям (хотя, если он заявляет, что поддерживает HTTP 1.1, он должен). Вы можете отключить кодирование передачи по частям с помощью chunked_transfer_encoding
директива.
chunked_transfer_encoding off;