Home Backend Development PHP Tutorial nginx limit the number of requests (ngx_http_limit_req_module) module nginx concat module echo nginx module nginx upsync module

nginx limit the number of requests (ngx_http_limit_req_module) module nginx concat module echo nginx module nginx upsync module

Jul 29, 2016 am 08:55 AM
module nginx

The previous article mainly writes about the function and use of the ngx_http_limit_conn_module module in nginx to limit the number of connections. Next, let’s write about the function and use of the ngx_http_limit_req_module module.

The ngx_http_limit_req_module module can limit the frequency of request processing through defined key values. In particular, it is possible to limit the frequency with which requests from a single IP address are processed. The limiting method is like a funnel, which processes a fixed number of requests per second and postpones excessive requests.

This module provides two configuration parameters, limit_req_zone and limit_req. Limit_req_zone can only be configured in the http{} section, while limit_req can be configured in the http{}, server{}, and location{} sections.


1. limit_req_zone

Syntax: limit_req_zone $variable z rate=rate;
Configuration section: http

This command sets a shared memory restriction domain to save the state parameters of the key value. In particular, the current quantity exceeding the request is saved. The value of the key is the specified variable (the control is not evaluated). Such as:

nginx rtmp module,nginx upload module,lua nginx module,fastdfs nginx module,nginx sticky module,nginx add module,nginx concat module,echo nginx module,nginx upsync modul

Note:
Using the $binary_remote_addr variable, the size of each status record can be reduced to 64 bytes, so that 1M of memory can save approximately 16,000 64-byte records

If the storage space of the restricted domain is exhausted, for For all subsequent requests, the server will return a 503 (Service Temporarily Unavailable) error

The speed can be set to the number of requests processed per second and the number of requests processed per minute. The value must be an integer, so if you need to process less than 1 per second request, 2 seconds to process a request, you can use 30r/m


2. limit_req

syntax: limit_req z burst=number [nodelay];
Configuration section: http, server, location

Set the corresponding shared memory limit domain and the maximum number of requests allowed to be processed. If the frequency of requests exceeds the value configured in the limit domain, request processing will be delayed so that all requests are processed at the defined frequency. Requests that exceed the frequency limit will be delayed until the number of delayed requests exceeds the defined threshold. At this time, the request will be terminated and a 503 (Service Temporarily Unavailable) error will be returned. The default value of this threshold is 0. For example:

Limit the frequency to no more than one request per second, and allow no more than 100 requests exceeding the frequency limit; if you do not want the exceeded requests to be delayed, you can use the nodelay parameter.

nginx rtmp module,nginx upload module,lua nginx module,fastdfs nginx module,nginx sticky module,nginx add module,nginx concat module,echo nginx module,nginx upsync modul


3. Configuration usage example

limit_req_zone $binary_remote_addr z rate=1r/s;
Mainly used to define variables, space names, and shared memory size.

limit_req z burst=100 nodelay;
It is mainly used to use the previously defined space to define the request frequency limit. Using nodelay means that you do not want the exceeded requests to be delayed.

nginx rtmp module,nginx upload module,lua nginx module,fastdfs nginx module,nginx sticky module,nginx add module,nginx concat module,echo nginx module,nginx upsync modul

Some IPs may not be restricted and a whitelist needs to be used.

Module address: https://yunpan.cn/cqSKP6BrJ2AeT Access password 4f50

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

The above introduces the nginx limit request number (ngx_http_limit_req_module) module, including module and nginx content. I hope it will be helpful to friends who are interested in PHP tutorials.

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

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

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 nginx version How to check nginx version Apr 14, 2025 am 11:57 AM

The methods that can query the Nginx version are: use the nginx -v command; view the version directive in the nginx.conf file; open the Nginx error page and view the page title.

How to configure cloud server domain name in nginx How to configure cloud server domain name in nginx Apr 14, 2025 pm 12:18 PM

How to configure an Nginx domain name on a cloud server: Create an A record pointing to the public IP address of the cloud server. Add virtual host blocks in the Nginx configuration file, specifying the listening port, domain name, and website root directory. Restart Nginx to apply the changes. Access the domain name test configuration. Other notes: Install the SSL certificate to enable HTTPS, ensure that the firewall allows port 80 traffic, and wait for DNS resolution to take effect.

How to start nginx server How to start nginx server Apr 14, 2025 pm 12:27 PM

Starting an Nginx server requires different steps according to different operating systems: Linux/Unix system: Install the Nginx package (for example, using apt-get or yum). Use systemctl to start an Nginx service (for example, sudo systemctl start nginx). Windows system: Download and install Windows binary files. Start Nginx using the nginx.exe executable (for example, nginx.exe -c conf\nginx.conf). No matter which operating system you use, you can access the server IP

How to check the name of the docker container How to check the name of the docker container Apr 15, 2025 pm 12:21 PM

You can query the Docker container name by following the steps: List all containers (docker ps). Filter the container list (using the grep command). Gets the container name (located in the "NAMES" column).

How to check whether nginx is started How to check whether nginx is started Apr 14, 2025 pm 01:03 PM

How to confirm whether Nginx is started: 1. Use the command line: systemctl status nginx (Linux/Unix), netstat -ano | findstr 80 (Windows); 2. Check whether port 80 is open; 3. Check the Nginx startup message in the system log; 4. Use third-party tools, such as Nagios, Zabbix, and Icinga.

How to configure nginx in Windows How to configure nginx in Windows Apr 14, 2025 pm 12:57 PM

How to configure Nginx in Windows? Install Nginx and create a virtual host configuration. Modify the main configuration file and include the virtual host configuration. Start or reload Nginx. Test the configuration and view the website. Selectively enable SSL and configure SSL certificates. Selectively set the firewall to allow port 80 and 443 traffic.

How to deploy jar program in nginx How to deploy jar program in nginx Apr 14, 2025 pm 12:09 PM

To deploy a JAR program on Nginx, seven steps need to be followed: 1) Install JRE, 2) Install Nginx, 3) Configure Nginx, 4) Deploy JAR, 5) Grant execution permissions, 6) Restart Nginx, 7) Verify deployment.

How to run nginx apache How to run nginx apache Apr 14, 2025 pm 12:33 PM

To get Nginx to run Apache, you need to: 1. Install Nginx and Apache; 2. Configure the Nginx agent; 3. Start Nginx and Apache; 4. Test the configuration to ensure that you can see Apache content after accessing the domain name. In addition, you need to pay attention to other matters such as port number matching, virtual host configuration, and SSL/TLS settings.

See all articles