首页 > 系统相关 >Nginx 如何防止 DDoS 攻击

Nginx 如何防止 DDoS 攻击

时间:2024-09-25 13:54:27浏览次数:1  
标签:... 请求 攻击 IP Nginx DDoS

 Nginx 如何防止 DDoS 攻击

原创 广智 架构经纬  2024年09月21日 12:00 上海 听全文 【每天5分钟,了解一个知识点】   DDoS(分布式拒绝服务攻击)是一个让很多网站和服务头疼的问题。DDoS 攻击就像是一群不怀好意的人一起堵塞了你的店门,让正常的顾客无法进入。那我们该如何利用 Nginx 来防止这种攻击呢?   一、DDoS 攻击的特点   DDoS 攻击通常有以下几个特点:   攻击流量来源于一些固定的 IP 地址,而且每一个 IP 地址会创建比真实用户多得多的连接和请求。   攻击流量全部由机器产生,速率比人类用户高得多。   进行攻击的机器其 User-Agent 头不是标准的值,Referer 头有时也会被设置成能够与攻击关联起来的值。   二、Nginx 防止 DDoS 攻击的方法   限制请求率将 Nginx 可接受的入站请求率限制为适合真实用户的值。比如,通过配置让一个真正的用户每两秒钟才能访问一次登录页面。   limit_req_zone $binary_remote_addr zone=one:10m rate=30r/m; server {   ...   location /loginUser.html {       limit_req zone=one;       ...   } } 限制连接的数量将某个客户端 IP 地址所能打开的连接数限制为真实用户的合理值。例如,限制每一个 IP 对网站/product 部分打开的连接数不超过 10 个。   limit_conn_zone $binary_remote_addr zone=addr:10m; server {   ...   location /product/ {       limit_conn addr 10;       ...   } } 关闭慢连接关闭那些一直保持打开同时写数据又特别频繁的连接,因为它们会降低服务器接受新连接的能力。可以通过 client_body_timeout 和 client_header_timeout 指令控制请求体或者请求头的超时时间。   server {   client_body_timeout 5s;   client_header_timeout 5s;   ... } 设置 IP 黑名单如果能识别攻击者所使用的客户端 IP 地址,那么通过 deny 指令将其屏蔽,让 Nginx 拒绝来自这些地址的连接或请求。   location / {   deny 124.123.121.3;   deny 124.123.121.5;   deny 124.123.121.7;   ... } 设置 IP 白名单如果允许访问的 IP 地址比较固定,那么通过 allow 和 deny 指令让网站或者应用程序只接受来自于某个 IP 地址或者某个 IP 地址段的请求。   location / {   allow 192.168.122.0/24;   deny all;   ... } 通过缓存削减流量峰值通过启用缓存并设置某些缓存参数让 Nginx 吸收攻击所产生的大部分流量峰值。同时,要注意 proxy_cache_key 指令定义的键中不要包含容易被攻击者利用的变量。   阻塞请求配置 Nginx 阻塞以下类型的请求:   以某个特定 URL 为目标的请求。   User-Agent 头中的值不在正常客户端范围之内的请求。   Referer 头中的值能够与攻击关联起来的请求。   其他头中存在能够与攻击关联在一起的值的请求。   限制对后端服务器的连接数通常 Nginx 实例能够处理比后端服务器多得多的连接数,因此可以通过 Nginx 限制到每一个后端服务器的连接数。   upstream website {   server 192.168.100.1:80 max_conns=200;   server 192.168.100.2:80 max_conns=200;   queue 10 timeout=30s; }     【关联阅读】   JVM基础系列   网络编程   SpringBoot基础   SpringCloud(微服务)基础   Redis   MySQL   MyBatis   算法   消息队列   Nginx           阅读 1468   ​

标签:...,请求,攻击,IP,Nginx,DDoS
From: https://www.cnblogs.com/cheyunhua/p/18431182

