Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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

For a proxied POST endpoint, put proxy_request_buffering off; in the location that handles the request, then validate and reload NGINX:

location /upload/ {
    proxy_request_buffering off;
    proxy_pass http://backend;
}

With request buffering disabled, NGINX forwards the body to the upstream as it receives it instead of waiting for the client to finish sending the entire body. The setting defaults to on and is available from NGINX 1.7.11 onward.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What NGINX is buffering

When request buffering is enabled, NGINX reads the complete client request body before it starts sending that body to the proxied server. For a large upload or a slow client, the application may therefore see no body data until the upload has finished at the NGINX edge.

proxy_request_buffering off; changes that behavior for proxied requests. NGINX sends each portion of the request body upstream as it is received. This is useful for streaming uploads, long-running POST requests, and applications that need to begin processing before the client has transmitted the final byte.

#1 Best Overall
Sale
Compressed Air Duster,130000RPM Super Power Cordless Air Duster,Rechargeable Brushless Blower,3 Gear Adjustable Blower with LED Light,Dust Remover for Computer/House/Outdoor/Car
  • 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.

The directive affects the request flowing from the client to the upstream server. It does not control the response flowing back from the upstream to the client, and it does not apply to a request that NGINX serves locally rather than proxies.

Configure request streaming in the correct location

Scope the directive to the upload endpoint

The safest configuration is usually a dedicated location block. It limits the behavior to requests that actually need streaming and leaves normal endpoints with their existing buffering behavior.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
http {
    upstream backend {
        server 127.0.0.1:8080;
    }

    server {
        listen 80;
        server_name example.test;

        location /upload/ {
            proxy_request_buffering off;
            proxy_pass http://backend;
        }
    }
}

After changing the file, test the generated configuration and reload the running process:

sudo nginx -t
sudo nginx -s reload

On systems managed by systemd, sudo systemctl reload nginx performs the reload instead. A reload applies the new configuration to newly accepted requests without needlessly terminating existing workers.

Use broader scopes only deliberately

NGINX permits proxy_request_buffering in the http, server, or location context. An http-level value affects every matching proxied request unless a more specific block changes it. A server-level value affects all locations in that virtual server. A location-level value is normally easiest to audit because the endpoint’s behavior is visible next to its proxy_pass.

Do not assume that placing the directive in a parent block is enough. A nested, more-specific location can override it, and a request may match a different location than the one you edited. Always inspect the effective configuration and confirm the selected location when diagnosing unexpected buffering.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
EVEO® Screen Cleaner Spray Kit (Streak-Free) TV Screen Cleaner for Smart TV, Lcd, LEd, Oled | Computer Screen Cleaner Spray and Wipe Microfiber Cloth - TV, Monitor, Laptop, iPad, Car - 6.7oz 1 Pack
  • 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

Do not confuse request and response buffering

NGINX has two similarly named settings that operate in opposite directions. Changing the wrong one is a common reason an upload still appears to wait.

Directive Data direction What it controls Default Typical use
proxy_request_buffering Client to upstream Whether NGINX reads the complete request body before forwarding it on Set off for an endpoint that must stream a POST body upstream
proxy_buffering Upstream to client Whether NGINX buffers the response received from the proxied server on Set off when the client must receive response data incrementally
client_body_buffer_size Client request body inside NGINX The memory buffer used while NGINX reads the body, including when data may spill to a temporary file 8K or 16K, platform-dependent Tune memory and temporary-file behavior; it is not the request-streaming switch

proxy_buffering off; can be useful when the upstream itself produces a streaming response, such as progress events or generated output. It does not disable buffering of the incoming POST body. If the problem is that the upstream does not receive upload bytes until the client is done, the relevant setting is proxy_request_buffering off;.

Protocol and NGINX version caveats

Chunked HTTP/1.1 uploads

When a client uses HTTP/1.1 chunked transfer encoding, NGINX can still buffer the original request body even when proxy_request_buffering off; is set. NGINX’s documented behavior requires HTTP/1.1 or HTTP/2 to be enabled for proxying when you need the chunked body passed through without first being fully collected.

