nginx配置webdav

目录

使用webdav的必要性

  webdav和FTP干的事有点像,都是上传文件,但是webdav是使用的HTTP协议,这在复杂的网络环境中很有优势(比如防火墙只开通了80端口),而且可以使用https来加密我
们的文件,用FTP一般是没加密的,对我来说最重要的原因是在ios系统上的很多软件都是支持webdav的.这样使用webdav就可以在我的所有设备上同步共享文件了,这实在太爽了.

使nginx支持webdav

  nginx默认可以开启(--with-http_dav_module)对webdav部分协议的支持,但是不完全,必须要用第三方的模块(nginx-dav-ext-module).

./configure --user=www \
--group=www \
--prefix=/path/of/nginx \
--with-http_dav_module \
--add-module=/path/of/nginx-dav-ext-module \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-pcre


配置

server {
  listen 80;
  server_name web.dav.com;
  error_page 404 /404;
  error_page 503 /503;

  root /path/of/dav;
location / {
  dav_methods  PUT DELETE MKCOL COPY MOVE;
  dav_ext_methods PROPFIND OPTIONS;
  create_full_put_path   on;
  dav_access             group:rw  all:r
  auth_basic "Authorized Users Only";
  auth_basic_user_file /path/of/passwordfile;
 }
}
#注意如果文件比较大可能需要设置一下client_max_body_size

ubuntu的webdav客户端

sudo apt-get install davfs2
mkdir /media/dav
sudo mount -t davfs http://web.dav.com/ /media/dav

或者使用cadaver
sudo apt-get install cadaver
cadaver http://web.dav.com

目录