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

Do not wait for a bandwidth quota or link to hit zero. Combine monitoring with limits on request rate, concurrent connections and bytes per second, then place edge or load-balancer controls in front of the origin. This lets you slow or reject the traffic consuming capacity while preserving access for legitimate clients.

The right control depends on what is being exhausted: HTTP requests, large downloads, open TCP connections, a provider quota or the physical network link. Provider quotas are a hard boundary; when one is consumed, operations can fail rather than slow down gracefully.

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

Identify what is actually running out

“Bandwidth” can describe several different limits. Diagnose the failing resource before choosing a rule.

  • Request abuse: A client or bot sends too many HTTP requests even though individual responses are small. Use request-rate limits.
  • Large responses: A few downloads consume most of the egress allowance. Shape download speed and restrict parallel connections.
  • Connection pressure: Clients keep many HTTP or TCP sessions open. Use per-key connection limits.
  • Distributed traffic: Many addresses generate traffic, making a single-origin rule easy to evade. Move the decision to an edge WAF or managed rate limiter.
  • Provider quota: The cloud account has consumed an allocated transfer or resource quota. Application throttling must act before this boundary.
  • Link capacity: The server’s network interface or uplink is saturated even though no provider quota has been reached. Shape traffic at the reverse proxy or load balancer.

Record bytes sent and received, request counts, active connections, response sizes, source addresses, authenticated identities and remaining provider quota. A top-client view often reveals whether one account is abusive or many normal users are collectively consuming the allowance.

#1 Best Overall
Protectli Vault FW2B - 2 Port, Firewall Micro Appliance/Mini PC - Intel Dual Core, AES-NI, Barebone
  • 【NEWER MODEL AVAILABLE - Protectli Vault V1210】THE VAULT (FW2B): Secure your network with a compact, fanless & silent firewall. Comes with US-based Support & 30-day money back guarantee!
  • CPU: Intel Celeron J3060 Dual Core at 1.6 GHz (Turbo 2.48 GHz), AES-NI hardware support
  • PORTS: 2x Intel Gigabit Ethernet NIC ports, 4x USB 2.0, 2x USB 3.0, 1x RJ-45 COM, 2x HDMI
  • COMPONENTS: Needs RAM & Storage to work! This is a Barebones unit for maximum customizability (no RAM or mSATA). Not all memory is compatible with the Vault! Please research "Vault Hardware Compatibility" before purchasing. coreboot BIOS optional, must be installed by user.
  • COMPATIBILITY: No OS pre-installed. All hardware tested with pfSense, untangle, OPNsense and other popular open-source software solutions.

Choose the enforcement point

Layer Primary unit Typical key Best use Possible action
HTTP reverse proxy Requests, connections and bytes per second IP, authenticated user or token Protecting an origin and shaping large HTTP responses Delay, reject or slow a response
TCP proxy Connections and upload/download bytes per second IP or service identity Databases, media streams and other non-HTTP services Allow, deny, cap or close connections
Load balancer Ingress and egress byte rates Frontend, backend or tracked client Applying one policy across several origin servers Traffic shaping or rejection
Edge WAF or managed rate limiter Requests over a threshold interval Expression, IP, user or token Distributed abuse that is expensive to process at the origin Deny, challenge or redirect
Cloud provider quota Total allocated resource or transfer quota Project, account or resource Detecting the final provider boundary Provider-level block or failed operation

Use more than one layer when the consequence of exhaustion is serious. For example, an edge rule can discard obvious abuse, NGINX can cap each client’s concurrency and download rate, and an alert can warn before the provider quota is consumed.

Set a budget before writing rules

Choose a maximum operating budget for the period covered by the cap and keep a reserve for control-plane traffic, health checks, administration and legitimate users who are already connected. If B is the remaining byte budget, R is the reserve and T is the time until the allowance resets, a conservative aggregate target is:

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

(B − R) ÷ T

This is a planning rate, not a guarantee. Protocol overhead, retries, replication and traffic that bypasses the intended proxy reduce the usable amount. Divide the target among clients only after deciding whether fairness is per IP, account, token or service. A per-IP policy can combine many people behind one NAT gateway, while a token-based policy can distinguish authenticated customers sharing an address.