Check the protocol used on both sides of the proxy. A client connection using HTTP/1.1 does not by itself prove that the upstream connection is also using HTTP/1.1. Review the proxy configuration and capture request metadata in the application if the upstream sees a delayed body.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

HTTP/2 request bodies on older NGINX releases

Before NGINX 1.9.14, HTTP/2 request-body buffering could not be disabled. An older installation can therefore ignore the behavior you expect even when the directive is present. Check the running binary’s version before troubleshooting application timing:

nginx -v

Upgrade an installation older than 1.9.14 before relying on unbuffered HTTP/2 request bodies. The proxy_request_buffering directive itself was introduced in NGINX 1.7.11, so an even older release may not recognize it at all.

Rank #3
BladeHawks RGB Gaming Mouse Pad Extra Large Extended 31.5x12 Inch-Black
  • 【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.

Upstream failover changes after streaming starts

Once NGINX has started sending a request body to an upstream, it cannot hand that same request to a different upstream. Disabling request buffering therefore changes failover expectations: a backend that fails after receiving part of a body cannot be transparently replaced for the remainder of that request. Design retries at the application or upload-protocol layer when partial writes are possible.

client_body_buffer_size is a separate memory setting

client_body_buffer_size specifies the memory buffer NGINX uses while reading a client request body. The documented default is 8K or 16K, depending on platform. If a body exceeds the available buffer, some or all of it may be written to a temporary file.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Increasing this value does not make NGINX forward the body sooner. It changes how much memory can be used before temporary-file storage is involved. A larger value can reduce disk activity for certain request sizes, but it also increases the memory available to concurrent requests. Choose it only after considering concurrency, worker limits, and the capacity of the temporary-file filesystem.

Conversely, setting it very low does not guarantee streaming to the upstream; it can simply cause more request data to spill to disk while the proxy still waits for the complete body if request buffering remains enabled.

Apply and verify the change step by step

  1. Identify the exact endpoint. Record the URL path, HTTP method, virtual host, and upstream that handle the POST. Streaming should be enabled only where the application needs it.
  2. Find the matching location. Review prefix, exact-match, and regular-expression locations. A more-specific block can take precedence over a broad block that appears to contain the directive.
  3. Add the request directive. Place proxy_request_buffering off; in the selected location, alongside the relevant proxy_pass.
  4. Check the running version. Run nginx -v. Confirm that the release supports the directive and, for HTTP/2 streaming, is at least 1.9.14.
  5. Validate the complete configuration. Run sudo nginx -t. Fix any syntax, include-file, or permission error before reloading.
  6. Inspect the effective configuration. Run sudo nginx -T and search the output for the server and location handling the endpoint. This exposes included files and the configuration NGINX actually parses.
  7. Reload NGINX. Use sudo nginx -s reload or sudo systemctl reload nginx. Editing a file without reloading leaves the old worker configuration active.
  8. Test from the client side. Send a body slowly enough that a fully buffered proxy would noticeably delay the upstream. A test that uploads the entire body immediately cannot distinguish streaming from immediate buffering.
  9. Measure at the upstream. Log the time of the first received bytes and subsequent chunks in the application or upstream server. Client-side timing alone cannot prove when NGINX began forwarding the body.

Build a test that reveals buffering

Use a request body large or slow enough to create an observable interval. Send the first portion, pause, send another portion, and finish later. The upstream should log receipt of the first portion during the pause when request buffering is disabled.

Keep the test endpoint isolated from production data processing. Include a request identifier in the application log so that the client request, NGINX access entry, and upstream receipt events can be correlated. Record the protocol, request size, and timestamps for each run.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
Sale
Vaydeer Wrist Rest for Keyboard and Mouse, Computer Ergonomic Wrist Support Pad, Soft Memory Foam Arm Cushion for Desk, Palm Hand Office Laptop Typing
  • 【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.

If the upstream logs nothing until the final portion arrives, check the effective location and protocol before changing buffer sizes. Also verify that the application server is not doing its own request-body buffering; NGINX can forward bytes promptly while an upstream framework still waits for a complete body.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshoot when the upstream still waits

The directive is in the wrong block

