Nginx加固的几种方式(控制超时时间&限制客户端下载速度&并发连接数)

 更新时间:2024年03月27日 15:00:23   作者:运维魔法师  
本文主要介绍了Nginx加固的几种方式,包括控制超时时间,限制客户端下载速度,并发连接数这几种方式,具有一定的参考价值,感兴趣的可以了解一下

1.1 Nginx 控制超时时间配置

在 Nginx 服务器中,超时时间是一个重要的配置选项,它决定了服务器在处理请求时等待客户端响应的最大时间。

通过适当配置超时时间,可以提高服务器的性能和稳定性。本文将介绍如何在 Nginx 中配置不同类型的超时时间。

编辑nginx.conf,是否存在如下内容:

keepalive_timeout 5 5;    #第一个参数指定客户端连接保持活动的超时时间,第二个参数是可选的,它指定了消息头保持活动的有效时间
client_body_timeout 10;   #设置客户端请求主体读取超时时间
client_header_timeout 10; #设置客户端请求头读取超时时间
send_timeout 10;          #指定响应客户端的超时时间

存在以上内容则合规,否则不合规。

加固步骤:

1、编辑nginx.conf,配置如下内容(如果存在则修改,不存在则新增):

keepalive_timeout 5 5;    #第一个参数指定客户端连接保持活动的超时时间,第二个参数是可选的,它指定了消息头保持活动的有效时间
client_body_timeout 10;   #设置客户端请求主体读取超时时间
client_header_timeout 10; #设置客户端请求头读取超时时间
send_timeout 10;          #指定响应客户端的超时时间

2、重新加载或者重启nginx服务

/usr/local/nginx/sbin/nginx -s reload  ##加载配置

/usr/local/nginx/sbin/nginx -s stop   ##停止
/usr/local/nginx/sbin/nginx           ##启动

3、验证配置

##使用命令

cat /usr/local/nginx/conf/nginx.conf |sed "/\s*#/d"|sed "/^\s*$/d"|egrep -i "client_body_timeout|client_header_timeout|keepalive_timeout|send_timeout"

输出配置:

在这里插入图片描述

说明:

client_header_timeout变量可以在http,server中使用。
client_body_timeout、keepalive_timeout、sendtimeout变量可以在http,server,location中使用。

需要根据应用场景的需要选择合适的参数值.

1.2 Nginx 限制客户端下载速度&并发连接数

在高并发的网络环境下,限制客户端下载的并发连接数是一种常见的服务器优化策略。

通过限制每个客户端可以同时建立的连接数量,可以有效控制服务器的负载,提高系统的稳定性和性能。本文将介绍如何在 Nginx 中配置限制客户端下载的并发连接数。

1、编辑文件nginx.conf,查看是否存在如下配置:

limit_zone one $binary_remote_addr 10m;
limit_conn one 10;

判定依据:

1).限制了每个ip能发起的并发连接数
2).设置了存储session状态的容器

以上两个条件同时满足则合规,否则不合规。

加固步骤:

配置示例:

在 Nginx 中,可以通过配置 limit_conn_module 模块来限制客户端的并发连接数。该模块可以根据客户端 IP 地址或其他标识符来限制并发连接数。

http
{
	limit_req_zone $binary_remote_addr zone=req_limit_zone:10m rate=1r/s;
    limit_conn_zone $binary_remote_addr zone=conn_zone:10m;

	…… 
server 
{ 
	listen 80 
	server_name down.nsfocus.com; 
	index index.html index.htm index.php; 
	root /usr/local/nsfocus; 
	#Zone limit; 
	
	location / { 
	   limit_req zone=req_limit_zone burst=5 nodelay;
       limit_conn conn_zone 10;
       limit_rate 20k;   #限制每个连接的限制速度为20K,IP的下载速度为连接数*限制速度 
	}
}
	……… 
} 

配置指令的含义如下:

limit_req_zone $binary_remote_addr zone=req_limit_zone:10m rate=1r/s;

limit_req_zone: 这是 Nginx 的指令,用于定义一个请求速率限制区域。
$binary_remote_addr: 这是一个 Nginx 内置变量,表示客户端的二进制形式的远程地址。
zone=req_limit_zone:10m: 这里定义了一个名为 req_limit_zone 的请求速率限制区域,大小为 10MB。
rate=1r/s: 这表示在 req_limit_zone 区域内,每秒允许的请求速率为 1 个请求。

limit_conn_zone $binary_remote_addr zone=conn_zone:10m;

