设置:
客户端 <-> nginx(:443 SSL)<-> apache(:80 WebDAV)
客户端将文件上传到 webdav 服务器。上传成功,但文件大小似乎为 0 字节。通过 SSH 登录到 apache 服务器时,确认文件大小为 0 字节。如果我直接连接到 apache 服务器并上传文件,一切都会按预期运行。文件上传成功,文件大小和 md5sum 正确。
我尝试了 nginx 和 apache 服务器上的各种设置。但都没有成功。我在 Google 上搜索了许多类似的问题,但都无法解决。有人说你需要关闭 nginx 服务器上的 webdav,因为 apache 负责所有 webdav 请求。有人能证实这个说法吗?
Nginx 配置:
dav_access user:rw group:rw all:r;
client_max_body_size 50M;
create_full_put_path on;
location / {
dav_methods PUT DELETE MKCOL COPY MOVE;
dav_ext_methods PROPFIND OPTIONS;
set $destination $http_destination;
if ($destination ~* ^https(.+)$) {
set $destination http$1;
}
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host drive.domain.com;
proxy_set_header Destination $destination;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
add_header Front-End-Https on;
proxy_pass http://webdav;
}