http { limit_conn_zone $binary_remote_addr zone=addr:10m; //$binary_remote_addr 表示通过remote_addr这个标识来做限制 //zone=addr:10m 表示生成一个大小为10M,名字为addr的内存区域 ... server { location /download/ { limit_conn addr 1; #限制并发数 limit_rate 50k; #限制带宽 } }
$binary_remote_addr: Indicates restriction through the remote_addr flag. The purpose of "binary_" is to abbreviate the memory usage and limit the same client IP address.
zone=addr:10m: Indicates generating a file with a size of 10M, a memory area named addr, used to store access frequency information
#http status code
400-499 is used to indicate Client error. 500-599 is used to support server errors. Limit the access frequency of the same clientrate=1r/s: indicates that the same ID is allowed The client's access frequency is limited to 1 time per second, that is, only one request is processed per second. It can also be 30r/m, which is limited to one access every 2 seconds, that is, only one request is processed every 2 seconds.
##burst
burst=5: The meaning of burst burst. This configuration means setting a buffer with a size of 5.When a large number of requests (burst) come, requests that exceed the access frequency limit can be processed first Put it in this buffer and wait, but there are only 5 positions in this waiting area. Requests that exceed the limit will directly report a 503 error and return.
#nodelay
If set, it will provide the ability to process (burst rate) requests instantly. When the request exceeds (burst rate), it will directly return 503, and there will never be a situation where the request needs to wait. (The unit of rate here is: r/s).limit_rate limit bandwidth
##
~ means to perform a regular match, which is case-sensitive
~* means to perform a regular match, which is not case-sensitivelocation expression priority^~ means to match ordinary characters. Prefix matching is preferred. If the match is successful, no other locations will be matched.
= performs exact matching of common characters. That is an exact match.
@ "@" defines a named location, used when internally directed, such as error_page, try_files
/: universal matching, if there is no other match, any request will be matched;
location = > location full path> location ^~ path> location ~ ,~* regular sequence> location partial starting path (prefix matching ) > /
Log polling
##For security reasons, the log directory does not need to give you nginx user access rights. Set # chmod -R 700 /usr/local/nginx/logs
prohibit no Necessary directory log#Restrictions on site directories and files
Set charset utf-8;
The above is the detailed content of nginx current limiting and configuration management methods. For more information, please follow other related articles on the PHP Chinese website!