Run nginx -T and locate the complete virtual-server configuration. Confirm that the request’s host and path select the block containing proxy_request_buffering off;. Pay particular attention to regex locations and nested locations that override inherited values.

NGINX was not reloaded

A successful file edit does not change running workers. Check the reload command’s result and, if necessary, inspect the process start or reload logs. Run nginx -t before retrying so a syntax error does not silently prevent the new configuration from loading.

The release or protocol prevents streaming

Check nginx -v and determine whether the request uses HTTP/1.1 chunked encoding or HTTP/2. Releases before 1.9.14 cannot disable HTTP/2 request-body buffering. Chunked requests also require appropriate HTTP/1.1 or HTTP/2 proxying behavior; otherwise NGINX may retain the original body.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The wrong directive was changed

If you changed only proxy_buffering, you changed response handling. Restore or retain that setting according to the response requirements, but add proxy_request_buffering off; for the incoming upload path.

Temporary files or memory are the bottleneck

Review the filesystem used for NGINX client-body temporary files and the available memory when large bodies are accepted. client_body_buffer_size governs the in-memory portion and the point at which data can spill to disk; it does not replace request streaming configuration.

Best Value
Sale
Under Desk Cable Management Tray No Drill, Metal Mesh Cable Management Under Desk with Clamp Mount, 2 Hole Cable Tray with Wire Management and Cord Organizer for Home Office Standing Desk
  • 【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.

The application buffers independently

Inspect the upstream framework, server, and upload middleware. Some applications intentionally parse or store the complete body before invoking business logic. In that case, NGINX may already be streaming correctly, but the application will not expose that fact until its own buffering layer is adjusted.

Decide whether to disable buffering globally

Endpoint-level configuration is generally easier to operate than disabling buffering for every proxied request. Request buffering can protect an upstream from slow clients by allowing NGINX to read and manage the body at the edge before occupying an application connection. Turning it off broadly can increase the time that upstream connections remain tied to slow uploads.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use a broader server or http scope only when all affected applications are designed for streaming and their connection, timeout, memory, and concurrency limits have been reviewed. Otherwise, keep the setting in the smallest location that satisfies the upload workflow.

Operational and reliability trade-offs

  • Earlier processing: The upstream can begin consuming a body before the client finishes, reducing time to first byte at the application.
  • Longer-lived upstream connections: A slow client can keep an upstream connection occupied for the duration of the upload.
  • Reduced transparent failover: After body transmission starts, NGINX cannot move the request to another upstream.
  • Resource planning: Review upstream concurrency, request timeouts, client limits, memory, and temporary-file capacity for the new traffic pattern.
  • Security controls: Keep request-size, authentication, rate, and timeout policies appropriate for the endpoint; streaming does not remove those controls.

Common configuration patterns

Only uploads stream

server {
    listen 80;

    location /upload/ {
        proxy_request_buffering off;
        proxy_pass http://upload_backend;
    }

    location /api/ {
        proxy_pass http://api_backend;
    }
}

Here, the upload path streams request bodies while the general API retains its existing request behavior.

Uploads stream and responses are incremental

location /stream-upload/ {
    proxy_request_buffering off;
    proxy_buffering off;
    proxy_pass http://backend;
}

This combination addresses both directions: the request body is sent upstream as received, and the upstream response is passed toward the client without normal response buffering. Use it only when the response really needs incremental delivery; disabling response buffering is not required merely to stream an incoming POST.

Reference checklist

  • Use proxy_request_buffering off; for a proxied POST body that must reach the upstream while it is still arriving.
  • Put the directive in the matching location whenever possible.
  • Do not substitute proxy_buffering off;; that directive controls upstream responses.
  • Check NGINX version 1.7.11 or newer for the request directive and 1.9.14 or newer when disabling HTTP/2 request-body buffering.
  • Investigate HTTP/1.1 chunked transfer behavior when NGINX still appears to collect the body.
  • Treat client_body_buffer_size as a memory and temporary-file setting, not a streaming control.
  • Validate with nginx -t, inspect with nginx -T, reload, and measure first-byte arrival at the upstream.
  • Account for the loss of transparent upstream failover once body transmission has begun.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.