Make the alert arrive early enough to deploy a stricter profile or disable an expensive endpoint. Track the trend as well as the current total; a rapidly rising rate can exhaust a quota before a periodic dashboard refresh.

Limit HTTP access with NGINX

NGINX’s HTTP controls cover three separate dimensions: concurrent connections, request rate and download speed. Configure all three when a client can open multiple connections to bypass a per-connection speed cap.

1. Create a per-client connection zone

In the http context, create shared state keyed by the client address:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
limit_conn_zone $binary_remote_addr zone=perip_conn:10m;

Apply a ceiling in the relevant server or location block:

Rank #2
FortiGate-40F Firewall Appliance - 5 Gigabit Ethernet RJ45 Ports, Ideal for Small Businesses (Appliance Only, No Subscription) (FG-40F)
  • Compact and Efficient Design: The FortiGate 40F is designed for small to mid-sized businesses and enterprise branch offices, featuring a compact, fanless desktop form factor that ensures quiet operation and minimizes space usage.
  • Robust Connectivity Options: Equipped with 5 GE RJ45 ports, including 1 WAN port and 4 internal ports, this model provides essential connectivity and flexibility for various network configurations in a small-scale environment.
  • High-Performance Security: Offers up to 1 Gbps IPS throughput and 600 Mbps threat protection throughput, using Fortinet’s purpose-built security processor technology to deliver industry-leading performance and protection for SSL encrypted traffic.
  • Advanced Threat Protection: Integrated with Fortinet’s AI-powered FortiGuard Labs, the FortiGate 40F offers comprehensive cybersecurity, identifying and mitigating both known and unknown threats to maintain robust security across your network.
  • Simplified Management and Deployment: Features a user-friendly management console that provides comprehensive network automation and visibility, coupled with Zero Touch Integration with Fortinet’s Security Fabric for easy deployment.
server { limit_conn perip_conn 4; }

The number is a policy choice. A low value protects bandwidth but can penalize browsers, download managers and mobile networks that legitimately use parallel connections. Apply a separate zone or key for authenticated users when an IP-based bucket is too coarse.

2. Cap request rate

Create a request-rate zone and attach it to the endpoint:

limit_req_zone $binary_remote_addr zone=perip_req:10m rate=1r/s;
location /api/ { limit_req zone=perip_req burst=10; }

The 1r/s value and burst are configuration examples, not universal limits. A burst allows short, legitimate spikes while the average rate remains constrained. For a login or search endpoint, choose a stricter policy than for static assets. Return a deliberate overload response such as HTTP 429 rather than allowing the application to fail unpredictably.

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.

3. Shape download speed

Set a per-connection download ceiling where large responses are served:

location /downloads/ { limit_rate 50k; }

NGINX documents limit_rate 50k as an example in which one connection can download at a maximum of 50 kilobytes per second. It is not a recommended value for every deployment. Because the setting is per connection, four permitted connections could approach four times that rate for one client. Pair it with limit_conn when you need an approximate aggregate per-client ceiling.

4. Separate expensive paths

Put downloads, media manifests, API calls and administrative paths in different locations or servers so a policy change does not throttle the entire site. A static-file location can use a slower rate, while a small API response may need request and concurrency controls instead of byte shaping. Keep internal health checks outside a public client bucket or give them an explicit trusted key.

5. Test and reload safely

  1. Validate the configuration with nginx -t.
  2. Reload only after validation succeeds, using nginx -s reload or the service manager used by your distribution.
  3. Test one client at a time: make repeated API requests, open parallel downloads and observe status codes, response speed and active connections.
  4. Confirm that monitoring records the limited traffic and that the intended location, not a more specific or earlier rule, handled the request.

Control non-HTTP services through a TCP proxy

