iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Antihost offers Linux VPS plans with full root access, unlimited traffic on a 1 Gbps port and a 14-day free trial.
You can publish a WebDAV directory from Nginx on Ubuntu with the built-in ngx_http_dav_module, but its support is limited to PUT, DELETE, MKCOL, COPY, and MOVE. It does not implement the full set of methods used by many WebDAV clients, including property queries and locking. The reliable setup is therefore: verify the module, create a private storage directory, configure a dedicated HTTPS server block, add authentication and filesystem permissions, then test the exact methods your client needs.
What Nginx WebDAV supports
Nginx’s DAV module is intended for automated file management rather than a complete collaboration server. It processes these methods:
| Method | Typical purpose | Built-in Nginx support |
|---|---|---|
PUT |
Upload or replace a file | Supported |
DELETE |
Remove a file or directory where the request is valid | Supported |
MKCOL |
Create a collection (directory) | Supported |
COPY |
Copy a resource | Supported |
MOVE |
Move or rename a resource | Supported |
PROPFIND, LOCK, UNLOCK |
Properties, locking and lock release used by many clients | Not covered by the built-in module |
If a desktop or mobile client requires PROPFIND, OPTIONS, LOCK, or UNLOCK, use a build that includes a DAV extension module or choose a dedicated WebDAV implementation. Adding the five core directives will not make those unsupported methods work.
Plan the deployment before changing Nginx
- Use a dedicated hostname. A name such as
dav.example.commakes certificate, authentication and access-control rules easier to isolate from a public website. - Keep storage outside the public site tree. A directory such as
/srv/webdavavoids accidentally exposing files through another server block. - Use HTTPS before sending credentials. Basic Authentication is only appropriate when the connection is protected by TLS.
- Allow only the network and methods you need. You can restrict write methods with
limit_exceptand firewall rules. - Confirm client requirements. A client that performs locking or property discovery will need more than the built-in Nginx module.
Verify that the installed Nginx has DAV support
The DAV module is not compiled into every Nginx build. Check the running binary before writing a configuration that depends on it.
#1 Best Overall
- Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
- With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
- Wide Application:Upgraded attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
- Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
- Warranty & Support: Our Electric air duster comes with 5 years warranty and 24/7 customer service. During this period, if you have any questions,pls kindly feel free to contact us.
nginx -V 2>&1 | tr ' ' 'n' | grep http_dav_module
The output should include an option containing http_dav_module. You can also inspect the complete build command with:
nginx -V 2>&1
If the option is absent, install an Ubuntu or official Nginx package that supplies the module, rebuild Nginx with the DAV module enabled, or use a separate DAV implementation. Do not continue with a DAV location and assume it is active: an absent module makes the related directives invalid or leaves the server unable to provide the requested functionality.
Free tools Windows power users keep installed
One-click scans. No signup required.
Install Nginx using Ubuntu packages or the official Nginx repository, then confirm the executable and configuration locations. Ubuntu installations normally use /etc/nginx/ for configuration and /var/log/nginx/ for logs.
sudo apt update
sudo apt install nginx
nginx -v
sudo nginx -t
Create storage and temporary-upload directories
WebDAV writes first pass through Nginx’s request-body temporary directory. Both that directory and the final storage path must be writable by the Nginx worker account. On a standard Ubuntu package the worker is commonly www-data; verify the account in your Nginx configuration if you changed it.
sudo mkdir -p /srv/webdav/dav
sudo mkdir -p /var/lib/nginx/body
sudo chown -R www-data:www-data /srv/webdav
sudo chown www-data:www-data /var/lib/nginx/body
sudo chmod 750 /srv/webdav
sudo chmod 750 /srv/webdav/dav
sudo chmod 750 /var/lib/nginx/body
The example deliberately gives the service account ownership. If another administrator or application must write the files, use a dedicated Unix group and grant only the required group permissions instead of making the directory world-writable. Existing files retain their normal Unix permissions; dav_access controls permissions on resources that the DAV module creates.
Create a dedicated Nginx site
Save a site file such as /etc/nginx/sites-available/webdav. The example uses /dav/ as the WebDAV URI and maps it below /srv/webdav/dav because Nginx’s root directive appends the request URI to the filesystem root.
Rank #2
- Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
- Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
- Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
- Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
- Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
sudo nano /etc/nginx/sites-available/webdav
Start with an HTTP server so certificate issuance can reach the hostname:
server {
listen 80;
server_name dav.example.com;
location / {
return 301 https://$host$request_uri;
}
}
Enable the file in Ubuntu’s normal server-block layout:
sudo ln -s /etc/nginx/sites-available/webdav /etc/nginx/sites-enabled/webdav
sudo nginx -t
sudo systemctl reload nginx
Before reloading, make sure DNS for dav.example.com points to this server. If another enabled site already claims the same hostname, remove that conflict or adjust the server names.
Add authentication and the WebDAV directives
Nginx supports HTTP Basic Authentication. Create a password file readable by Nginx but not by ordinary users. The htpasswd utility is commonly supplied by Ubuntu’s apache2-utils package.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →sudo apt install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd alice
sudo chown root:www-data /etc/nginx/.htpasswd
sudo chmod 640 /etc/nginx/.htpasswd
Add the TLS server and WebDAV location after you have certificate paths available:
server {
listen 443 ssl;
server_name dav.example.com;
ssl_certificate /etc/letsencrypt/live/dav.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/dav.example.com/privkey.pem;
auth_basic Restricted_WebDAV;
auth_basic_user_file /etc/nginx/.htpasswd;
location /dav/ {
root /srv/webdav;
client_body_temp_path /var/lib/nginx/body;
dav_methods PUT DELETE MKCOL COPY MOVE;
create_full_put_path on;
dav_access user:rw group:rw all:r;
}
}
The important directives have distinct jobs:
root /srv/webdav;selects the filesystem root. With this URI,/dav/report.pdfmaps to/srv/webdav/dav/report.pdf.client_body_temp_pathidentifies where request bodies are staged before being written. The worker must be able to create and modify files there.dav_methods PUT DELETE MKCOL COPY MOVE;enables the core operations explicitly. Omitting a method means the location will not provide that operation.create_full_put_path on;allows intermediate directories to be created for a nestedPUTpath when they do not already exist. Without it, create the directory hierarchy first or the upload can fail.dav_access user:rw group:rw all:r;sets permissions for newly created files and directories. Adapt the values to your Unix ownership model; it does not replace the permissions needed on the parent directories.
Keep the authentication directives at server level when every resource on the hostname is private, or move them inside the /dav/ location if the same server will also host a deliberately public path. Never send the password over the port-80 redirect; clients should connect to the HTTPS URL.
Rank #3
- 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
- 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
- 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
- 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
- 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.
Obtain and install a trusted HTTPS certificate
For a production deployment, use HTTPS and redirect port 80 to port 443. With the Let’s Encrypt HTTP-01 challenge, port 80 must be reachable from the public internet while the certificate is being issued. A firewall, cloud security group or upstream router that blocks port 80 will cause validation to fail.
Certbot’s Nginx plugin can obtain the certificate, add TLS directives to the matching server block and reload Nginx:
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutesudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d dav.example.com
Follow Certbot’s prompts for the email address, terms and redirect choice. If you maintain the TLS block yourself, install the certificate and key paths shown by Certbot, then run sudo nginx -t before every reload. Do not remove the port-80 server until issuance has completed; after issuance, retain the redirect so clients that use the HTTP URL are upgraded to HTTPS.
Restrict write methods and network access
Authentication answers “who is the user?”; network and method restrictions answer “what may that user do from here?” The following optional block allows ordinary reads but limits non-GET requests to a trusted network. Replace the example network with one appropriate to your environment, or omit the block if remote writes are intentionally required.
location /dav/ {
root /srv/webdav;
client_body_temp_path /var/lib/nginx/body;
dav_methods PUT DELETE MKCOL COPY MOVE;
create_full_put_path on;
dav_access user:rw group:rw all:r;
auth_basic Restricted_WebDAV;
auth_basic_user_file /etc/nginx/.htpasswd;
limit_except GET HEAD {
allow 192.0.2.0/24;
deny all;
}
}
The address in this example is documentation-only space. Substitute your office VPN, private network or other controlled source range. A restrictive rule can make a client appear broken even when authentication succeeds, so test from the same network where the client will operate.
Also restrict inbound access at the host or cloud firewall. Exposing a write-enabled DAV endpoint to the whole internet increases the impact of a stolen password and of mistakes in client synchronization.
Rank #4
- 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
- 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
- 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
- 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
- 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
Validate the configuration and reload safely
- Check syntax and referenced files:
sudo nginx -t. This catches missing certificates, unknown DAV directives and malformed server blocks. - Reload without dropping existing connections:
sudo systemctl reload nginx. - Inspect the error log if the reload or a request fails:
sudo tail -f /var/log/nginx/error.log. - Confirm that the intended server block is active with
sudo nginx -T, especially when multiple sites use similar hostnames. - Test from a client that resolves the public hostname, not only from the server’s loopback address.
A successful syntax check proves only that Nginx accepted the configuration. It does not prove that the worker can write to storage, that the certificate is trusted by the client, or that the client’s complete WebDAV method set is implemented.
Test each operation with curl
Use a small test file and a disposable directory before connecting a production client. The commands below use the HTTPS hostname, a WebDAV URI and the account created earlier.
printf 'WebDAV testn' > sample.txt
curl -i -u alice --upload-file sample.txt https://dav.example.com/dav/sample.txt
curl -i -u alice -X MKCOL https://dav.example.com/dav/test-folder/
curl -i -u alice --upload-file sample.txt https://dav.example.com/dav/test-folder/copied.txt
curl -i -u alice -X COPY -H 'Destination: https://dav.example.com/dav/test-folder/copy.txt' https://dav.example.com/dav/sample.txt
curl -i -u alice -X MOVE -H 'Destination: https://dav.example.com/dav/test-folder/moved.txt' https://dav.example.com/dav/test-folder/copy.txt
curl -i -u alice -X DELETE https://dav.example.com/dav/test-folder/moved.txt
curl -i -u alice -X DELETE https://dav.example.com/dav/sample.txt
Inspect the HTTP status and the error log after every command. A successful upload followed by a failed nested upload usually points to the path or directory-creation rule. A request that reaches Nginx but cannot write normally points to Unix ownership, mode bits or the temporary-body directory.
To check whether your client is asking for unsupported features, send a harmless property request to a test resource:
Recommended Free Tools
curl -i -u alice -X PROPFIND https://dav.example.com/dav/
Failure of PROPFIND, LOCK or UNLOCK is expected with the built-in module. It is not fixed by adding another dav_methods value; those methods require a DAV extension module or a different server. Similarly, do not promise full client compatibility solely because PUT works.
Troubleshoot the common failure modes
“unknown directive dav_methods” or no DAV option in nginx -V
The binary lacks ngx_http_dav_module. Install or build a package that includes it, or move the DAV endpoint to an implementation that supports the methods you need. Editing the server block cannot load a module that was not compiled into the binary.
Best Value
- 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
- 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
- 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
- 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
- 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
Uploads return a permission error
Check all path components, not just the final directory. The worker needs search permission on parent directories, write permission on the destination, and write permission on /var/lib/nginx/body. Confirm ownership and modes with namei -l /srv/webdav/dav and review the Nginx error log. If an existing file was created by another account, its mode may prevent replacement even when newly created files work.
Nested PUT requests fail
Ensure create_full_put_path on; is inside the same DAV location as dav_methods. If you do not want Nginx creating directories automatically, create the hierarchy with MKCOL first and upload into it.
The certificate request cannot be validated
Verify that the hostname resolves to this server and that TCP port 80 is reachable from the internet. Check cloud security groups, host firewalls and NAT forwarding. HTTP-01 cannot complete when the challenge request never reaches the HTTP server.
The client reports that the server is not WebDAV-capable
Check the client’s first request in the access and error logs. If it starts with PROPFIND, LOCK, UNLOCK or another method outside the built-in list, use a DAV extension or a dedicated WebDAV server. If it receives an authentication challenge, correct the password file and ensure the client is using the HTTPS URL.
Reads work but writes are denied
Review the optional limit_except block and its allowlist. A network restriction can deliberately permit GET while denying every write method. Also check that the request is reaching the intended server block rather than a different site with stricter rules.
Choose the right implementation
| Requirement | Built-in Nginx DAV | DAV extension or dedicated server |
|---|---|---|
| Core file operations | Lightweight support for PUT, DELETE, MKCOL, COPY and MOVE |
Usually available, depending on the implementation |
| Property queries and locking | Not provided by the built-in module | Use when clients require PROPFIND, LOCK or UNLOCK |
| Authentication and authorization | Nginx authentication, filesystem permissions and optional limit_except |
Varies; evaluate the implementation’s access-control model |
| TLS and certificate automation | Handled by Nginx with a certificate tool such as Certbot | Depends on the front end; Nginx can still terminate TLS |
| Package and module maintenance | Depends on whether the chosen Nginx build contains the DAV module | Requires monitoring the extension or server separately |
| Filesystem behavior | Directly governed by Unix ownership, modes, dav_access and the temporary path |
May use a different storage and permission model |
Use the built-in module when the client needs only the five core operations and you value a small Nginx-based configuration. Select an extension or dedicated implementation when locking, property discovery or broader client compatibility is a requirement rather than an optional feature.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Quick Recap
Production checklist
- The Nginx binary contains
ngx_http_dav_module. - The DAV storage directory is separate from the public website root.
- The worker account can write both the storage and temporary-body paths.
- The location explicitly defines
root,client_body_temp_path,dav_methods,create_full_put_pathwhere needed, anddav_access. - Basic Authentication is protected by HTTPS.
- Port 80 redirects to HTTPS, while port 80 was reachable during HTTP-01 certificate issuance.
- Write methods are limited by network policy when remote writes are not necessary.
- The exact client methods have been tested, including any locking or property methods it requires.
- Nginx syntax was tested and the service reloaded only after the test passed.
- Logs and backups are monitored, and the test files and accounts are removed or restricted before production use.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

