WebDAV 是 Nginx 的一个组件,但在默认编译 Nginx 时,并未包含此组件。如果需要与应用共用一个 Nginx 实例并添加 WebDAV 支持,则需重新编译安装 Nginx。在重新安装前,务必备份原有的 nginx.conf
文件。
1.1 编译安装
- 将 Nginx 源码文件
nginx-1.16.1.tar.gz
上传至/root
目录下。 - 解压 Nginx 源码:bash复制
$ tar zxvf nginx-1.16.1.tar.gz
- 进入解压后的目录:bash复制
$ cd nginx-1.16.1
- 运行配置命令,添加 WebDAV 模块:bash复制
$ ./configure --prefix=/usr/local/nginx --with-http_dav_module --add-module=/soft/nginx-dav-ext-module
请注意,/soft/nginx-dav-ext-module
是nginx-dav-ext-module
模块的路径,需根据实际情况进行替换。 - 编译并安装 Nginx:bash复制
$ make && make install
安装完成后,Nginx 将成功安装在/usr/local/nginx
目录下。
1.2 WebDAV 配置
1.2.1 编辑 nginx.conf
- 打开
nginx.conf
文件:bash复制$ vi /usr/local/nginx/conf/nginx.conf
- 在
server
配置块中添加如下配置信息。以下以本机的 Ambari 为例:nginx复制location /webdav {
root /usr/local/nginx/html;
index index.html index.htm;
autoindex on;
# WebDAV 配置 client_body_temp_path /tmp; dav_methods PUT DELETE MKCOL COPY MOVE; create_full_put_path on; dav_access group:rw all:r;
}root
指令用于指定 WebDAV 服务的根目录。index
指令用于指定默认的索引文件。autoindex on
用于启用目录列表显示。client_body_temp_path
指令用于指定客户端请求体的临时存储路径。dav_methods
指令用于启用指定的 WebDAV 方法。create_full_put_path on
用于允许在上传文件时自动创建完整的目录路径。dav_access
指令用于设置访问权限,这里设置组权限为读写,其他用户权限为只读。
完成以上配置后,保存并关闭 nginx.conf
文件。接下来,可以重启 Nginx 服务以使配置生效:bash复制
$ /usr/local/nginx/sbin/nginx -s reload
配置 Nginx 以支持 WebDAV