For database, streaming or custom TCP services, use an NGINX stream configuration. Restrict exposed networks first, then limit connections and transfer rates:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
200pcs Rubber Grommet 7 Sizes Sheet Metal Auto Body Firewall Hole Plug Cap
  • Package Include: 200 Pcs Round Rubber Grommets, 7 Different Size, Fits Drill Hole: 9/32", 3/8", 1/2", 5/8", 3/4", 7/8", 1"
  • Size and Quantity: M7.14 x 80pcs, M9.53 x 40pcs, M12.07 x 30pcs, M15.88 x 20pcs, M19.05 x 10pcs, M22.23 x 10pcs, M25.4 x 10pcs, Material: Black Rubber
  • Product Names: Sheet Metal Hole Plug, Auto Body Hole Plug, Firewall Grommet, Firewall Hole Plug, Plug for Drill Hole, Cable Wire Hole Plug, Electrical Appliance Hole Plug, Plumbing Hole Plug, Round Rubber Grommet, Round Rubber Hole Plug, Closed Rubber Grommet, Rubber Hole Plug, Closed Hole Plug, Drill Hole Plug, Rubber Cable Hole Plug, Firewall Solid Closed Hole Plug, Electrical Wire Gasket, Electrical Firewall Gasket, Wire Electrical Appliance Plumbing Hole Plug, Automotive Hole Plug
  • Application: Used for Sheet Metal, Auto Body, Firewall, Drill hole, Plumbing, Electric Appliance, Automotive and Boat, Metal Panels, Electrical Cabinet, Box Outlet Protection Seal, Wall Hole, Spray, Cylinder, Valve, Garages, General Plumbers, Workshop, Door, Window, Bearing, Pump, Drain Plugs, Chemical Pipe, Water Pipe, etc.
  • Other Names: Closed Grommet, Drill Hole Grommet, Rubber Cable Grommet, Cable Wire Grommet, Firewall Solid Closed Grommet, Electrical Wire Grommet, Electrical FirewallGrommet, Sheet Metal Grommet, Auto Body Hole Grommet, Wire Electrical Appliance Plumbing Grommet, Electrical Appliance Grommet, Automotive Grommet
stream { limit_conn_zone $binary_remote_addr zone=tcp_perip:10m; server { listen 443; allow 198.51.100.0/24; deny all; limit_conn tcp_perip 3; proxy_download_rate 100k; proxy_upload_rate 100k; proxy_pass backend_service; } }

The address range above is an example documentation network; replace it with the networks that should actually connect. The allow/deny rules reduce the attack surface, while limit_conn protects against connection floods. The upload and download values are per-connection examples. Multiple sessions can still multiply the aggregate rate, so keep the connection ceiling aligned with the byte budget.

Do not expose a database merely to make rate limiting convenient. If the service should be reachable only by an application subnet, enforce that network boundary and authenticate at the service as well as at the proxy.

Put distributed abuse controls at the edge

Cloudflare rate-limiting rules

An edge rule can match an expression—such as a path, method, country or authenticated signal—and act when a configured request threshold is reached. This is useful when unwanted requests would otherwise consume origin bandwidth and CPU before NGINX sees them.

Do not present an edge threshold as a billing-grade byte counter or as a promise that exactly a specified number of requests reaches the origin. Cloudflare explicitly cautions that its rate-limiting rules are not designed for exact request delivery. Use them for abuse and overload mitigation, while measuring actual origin bytes separately.

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

Google Cloud Armor rate-based rules

Google Cloud Armor rate-based rules apply an exceed_action, such as deny or redirect, after a threshold interval. They are appropriate when the priority is service availability and filtering traffic before it reaches a protected backend.

Google recommends this feature for abuse mitigation rather than strict quota or licensing enforcement. Keep an independent byte and quota monitor when the financial or contractual limit matters.

Choose a useful key

An IP key is simple but imperfect. Corporate gateways, mobile carriers and household routers can place many legitimate users in one bucket. If the edge can identify an authenticated account or token, use that identity for fairness and retain a separate IP rule for anonymous traffic. For distributed attacks that rotate addresses, combine identity, path and request characteristics instead of relying on one source address.

