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.
NGINX can accept a PUT request in two fundamentally different ways: it can write the request body to a file through its WebDAV module, or it can pass the request to an application that owns storage and validation. A 405 response usually means the request reached a location that does not permit PUT, the WebDAV module is unavailable, an access rule rejected the method, or the upstream application declined it. Pick the ownership model first, then configure and test the matching location.
Choose what should handle the PUT body
PUT is an HTTP method; enabling it does not by itself define what the request should do. NGINX must either map the request URI to a file on disk or forward the request to an HTTP application. These designs have different security and data-integrity consequences.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitches| Question | Direct WebDAV handling | Application proxying |
|---|---|---|
| Who owns storage? | NGINX writes directly into a filesystem path. | The upstream application or object-storage layer decides where and how data is stored. |
| Where are validation and authorization performed? | Mostly through NGINX access controls and filesystem permissions; application-specific checks are not available. | In the application, with NGINX providing transport and an outer access-control layer. |
| Filesystem exposure | The NGINX worker needs write permission to the upload tree. | NGINX generally does not need write access to application data. |
| Resource semantics | Best for controlled file drops addressed by a path. | Supports domain rules such as ETags, version conflicts, partial updates, and business validation when the application implements them. |
| Operational risk | A compromised or over-permitted client may overwrite files directly. | The application can enforce per-resource policy, but introduces another failure and logging point. |
Use direct handling only for a deliberately isolated upload area, such as an internal file drop. For a REST endpoint such as /api/items/42, proxy the request and let the application decide whether the update is valid.
Design 1: make NGINX write files directly
Confirm that the WebDAV module exists
The official ngx_http_dav_module processes PUT, DELETE, MKCOL, COPY, and MOVE. It is not built by default. NGINX must have been compiled with --with-http_dav_module. On a server with the NGINX binary installed, inspect the build options:
#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 | grep -- --with-http_dav_module
If the option is absent, install a package or build of NGINX that includes the module before using dav_methods. A configuration that names DAV directives without the module will fail validation rather than silently enabling PUT.
Create a dedicated upload location
Keep direct writes in a location used only for uploads. This example accepts PUT under /uploads/ and maps it below /data/www:
Free tools Windows power users keep installed
One-click scans. No signup required.
location /uploads/ {
root /data/www;
client_body_temp_path /data/client_temp;
dav_methods PUT;
create_full_put_path on;
dav_access user:rw group:rw all:r;
limit_except GET {
allow 192.168.1.0/32;
deny all;
}
}
A request for /uploads/report.pdf is therefore associated with the corresponding path under the configured root. The client_body_temp_path gives NGINX a location for temporary request-body files. Ensure that this directory exists and that the NGINX worker account can use it.
dav_methods PUT enables only PUT from the DAV method set. The official example also shows the broader form dav_methods PUT DELETE MKCOL COPY MOVE; do not enable those additional methods unless the upload service actually needs them. create_full_put_path on creates missing intermediate directories. Its default is off, so without it every parent directory must already exist. dav_access sets permissions for newly created files and directories; in the example, the user and group receive read/write permission and everyone else receives read permission.
Match filesystem ownership and permissions
NGINX still writes as its worker account, not as the client that sent the request. Give that account the minimum write access required for the upload tree and temporary-body directory. Test a real write as the service account or inspect the directory ownership before exposing the endpoint. Avoid pointing a DAV location at the operating system root, a directory containing configuration files, or a path shared with unrelated application data.
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
Restrict who may write
The limit_except block is valid in a location and accepts PUT in its method list. In the example, limit_except GET applies restrictions to every method except GET and HEAD. The allowlist therefore protects PUT as well as other non-GET methods, while ordinary reads remain available according to the surrounding configuration. Add authentication, a trusted network boundary, or both when an IP allowlist is not sufficient:
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
limit_except GET {
allow 192.168.1.0/32;
deny all;
}
Do not treat a method rule as authorization. A client that is allowed to PUT to a path may be able to overwrite any file that the location exposes. Authentication, path design, filesystem permissions, and application-level policy must agree on the set of resources that can be changed.
Validate a direct upload
- Check the configuration syntax with
nginx -t. - Reload NGINX using the service procedure for your system, then verify that the reload succeeds.
- Create a disposable test file and send it to a unique path:
curl -i -X PUT --upload-file ./sample.txt http://example.test/uploads/sample.txt. - Confirm the expected status response and inspect the mapped directory for the new file.
- Repeat the request from an untrusted address or without credentials to verify that the access rule rejects it.
Use a disposable resource during testing. A successful PUT can replace an existing file at the target path, so do not test against production data.
Design 2: proxy PUT to an application
Use a normal reverse-proxy location
For a REST or object API, NGINX should normally forward the request and leave validation, authorization, storage, and conflict handling to the upstream service:
location /api/ {
proxy_pass http://backend;
proxy_set_header Host $host;
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;
}
NGINX can proxy to another HTTP server or to an application built with a framework such as Python or PHP. The proxy_pass directive is valid in a location. With ordinary proxy settings, proxy_pass_request_body and proxy_pass_request_headers both default to on, so the PUT body and request headers are forwarded. A configuration that turns either directive off can leave the upstream with an incomplete request.
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.
Understand URI replacement
The placement of a URI in proxy_pass changes the path that the upstream receives. For example:
location /name/ {
proxy_pass http://backend/remote/;
}
For a request such as /name/item/42, NGINX replaces the normalized /name/ prefix with /remote/, producing an upstream path equivalent to /remote/item/42. By contrast:
location /api/ {
proxy_pass http://backend;
}
When proxy_pass has no URI, NGINX forwards the original or full normalized request URI according to its documented processing rules. Test the exact resource path your API expects; a request that reaches the right server with the wrong URI can look like a method failure even though PUT was forwarded.
Send and verify an API update
- Define the upstream service and ensure it is reachable from the NGINX host.
- Place the proxy location at the path clients will call, checking for more-specific prefix or regular-expression locations that could win the location selection.
- Run
nginx -tand reload NGINX. - Send a controlled request, for example:
curl -i -X PUT -H 'Content-Type: application/json' --data '{"name":"updated"}' http://example.test/api/items/42. - Inspect the application log or request trace to confirm the method, headers, body, and URI that arrived upstream.
The upstream, not NGINX, determines whether the resource exists, whether the caller may modify it, whether a version or ETag matches, and whether the payload is valid. An application can consequently return 405, 409, 412, 415, 422, or another status even when NGINX accepted and forwarded the method.
Recommended Free Tools
Control PUT access without breaking reads
Method controls and identity controls solve different problems. A method rule says which HTTP verbs are subject to a location policy; it does not identify the caller or constrain the resource being changed. Combine the appropriate controls:
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.
- Network allowlists: use
allowanddenyfor a tightly controlled source network. - Authentication: use basic authentication, JWT authentication, or an equivalent access-control module appropriate for the deployment.
- Application authorization: require the upstream to check the caller’s permission for the specific resource and operation.
- Filesystem permissions: for direct DAV, grant the worker account write access only to the dedicated upload tree.
- Request limits: set body-size and timeout policies suitable for the files or payloads your service accepts, then monitor rejected requests.
If only a small set of trusted clients should write, put the write location behind both authentication and a network boundary where practical. Keep public GET handling separate from the write path so that a mistake in a write rule does not expose unrelated files.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Why NGINX returns 405 for PUT
The request selected the wrong location
NGINX chooses a location before applying the directives inside it. A different prefix or regular-expression location may handle the request and reject PUT, even though the configuration you edited contains dav_methods PUT or a proxy. Confirm the exact URI, location precedence, and any included configuration files. Access logs can show which server handled the request; temporarily adding a distinctive response header in the intended location can help prove routing during a controlled test.
Direct DAV is unavailable or incomplete
For file writes, check all of the following:
- The binary includes
--with-http_dav_module. - The location contains
dav_methods PUT. - The target directory exists, or
create_full_put_path onis enabled. - The worker account can write the target and temporary-body directories.
- An access-control block, authentication rule, or network policy is not denying the request.
A missing parent path or a permission failure may produce an error other than 405, but checking them together prevents a false diagnosis in which the method is enabled while the write cannot complete.
Crashes, 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 minutePC 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 & 11The proxy reached the wrong upstream path
For API requests, compare the client URI with the URI produced by the proxy_pass form you chose. Verify the upstream host, port, and route, then confirm that request-body and request-header forwarding have not been disabled. The application may intentionally reject PUT according to its own method policy; NGINX’s ability to forward a method does not override that policy.
An access rule or authentication layer rejected it
Review limit_except, allow/deny, authentication directives, and any external access-control module. Remember that limit_except GET covers PUT because it applies to all methods other than GET and HEAD. Check whether the request came from the address range you allowed and whether credentials were actually sent.
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.
A repeatable troubleshooting procedure
- Identify the design. Decide whether the request should create or replace a file directly or update a domain resource through an API.
- Confirm routing. Check the server name, URI, prefix and regex locations, and included files so the request reaches the intended block.
- Validate syntax and build features. Run
nginx -t; for DAV, inspectnginx -Vfor--with-http_dav_module. - Check policy. Review method restrictions, authentication, IP rules, and the upstream’s own method authorization.
- Check the data path. For DAV, verify directory creation and worker-account permissions. For a proxy, verify upstream reachability and URI mapping.
- Check forwarding. Ensure
proxy_pass_request_bodyandproxy_pass_request_headersremain enabled when the application needs them. - Read both logs. Inspect NGINX access and error logs and the upstream application log while sending a request to a disposable resource.
- Retest safely. Use a unique test path or test record, then remove it after confirming the expected status, body, and side effect.
Which configuration should you deploy?
Direct DAV is the smaller configuration when the requirement is a controlled file drop and path-based replacement is acceptable. It requires careful filesystem isolation because NGINX itself has write access. It is a poor fit when updates need schema validation, per-user authorization, audit decisions, version checks, ETags, conflict responses, or partial-update semantics.
Proxying is generally the better fit for an API. NGINX handles TLS termination, routing, and edge access policy while the application owns the resource model. The trade-off is that you must configure and monitor the upstream, test URI rewriting, and diagnose failures across both layers. In either design, enable only the methods and locations required, protect writes with identity and network controls, and verify behavior with a disposable PUT before allowing production changes.
Frequently Asked Questions
Does adding dav_methods PUT make NGINX an API server?
No. It enables direct WebDAV-style file handling for the location. An API endpoint should normally use proxy_pass so the application can validate and authorize each resource update.
Why does limit_except GET affect PUT?
The block applies to every method except GET and HEAD, so PUT, DELETE, and other non-GET methods are covered by its access rules.
What should I check first when a proxied PUT returns 405?
Confirm that the request selected the intended location, then verify the upstream URI produced by proxy_pass. Finally check the application’s method policy and its logs; the upstream may be the component returning 405.
Quick Recap
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.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →

