SoFunction
Updated on 2025-04-06

A complete guide to Nginx configuring and enabling WebDAV services

To enable WebDAV service on Nginx, you need to configure Nginx to support WebDAV requests. Here are the detailed steps:

1. Make sure that the WebDAV module is installed on Nginx

Nginx's WebDAV function ishttp_dav_moduleModule provided. By default, this module is included in standard Nginx compilation, but in some cases Nginx may need to be recompiled to include this module.

Check if Nginx containshttp_dav_moduleModule:

nginx -V 2>&1 | grep -o with-http_dav_module

If the output containswith-http_dav_module, the module is enabled. Otherwise, you need to recompile Nginx and add this module.

2. Configure Nginx to support WebDAV

Edit your Nginx configuration file (usually located in/etc/nginx/​ or/etc/nginx/sites-available/default), add or modify the following configuration:

server {
    listen 80;
    server_name your_domain.com;

    location /webdav {
        root /path/to/webdav/storage;
        autoindex on;
        dav_methods PUT DELETE MKCOL COPY MOVE;
        dav_ext_methods PROPFIND PROPPATCH MKACTIVITY CHECKOUT;
        dav_access user:rw group:rw all:r;
        create_full_path on;

        # Authentication configuration (optional)        auth_basic "WebDAV Authentication";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

Configuration instructions:

  • root /path/to/webdav/storage;​: Specify the WebDAV storage directory.
  • dav_methodsanddav_ext_methods​: Enable the WebDAV method.
  • dav_access​: Set access permissions.
  • create_full_path​: Allows the creation of full paths.
  • auth_basicandauth_basic_user_file​: Enable basic authentication (optional).

3. Create a storage directory and set permissions

Create a WebDAV storage directory and set appropriate permissions:

sudo mkdir -p /path/to/webdav/storage
sudo chown -R www-data:www-data /path/to/webdav/storage
sudo chmod -R 755 /path/to/webdav/storage

4. Configure basic authentication (optional)

If authentication is enabled, generate a password file:

sudo htpasswd -c /etc/nginx/.htpasswd username

Notice:Willusername​ Replace with the actual username and set the password according to the prompts.

5. Test Nginx configuration and restart the service

Test whether the Nginx configuration is correct:

sudo nginx -t

If configured correctly, restart Nginx to apply the changes:

sudo systemctl restart nginx

or

sudo service nginx restart

6. Test WebDAV Services

You can usecadaverTools to test WebDAV services:

sudo apt-get install cadaver
cadaver http://your_domain.com/webdav

After entering the authentication information, you should be able to upload and download files, etc.

7. Firewall settings

Ensure that the firewall allows HTTP (port 80) or HTTPS (port 443) traffic.

sudo ufw allow 80/tcp

or

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

8. Completed

Now, you have successfully enabled the WebDAV service on Nginx. You can access the service and manage files through the WebDAV client.

This is the article about this complete guide on configuring and enabling WebDAV services on Nginx. This is all about more related content on configuring and enabling WebDAV services in Nginx. Please search for my previous articles or continue browsing the related articles below. I hope everyone will support me in the future!