Rank #4
Glovary Firewall Mini PC J3710 Quad Core, 4 x i225V 2.5GbE LAN Fanless OPNsense Appliance, 8GB RAM 128GB SSD, Micro Router Computer Hardware, AES-NI, HD+DP Dual Display, Console, 2USB3.0, SPK/MIC
  • Quad Core J3710 Processor: F3 firewall hardware with Pentium J3710 Processor, 4 Cores 4 Threads, 2M Cache, up to 2.64 GHz, TDP 6.5 W. Compatible with OPNsense, Linux, ESXi, Proxmox
  • 4 x i225V 2.5GbE LAN: J3710 mini pc with 4 x i225V 2500Mbps LAN, can monitor network data, improve network security, powerful and widely used
  • DDR3 RAM mSATA Slot: J3710 firewall pc with 1 x DDR3L SO-DIMM memory, 1 x mSATA SSD slot, 1 x SATA 3.0 slot(SATA Cable included), 1 x Mini-PCIe Slot
  • HD DP Dual Display: Micro firewall appliance J3710 integrated HD Graphics, HD + DP dual display interfaces improve work efficiency
  • Fanless Mini Size: Firewall appliance J3710 with aluminium alloy body, fanless quiet running without noise. Size only 11 x 10 x 3.5 cm

Shape traffic at the load balancer with HAProxy

Use HAProxy when the policy belongs in front of several backends or when you need one place to shape traffic entering and leaving the service pool. Its traffic-shaping facilities include byte-rate tracking examples for ingress and egress.

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.

Define the budget at the frontend or service class, then track the bytes that pass through the load balancer. Keep origin-level limits as a second line of defense: a load balancer cannot protect an administration path that is reachable directly, and a misrouted backend can bypass the intended policy. Validate that health checks and internal replication traffic are either excluded from the client budget or counted deliberately.

Monitor consumption and make alerts actionable

At minimum, collect these measurements for each service and policy key:

  • Bytes sent and received, separated by endpoint or service.
  • Request rate, rejected requests and response status codes.
  • Active and newly opened connections.
  • Top client IPs, authenticated accounts and tokens by bytes and requests.
  • Current quota consumption, remaining allowance and time until reset.
  • Traffic that reached the origin versus traffic stopped at the edge or proxy.

Alert before exhaustion, with enough lead time to tighten a rule, disable a large download or contact the provider. An alert should name the affected service, current rate, remaining budget, suspected key and the approved emergency action. Record every policy change so a temporary block can be removed when the incident ends.

Understand the provider-quota failure boundary

Do not rely on a cloud quota to throttle users smoothly. Google Compute Engine documentation states that when a resource quota is consumed, the system generally blocks access to the resource and the attempted task fails. Depending on the service, that can mean failed deployments, blocked resource operations or unavailable capacity rather than slower downloads.

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

Application and proxy controls must therefore run before the quota boundary. Keep a reserve, monitor the provider’s usage metric and document what to disable first if the reserve is reached. A quota increase may solve a capacity-planning problem, but it does not replace abuse controls or endpoint-level fairness.

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

Choose a graceful failure action

Action Use it when Client impact
Delay or shape The request is legitimate but the response is large or the link is busy The operation completes more slowly
HTTP 429 A client exceeds a request or concurrency policy The client must reduce activity and retry according to the service’s guidance
HTTP 503 The service is temporarily protecting capacity or draining work The client should retry later; monitoring should distinguish this from an application outage
Redirect A managed edge rule can send traffic to a controlled path or alternate service The client follows a different route if its software supports redirects
Temporary block Traffic is clearly abusive or unauthorized Access stops until the block expires or an operator removes it
Provider hard block A quota has already been consumed The attempted operation fails until capacity or quota is restored

Publish a recovery path for legitimate clients: identify the response they receive, state whether to retry, and provide a support or account channel for an incorrectly classified user. Avoid silently dropping traffic when a clear status code can prevent repeated retries that consume even more bandwidth.

