基于Nginx实现访问控制、连接限制

基于Nginx实现访问控制、连接限制,第1张

基于Nginx实现访问控制、连接限制

Nginx的内置控制模块适用于限制并发请求的数量,也适用于限制请求的来源。可用于避免DDOS攻击。本文介绍了根据Nginx进行密钥管理和连接限制的关键细节,有需要的朋友可以参考一下。

序言

Nginx的内置控制模块适用于限制并发请求的数量,也适用于限制请求的来源。可用于避免DDOS攻击。
看文章一定要知道nginx的环境变量的构造和英语语法。

1。默认设置是英语语法

Nginx.conf作为主环境变量。

包括/etc/nginx/conf.d/*。conf查看这将读取。文件目录的conf。

1.1综合和服务水平

user设定应用客户 worker_processes开展扩大并发线程数的解决跟cpu保持一致八核设定八个 error_lognginx的不正确日志 pidnginx服务项目起动情况下pid

1.2恶性事件的事件控制模块

worker_connections一个过程容许解决的最大连接数 use界定应用的核心实体模型

1.3服务器

root主页的途径 index主页默认设置浏览哪一个网页页面 error_page500502503504/50x.html不正确网页页面前边的500是**`http状态码`** systemctlrestartnginx.service重新启动nginx systemctlreloadnginx.service不关掉服务项目温和地重新启动

2。HTTP

curl-vhttp://www.baidu.com>/dev/null#-v另外显示信息状态码等信息内容 nginx-V#显示信息nginx版本号及环境变量等信息内容

3。日志

日志类型:error.log和access.log

error.log(纪录解决http请求的不正确情况及其nginx自身服务项目的不正确情况) access.log(每一次http请求的浏览情况)

Log_format:设置日志的记录文件格式,在error.log和access.log中定义日志记录的样式,log_format的配置只在http控制模块中配备。

http中提供了access_log。

4。独立变量

加入资格限制_连接_模块

Limit_conn_module:TCP连接频率有限,一个TCP连接可以创建多个HTTP请求。
英语语法:

极限连接模块的英语语法 种类 显示 Limit_conn_zone标志zone=空房间名称:室内空房间大小; http 用于声明存储空房间 Limit_conn空name并发限制; http、服务器或位置 用于限制某个存储空之间的并发总数 limit_conn_log_level日志级别; http、服务器或位置 当线程数量有限时,日志记录的级别 limit_conn_status状态代码; http,服务器或位置 超限,返回的响应状态码默认为503 。

limit_conn_zone会声明一个zoneroom空来记录连接,从而限制总数。
区域是存储连接信息的室内空房间。它存储在键值对中。一般以移动客户端$binary_remote_addr的详细地址作为标识每个连接的关键字。
当区域内的室内空房间耗尽时,网络服务器可能会错误地为事件后的所有请求返回503(服务暂时不可用)。

请求限制_请求_模块

limit_req_mudule:HTTP请求的频率是有限的,一个TCP连接可以创建多个HTTP请求。
英语语法:

极限英语语法 种类 显示 Limit_req_zonekeyzone=空房间名称:房间大小空速率=每秒请求数; http 用于声明存储空房间 limit_reqzone=空inter-name[burst=序列数][nodelay]; http、服务器或位置 用于限制某个存储空之间的并发总数

这里的区域也是用于存储连接的室内空房间。

突发和节点延迟

Burst和nodelay设置并发请求的缓冲区,是否是延迟时间的对策。
我们先假设装备了以下区域。

http{ limit_req_zone$binan_remote_addrzone=req_zone:1米rate=10r/s; }

1:limit_reqzone=req_zone;

  • 第一秒推送10个请求,一切正常响应。
  • 前一秒推送13个请求,前10个请求正常响应,后3个请求返回503(服务暂时不可用)。
  • 在没有brust和nodelay的情况下,rate=10r/s每秒只实现10个请求,很多立即返回到503,这是不正确的。

    2:limit_reqzone=req_zonebrust=5;

  • 第一秒推送10个请求,一切正常响应。
  • 前一秒推送13个请求,前10个请求全部正常响应,后3个请求放入brust等待响应。
  • 前一秒推送20个请求,前10个请求全部正常响应,后5个请求放入brust等待响应,最后5个请求返回503(服务暂时不可用)。在第二秒钟,brust的五个请求得到了执行。
  • 前一秒推送20个请求,前10个请求全部正常响应,后5个请求放入brust等待响应,最后5个请求返回503(服务暂时不可用)。在第二个中,6个请求被推送,brust中的5个请求被实现,5个请求被放入brust进行响应,剩下的1个请求返回到503(服务暂时不可用)。
  • 当加入brust=5且不使用nodelay时,存在一个体积为5的缓冲区。rate=10r/s每秒只执行10个请求,很多都放在缓冲区。如果缓冲区已满,立即返回503是不正确的。并且缓冲区将在下一个时间范围内记录该请求以作出响应。如果也有请求进来,就把缓冲区再放一次,如果太多,就返回503,不正确。

    3:limit_reqzone=req_zonebrust=5nodelay;

  • 第一秒推送10个请求,一切正常响应。
  • 第一秒推送13个请求,13个请求都正常响应。
  • 前一秒推送20个请求,前15个请求全部正常响应,后5个请求返回503(服务暂时不可用)。
  • 前一秒推送20个请求,前15个请求全部正常响应,后5个请求返回503(服务暂时不可用),后一秒推送6个请求,全部正常响应。
  • brust=5,nodelay,有一个体积为5的缓冲区。rate=10r/s每秒可以执行15个请求,15=10^5。立即返回503是不正确的。

    根据IP的密钥管理

    Http_access_module:根据IP的密钥管理,根据代理可以规避的限制,要防君子不防小人。

    http_access_module的英语语法 种类 显示 允许IP地址|CIDR子网|UNIX:|all; http,server,locationandlimit_except 允许IP地址、CIDR文件格式的子网、unix套接字或所有来自浏览的内容 拒绝IP地址|CIDR子网|UNIX:|all; http,server,locationandlimit_except IP地址,CIDR文件格式的子网,unixsocket或全部严禁浏览

    Allow和deny会从上到下依次搜索第一个匹配的标准,并区分是否允许浏览,所以一般都放在最后。

    location/{ deny192.168.1.1; allow192.168.1.0/24; allow10.1.1.0/16; allow2001:0db8::/32; denyall; }

    根据客户登录密码进行密钥管理

    Http_auth_basic_module:根据文档使用客户登录密码登录。

    http_auth_basic_模块英语语法 种类 显示 Auth_basic输入您的登录密码|off http,server,locationandlimit_except 显示信息账号登录提醒(部分电脑浏览器无法显示提醒) Auth_basic_user_file存储登录密码的文件路径; http,server,location和limit_except 带登录密码的文本文件

    可以根据htpasswd形成密码,htpasswd必须安装yuminstall-yhttpd-tools。

    #-c建立新文档,-b在主要参数中立即输入支付密码 $htpasswd-bc/etc/nginx/conf.d/passwduser1pw1 Addingpasswordforuseruser1 $htpasswd-b/etc/nginx/conf.d/passwduser2pw2 Addingpasswordforuseruser2 $cat/etc/nginx/conf.d/passwd user1:$apr1$7v/m0.IF$2mpM9NVVxbAv.jSUvUQr01 user2:$apr1$XmoO4Zzy$Df76U0Gzxbd7.5vXE0UsE0

    参考

    极限连接模块

    极限请求模块

    http_访问_模块

    http_auth_basic_模块

    摘要

    以上是我根据Nginx对密钥管理和连接限制的详细介绍。我期待对你有所帮助。如果你有所有感兴趣的人帮我在留言板上留言,我会立即回复你。在此,我也要感谢大家对你们网站的申请!
    如果觉得文章对你有帮助,热烈欢迎删减,请注明出处,谢谢!

    欢迎分享,转载请注明来源:内存溢出

    原文地址: http://outofmemory.cn/zz/774754.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-05-03
    下一篇 2022-05-03

    发表评论

    登录后才能评论

    评论列表(0条)

    保存