以下是设置。我有一台运行 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;