Best Value
GL.iNet GL-MT5000 Brume 3 Wired VPN Security Gateway NO Wi-Fi
  • 【Up to 1100 Mbps VPN Speed 】 Hardware-accelerated WireGuard and OpenVPN-DCO deliver up to 1100 Mbps VPN throughput, over 3× faster than Brume 2 for smooth remote access and file transfers.
  • 【Three 2.5G Ports & Multi-WAN】Tri-port 2.5GbE design with flexible WAN LAN configuration supports multi-gigabit wired setups, dual-ISP Multi-WAN and failover to keep home and SOHO networks online.
  • 【Stealth VPN Obfuscation】VPN obfuscation disguises VPN traffic as regular HTTPS, helping you evade blocking, bypass restrictive networks and maintain stable, private connections.
  • 【DPI protection】Deep Packet Inspection with visual dashboards blocks adult/gambling/malicious sites, while SQM and QoS prioritize gaming, calls, and video when bandwidth is tight
  • 【OpenWrt & USB 3.0 Expansion】OpenWrt with 1GB DDR4 and 8GB eMMC lets you install plugins and build VPN, ad-blocking or NAS, while USB 3.0 Type‑C connects high-speed storage or 4G/5G dongles

A practical rollout sequence

  1. Classify the exhaustion: Compare request volume, response size, connection count, link utilization and provider quota metrics.
  2. Find the expensive traffic: Rank endpoints, clients and identities by bytes and requests; verify whether the source data includes cached or internal traffic.
  3. Set the reserve: Decide how much capacity must remain for administration, health checks and existing users.
  4. Add monitoring first: Create dashboards and alerts for bytes, requests, connections and quota remaining.
  5. Protect HTTP: Add per-client request and connection limits, then apply download shaping to large-response paths.
  6. Protect TCP: Restrict source networks, cap concurrent sessions and apply upload/download rates.
  7. Move filtering outward: Add edge or WAF rules when distributed traffic is costly to process at the origin; use a load balancer when one policy must span multiple backends.
  8. Define failure behavior: Select delay, 429, 503, redirect or temporary block for each class of excess traffic.
  9. Test bypasses: Open parallel connections, change source addresses where appropriate, use authenticated and anonymous requests, and verify that direct-origin access is not available.
  10. Review after deployment: Check false positives, NAT concentration, retry storms and whether the observed aggregate rate matches the budget.

Troubleshoot limits that do not appear to work

The client still consumes too much bandwidth

Check whether the speed setting is per connection. Count active sessions for that key and lower the connection ceiling or move to an aggregate control at the load balancer. Also look for alternate download paths, direct backend addresses and cached objects served outside the intended proxy.

Legitimate users are being throttled together

Inspect the key. A shared office, carrier-grade NAT or household gateway can put many users in one IP bucket. Use authenticated users or service tokens where possible, and reserve a separate policy for anonymous traffic.

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

The edge rule is not protecting the origin exactly

Managed rate limiting is designed for mitigation, not exact accounting. Compare edge decisions with origin logs and enforce the byte budget at the proxy or load balancer that can measure the traffic you actually pay for.

Requests spike after a 429 or 503 response

Clients may retry immediately. Make the response behavior explicit in your API or client documentation, add a retry delay policy and use request-rate limits that account for bursts instead of setting an unrealistically low instantaneous threshold.

The provider reports exhaustion even though the application is quiet

Look for other resources in the same account or project, background replication, backups, failed retries and traffic that bypasses the monitored origin. A provider quota is usually broader than one application’s access log.

A configuration change has no effect

Validate the file, reload the correct NGINX or HAProxy instance, and confirm which virtual server, stream listener or edge rule handled the test request. Check for a more specific location, another load balancer, a CDN cache or a direct DNS record that bypasses the changed policy.

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

Bottom line

Bandwidth protection works best as a layered control system: monitor bytes and quota headroom, limit requests and connections at the proxy, cap per-connection transfer rates, filter distributed abuse at the edge, shape shared traffic at the load balancer and keep the origin private. Treat the provider quota as a last-resort failure boundary, not as a throttle, and give legitimate clients a predictable way to recover when a limit is reached.

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.