nginx 在多状态回复正文中插入额外字符

nginx 在多状态回复正文中插入额外字符

以下是设置。我有一台运行 apache/php 的服务器托管 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内容的末尾。(我从 wireshark 中得到这个信息。)它还会重新分块结果。我如何让 nginx 按原样发送原始内容?

答案1

您看到的附加字符是分块传输编码格式。数字是块的长度,\r\n's 是分隔符。看来手机不支持分块传输编码(尽管如果它声明它支持 HTTP 1.1,它应该支持)。您可以使用chunked_transfer_encoding指示。

chunked_transfer_encoding off;

相关内容