相关文章

  • linux集群 keepalived+nginx实现高可用集群
    用keepalived配置高可用搭建高可用集群高可用集群,即“HA集群”,也常称作“双机热备”,用于关键业务。常见实现高可用的开源软件有heartbeat和keepalived,其中keepalived还有负载均衡的功能。这两个软件类似,核心原理都是通过心跳线连接两台服务器,正常情况下由一台服务器提供服务,......
  • Nginx 在处理大规模分布式系统时有哪些性能优化技巧?
    在处理大规模分布式系统时,Nginx可以通过多种方式进行性能优化。以下是一些有效的性能优化技巧:优化Worker进程与连接数:根据服务器的CPU核数设置worker_processes参数,通常设置为自动检测或等于CPU核心数。调整worker_connections参数,以确定每个worker进程能处理的最大连......
  • 四款负载均衡工具Nginx、HAProxy、MetalLB、gobetween 比较
    以下是对Nginx、HAProxy、MetalLB和gobetween四个开源负载均衡工具的详细对比与分析:Nginx:优点:工作在网络的7层之上,可以针对HTTP应用做一些分流策略,如基于域名、目录结构分流。对网络稳定性依赖小,理论上能ping通就能进行负载均衡。安装和配置简单,有清晰的日志用于排查和管理。支持......
  • # 高可用的并发解决方案nginx+keepalived(三)
    高可用的并发解决方案nginx+keepalived(三)一、Nginx搭建图片服务器针对任何站点,几乎都要访问图片,而一个网页里面几乎有好些张图片,这时候会占据大量tomcat连接,造成大量并发,我们可以通过Nginx配置直接访问硬盘里的图片,绕开tomcat。1、在CentOS7服务器上,创建/usr/local/im......
  • nginx - - - Windows 使用手册
    1.安装nginx官网:https://nginx.org/nginx下载页面:https://nginx.org/en/download.html下载稳定版压缩包解压,就安装完成了。下载地址:https://nginx.org/download/nginx-1.26.2.zip解压:2.修改配置文件修改nginx.conf文件。3.运行打开nginx.exe安装目录,在资源管理器......
  • 阿里云ecs使用nginx部署mqtt服务的tcp转发
    一、什么是MQTT?MQTT(MessageQueuingTelemetryTransport)是一种轻量级、基于发布-订阅模式的消息传输协议,适用于资源受限的设备和低带宽、高延迟或不稳定的网络环境。它在物联网应用中广受欢迎,能够实现传感器、执行器和其它设备之间的高效通信。二、为什么MQTT是适用于物联网的最......
  • HAproxy,nginx实现负载均衡
    环境准备:192.168.88.25 (client)192.168.88.26  (HAproxy)192.168.88.27   (web1)192.168.88.28    (web2)192.168.88.29   (php1)192.168.88.30    (php2)关闭firewalld,selinux。配置yum源,扩展源epel-release实验1一、web1,web21、下载httpd......
  • 【linux中nginx怎么连接自己的前端项目】
    你的前端项目目录(我们用antdesign举例):此时我们没有dist文件(就是编译后的文件)所以需要编译之后你可以拿到dist文件夹了此时我们打开nginx.conf文件保存后启动nginx,你就可以看到你自己前端的页面了打开方法:......
  • 最全nginx安装教程,小白必看。
    1、简介【Nginx是个好东西,没有它的话,这前端开发完了后(非vue开发),还得找一个web容器大概率是tomcat。咱就需要配置tomcat,tomcat的配置是比较麻烦的,nginx的配置就简单了好多。】Nginx(enginex)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Ngi......
  • Nginx优化与防盗链
    目录一、隐藏Nginx版本号二、修改Nginx用户与组三、配置Nginx网页缓存时间四、实现Nginx的日志切割五、配置Nginx实现连接超时六、更改Nginx运行进程数七、配置Nginx实现网页压缩功能八、实现网页图片的大小压缩九、配置Nginx实现防盗链一、隐藏Nginx版本号隐藏N......