Home Operation and Maintenance Nginx How to limit nginx flow

How to limit nginx flow

Jun 10, 2019 pm 03:21 PM
nginx

When marketing e-commerce platforms, we often encounter large traffic problems. In addition to traffic diversion processing, we may also need to perform user black and white lists and reputation analysis, and then perform corresponding traffic interception and traffic restriction based on the user's IP reputation weight.

How to limit nginx flow

Nginx's own request limiting module ngx_http_limit_req_module and traffic limiting module ngx_stream_limit_conn_module are based on the token bucket algorithm, which can easily control the token rate and customize the current limit. , to achieve basic current limiting control.

How to limit nginx flow

The algorithm idea is:

Tokens are generated at a fixed rate and cached in the token bucket;

When the token bucket is full, the excess tokens are discarded;

The request must consume an equal proportion of tokens to be processed;

When there are not enough tokens, the request is processed cache.

Leaky Bucket Algorithm:

How to limit nginx flow

The algorithm idea is:

Water (Request ) is poured into the bucket from above and flows out from the bottom of the bucket (processed);

The water that is too late to flow out is stored in the bucket (buffer) and flows out at a fixed rate; when the bucket is full, the water overflows (discarded).

The core of this algorithm is: caching requests, processing them at a uniform speed, and discarding redundant requests directly.

Compared with the leaky bucket algorithm, the difference between the token bucket algorithm is that it not only has a "bucket", but also a queue. This bucket is used to store tokens, and the queue is used to store requests.

In terms of function, the most obvious difference between the leaky bucket and token bucket algorithms is whether to allow burst traffic (burst) processing. The leaky bucket algorithm can forcibly limit the real-time transmission (processing) rate of data. Burst traffic does not undergo additional processing; the token bucket algorithm can limit the average transmission rate of data while allowing a certain degree of burst transmission.

The Nginx speed limit module based on the request rate uses a leaky bucket algorithm, which can forcibly guarantee that the real-time processing speed of requests will not exceed the set threshold.

The official version of Nginx has two modules for limiting IP connections and concurrency:

limit_req_zone is used to limit the number of requests per unit time, that is, rate limit, adopted Leaky bucket algorithm "leaky bucket".

limit_req_conn is used to limit the number of connections at the same time, that is, concurrency limit.

For more Nginx related technical articles, please visit the Nginx usage tutorial column to learn!

The above is the detailed content of How to limit nginx flow. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to check the running status of nginx How to check the running status of nginx Apr 14, 2025 am 11:48 AM

The methods to view the running status of Nginx are: use the ps command to view the process status; view the Nginx configuration file /etc/nginx/nginx.conf; use the Nginx status module to enable the status endpoint; use monitoring tools such as Prometheus, Zabbix, or Nagios.

How to view nginx version information How to view nginx version information Apr 14, 2025 am 08:24 AM

View Nginx version information through the following method: Direct command method: "nginx -v" output version information. View in the configuration file: Find the "version" section at the top of the configuration file. System information command: Linux: Use the "rpm -qa | grep nginx" or "dpkg -l | grep nginx" command. FreeBSD: Use the "pkg info nginx" command. Windows: Open Nginx service properties, version information is located in the General tab.

How to configure load balancing in nginx How to configure load balancing in nginx Apr 14, 2025 am 08:33 AM

How to configure Nginx for load balancing? Defines the upstream server pool and specifies the server IP and port. Define virtual hosts, listen for connections and forward them to the upstream pool. Specify the location, match the request and forward it to the upstream pool.

How to redirect in nginx How to redirect in nginx Apr 14, 2025 am 08:42 AM

Methods for redirecting through Nginx are 301 permanent redirects (update links or mobile pages) and 302 temporary redirects (handling errors or temporary changes). Configuring redirection involves using location directives in server blocks, advanced features include regular expression matching, proxy redirection, and condition-based redirection. Common uses of redirects include updating URLs, handling errors, redirecting HTTP to HTTPS, and guiding users to a specific country or language version.

How to enable stream in nginx How to enable stream in nginx Apr 14, 2025 am 09:45 AM

How to enable Nginx's Stream module? Enabling the Stream module requires six steps: Installing the Stream module configuration Nginx Create Stream Server Block Configuration Stream Server Options Restart Nginx Verification Enable

How to solve nginx403 How to solve nginx403 Apr 14, 2025 am 10:33 AM

How to fix Nginx 403 Forbidden error? Check file or directory permissions; 2. Check .htaccess file; 3. Check Nginx configuration file; 4. Restart Nginx. Other possible causes include firewall rules, SELinux settings, or application issues.

How to build a website in nginx How to build a website in nginx Apr 14, 2025 am 11:21 AM

Using Nginx to build a website is carried out in five steps: 1. Install Nginx; 2. Configure Nginx, mainly configuring the listening port, website root directory, index file and error page; 3. Create website files; 4. Test Nginx; 5. Advanced configuration can be carried out as needed, such as SSL encryption, reverse proxy, load balancing and caching.

How to set nginx access address to server ip How to set nginx access address to server ip Apr 14, 2025 am 11:36 AM

To set the access address to server IP in Nginx, configure the server block, set the listening address (such as listen 192.168.1.10:80) Set the server name (such as server_name example.com www.example.com), or leave it blank to access the server IP and reload Nginx to apply the changes

See all articles