5. Restricción de acceso al módulo básico de Nginx-Nginx

1 Restricciones de acceso a Nginx

Esta situación se encuentra a menudo, como tráfico anormal del servidor, carga excesiva, etc. Para el acceso malicioso al tráfico, causará pérdida de ancho de banda, presión del servidor e impacto comercial. el número es limitado.

El módulo ngx_http_limit_conn_module puede limitar el número de conexiones para cada valor de clave de acuerdo con una clave determinada, al igual que el número de conexiones de una fuente de IP

limit_conn_module límite de frecuencia de conexión

limit_req_module límite de frecuencia de solicitud

Conexión y solicitud HTTP

HTTP se basa en TCP. Para completar la solicitud HTTP, debe establecer un protocolo de enlace de tres vías de TCP (llamado conexión TCP) y, a continuación, la solicitud HTTP se basa en la conexión.

La solicitud HTTP se basa en una conexión TCP y una solicitud TCP genera al menos una solicitud HTTP.

variable:

La longitud de la variable $ binary_remote_addr es fija 4 bytes

La longitud de la variable $ remote_addr es de 7 a 15 bytes

IP dirección IP 32 bits = 4 bytes

1.1 Sintaxis de restricción de conexión de Nginx

Sintaxis: limit_conn_zone key zone = nombre: tamaño;

Defecto:-

Contexto: http

Sintaxis: número de zona limit_conn ;

Defecto:-

Contexto: http, servidor, ubicación

1.2 Cómo usar el código

Práctica de límite de conexión de Nginx

http {
//http段配置连接显示,同一时刻只允许一个客户端IP连接
limit_conn_zone $binary_remote_addr zone=conn_zone:10m;
......
		server	{
......
					location	/ {
.....
						limit_conn conn_zone 1;	 //同一时刻只允许一个客户端ip连接
		}
}

Combate de límite de solicitud de Nginx

http	{
//http段配置请求限制,rate限制速率,限制一秒钟最多一个ip请求
limit_req_zone $binary_remote_addr zone=req_game:10m  rate=1r/s;	
.....
	server {	
	......
			location  / 	{
			//1r/s只接受一个请求,,其余请求决绝并返回错误代码给客户端
					#limit_req zone=req_game;		
			//请求超过1r/s,剩下的将被延迟处理,请求数超过burst定义的数量,多余的请求返回503
					limit_req zone=req_game burst=3 nodelay;
			}
	}
}

1.3 Prueba de estrés

Utilice herramientas ab para las pruebas de estrés

yum install -y httpd-tools

[root @ nginx_web1 ~] # ab -n 50 -c 20 http://127.0.0.1/index.html
Inserte la descripción de la imagen aquí

4.4 El límite de conexión de Nginx no es válido como límite de solicitud

Como dijimos antes, múltiples solicitudes pueden establecer una conexión tcp nuevamente, por lo que la precisión de nuestra solicitud es, por supuesto, más efectiva que restringir un enlace, porque solo se permite ingresar una solicitud de conexión al mismo tiempo, pero múltiples al mismo tiempo La solicitud se puede ingresar a través de una conexión. Por eso solicitamos que la restricción sea una mejor solución.

Supongo que te gusta

Origin blog.csdn.net/weixin_43357497/article/details/113764058
Recomendado
Clasificación