limit_conn_zone: 这是 Nginx 的指令,用于定义一个连接数限制区域。
$binary_remote_addr: 这是一个 Nginx 内置变量,表示客户端的二进制形式的远程地址。
zone=conn_zone:10m: 这里定义了一个名为 conn_zone 的连接数限制区域,大小为 10MB。

limit_req zone=req_limit_zone burst=5 nodelay;

limit_req: 这是 Nginx 的指令,用于设置请求速率限制。
zone=req_limit_zone: 这指定了要应用的请求速率限制区域,即之前定义的 req_limit_zone。
burst=5: 这表示在达到请求速率限制时,允许的最大突发请求数为 5。当请求速率超过限制时,允许一定数量的请求突发到达。
nodelay: 这表示不延迟请求,即不等待,立即应用速率限制。

limit_conn conn_zone 10;

limit_conn: 这是 Nginx 的指令,用于设置连接数限制。
conn_zone: 这指定了要应用的连接数限制区域,即之前定义的 conn_zone。
10: 这表示允许的最大连接数为 10。超过这个连接数限制时,新的连接将被拒绝。

limit_rate 20k;

限制每个连接的限制速度为20K,IP的下载速度为连接数*限制速度

(2).重启nginx服务

./nginx -s reload   # 加载nginx配置
./nginx -s stop    # 停止
./nginx   #启动

根据应用场景的需要进行并发数、速度限制 。

注:

limit_zone 这个变量只能在http中使用 
limit_coon和limit_rate变量可以在http,server,location中使用

nginx自从1.1.8版本发布后将limit_conn更换为limit_conn_zone。需要在配置文件中将 limit_zone 修改为 limit_conn_zone,然后重新加载 Nginx 配置文件。

否则会出现错误:

nginx: [emerg] unknown directive "limit_zone" in /usr/local/nginx/conf/nginx.conf:37

在这里插入图片描述

在这里插入图片描述

到此这篇关于Nginx加固的几种方式(控制超时时间&限制客户端下载速度&并发连接数)的文章就介绍到这了,更多相关Nginx加固内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • 在Nginx服务器中配置mod_proxy反向代理的方法

    在Nginx服务器中配置mod_proxy反向代理的方法

    这篇文章主要介绍了在Nginx服务器中配置mod_proxy反向代理的方法,Nginx服务器最大的特点就是作高性能反向代理使用,需要的朋友可以参考下
    2015-07-07
  • nginx返回json或者文本格式的方法

    nginx返回json或者文本格式的方法

    下面小编就为大家分享一篇nginx返回json或者文本格式的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • nginx如何搭建前后端分离架构

    nginx如何搭建前后端分离架构

    本文介绍了如何使用Vue-cli搭建前端开发环境,并详细讲解了nginx、webpack-devserver和Postman的使用方法,此外,还介绍了API基本设计规范,包括HTTP状态码、数据格式和接口设计
    2025-01-01
  • nginx多https证书配置实现

    nginx多https证书配置实现

    本文主要介绍了nginx多https证书配置实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-04-04
  • nginx中用JSON格式记录日志的配置示例

    nginx中用JSON格式记录日志的配置示例

    这篇文章主要介绍了nginx中用JSON格式记录日志的配置示例,其实就是定义一个JSON的日志格式,然后在需要的地方调用即可,需要的朋友可以参考下
    2014-07-07
  • nginx https 443端口配置的方法

    nginx https 443端口配置的方法

    本文主要介绍了nginx https 443端口配置的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Nginx URL重写rewrite机制原理及使用实例

    Nginx URL重写rewrite机制原理及使用实例

    这篇文章主要介绍了Nginx URL重写(rewrite)机制原理及使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 解决nginx 503 Service Temporarily Unavailable方法示例

    解决nginx 503 Service Temporarily Unavailable方法示例

    这篇文章主要介绍了解决nginx 503 Service Temporarily Unavailable方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 高并发nginx服务器的linux内核优化配置讲解

    高并发nginx服务器的linux内核优化配置讲解

    今天小编就为大家分享一篇关于高并发nginx服务器的linux内核优化配置讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Nginx配置Gzip的实现步骤

    Nginx配置Gzip的实现步骤

    本文详细介绍了如何在Nginx中配置Gzip压缩,以减小传输的文件大小,提高网页加载速度,具体步骤包括找到并编辑Nginx配置文件,添加或修改Gzip配置,检查配置并重启Nginx,验证Gzip压缩是否生效等,感兴趣的可以了解一下
    2024-10-10

最新评论