公司网站上线,跨境收款,怎么做网站的地图页,推广普通话喜迎十二大手抄报文章目录 连接限制配置实验实验步骤请求限制配置实验实验步骤 连接限制配置实验 通过 Nginx 的font stylecolor:rgb(0, 0, 0);limit_conn/font和font stylecolor:rgb(0, 0, 0);limit_req/font模块#xff0c;分别限制…文章目录连接限制配置实验实验步骤请求限制配置实验实验步骤连接限制配置实验通过 Nginx 的font stylecolor:rgb(0, 0, 0);limit_conn/font和font stylecolor:rgb(0, 0, 0);limit_req/font模块分别限制单 IP 的并发连接数和请求频率只需在font stylecolor:rgb(0, 0, 0);http/font块定义共享内存在font stylecolor:rgb(0, 0, 0);server/font块应用规则即可实验步骤配置项含义font stylecolor:rgb(0, 0, 0);$binary_remote_addr/font客户端 IP 的二进制表示比font stylecolor:rgb(0, 0, 0);$remote_addr/font更节省内存推荐使用font stylecolor:rgb(0, 0, 0);zoneaddr_conn:10m/font分配 10MB 内存存储 IP 的连接统计数据1MB 约可存储 1.6 万个 IP 的信息font stylecolor:rgb(0, 0, 0);rate10r/s/font请求频率限制为每秒 10 个请求font stylecolor:rgb(0, 0, 0);r/s/fontrequests per secondfont stylecolor:rgb(0, 0, 0);r/m/font 每分钟font stylecolor:rgb(0, 0, 0);burst5/font允许 5 个请求的突发缓冲超出 rate 的请求先放入缓冲再慢慢处理font stylecolor:rgb(0, 0, 0);nodelay/font突发的请求不延迟直接处理不加的话缓冲的请求会排队等待font stylecolor:rgb(0, 0, 0);limit_conn 5/font单个 IP 的并发连接数限制为 51、安装Nginx[rootweb01 ~]# yum -y install nginx[rootweb01 nginx]# systemctl start nginx[rootweb01 nginx]# systemctl enable nginxCreated symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.2、修改配置文件[rootweb01 nginx]# cat /etc/nginx/nginx.conf# 工作进程数默认是1可设为CPU核心数比如auto自动识别worker_processes auto;# 必须补充的events块核心 events{# 每个工作进程的最大并发连接数默认1024足够测试使用worker_connections1024;# 可选连接处理模型epoll是Linux下的高效模型默认会自动选择use epoll;}# http块原有配置保留 http{# 1. 定义连接限制的共享内存 - 10m分配 10 兆字节内存空间limit_conn_zone$binary_remote_addrzoneaddr_conn:10m;# 2. 定义请求频率限制的共享内存 rate限制每个 IP每秒最多发送多少个请求limit_req_zone$binary_remote_addrzoneaddr_req:10mrate10r/s;# 原有MIME类型配置必须保留否则静态文件解析异常include /etc/nginx/mime.types;default_type application/octet-stream;# 服务器块原有限制规则保留server{listen80;server_name localhost;# 应用限制规则limit_conn addr_conn5;limit_reqzoneaddr_reqburst5nodelay;limit_req_status503;limit_conn_status503;location /{root /usr/share/nginx/html;index index.html index.htm;}# 自定义503页面error_page503/503.html;location/503.html{root /usr/share/nginx/html;}}}3、使用ad压力测试 重启Nginx[rootweb01 nginx]# systemctl restart nginx测试1测试请求频率限制每秒10个请求 执行以下命令模拟单个 IP 发送100个请求并发数为10[rootweb01 nginx]# ab -n 100 -c 10 -v 3 http://localhost/ 21 | tee ab_result.txt[rootweb01 nginx]# grep ^C[rootweb01 nginx]# grep HTTP/1.1 ab_result.txtHTTP/1.1200OK HTTP/1.1200OK HTTP/1.1200OK HTTP/1.1200OK HTTP/1.1200OK HTTP/1.1200OK HTTP/1.1503Service Temporarily Unavailable HTTP/1.1503Service Temporarily Unavailable HTTP/1.1503Service Temporarily Unavailable HTTP/1.1503Service Temporarily Unavailable HTTP/1.1503Service Temporarily Unavailable HTTP/1.1503Service Temporarily Unavailable HTTP/1.1503Service Temporarily Unavailable 可以使用curl进行测试 可以通过curl手动验证当并发超过5时请求会返回503[rootweb01 nginx]# seq 10 | xargs -I {} -P 6 curl -I -s http://localhost/ | grep HTTP/HTTP/1.1200OK HTTP/1.1200OK HTTP/1.1200OK HTTP/1.1200OK HTTP/1.1200OK HTTP/1.1200OK HTTP/1.1503Service Temporarily Unavailable HTTP/1.1503Service Temporarily Unavailable HTTP/1.1503Service Temporarily Unavailable HTTP/1.1503Service Temporarily Unavailable请求限制配置实验请求限制语法Syntax: limit_req_zone key zonename:size raterate;Default: —Context: httpSyntax: limit_conn zone number [burstnumber] [nodelay];Default: —Context: http, server, location实验步骤编辑配置文件cat/etc/nginx/nginx.conf# main全局层级 worker_processes auto;events{worker_connections1024;use epoll;}# http块 http{# 1. 连接限制的共享内存保留不影响limit_conn_zone$binary_remote_addrzoneaddr_conn:10m;# 2. 请求频率限制的共享内存核心修改rate1r/s每秒1个请求limit_req_zone$binary_remote_addrzoneaddr_req:10mrate1r/s;# 原有MIME类型配置必须保留include /etc/nginx/mime.types;default_type application/octet-stream;# server块 server{listen80;server_name localhost;# 连接限制保留可忽略本次重点看请求限制limit_conn addr_conn5;limit_conn_status503;# 请求频率限制核心调整 # 方案1直接拒绝超出1r/s的请求无缓冲效果最直观limit_reqzoneaddr_req;# 方案2允许2个突发请求缓冲超出缓冲的才拒绝可选后续可测试# limit_req zoneaddr_req burst2 nodelay;# 超出请求限制时返回503状态码和连接限制一致limit_req_status503;# 静态页面根目录保留location /{root /usr/share/nginx/html;index index.html index.htm;}# 自定义503页面保留超出限制时显示error_page503/503.html;location/503.html{root /usr/share/nginx/html;}}}重启服务[rootweb01 nginx]# systemctl restart nginx[rootweb01 nginx]# systemctl status nginx● nginx.service - nginx - high performance web server Loaded: loaded(/usr/lib/systemd/system/nginx.service;enabled;vendor preset: disabled)Active: active(running)since Tue2025-12-1618:33:13 CST;4s ago 测试[rootweb01 nginx]# for i in {1..3}; do curl -I -s http://localhost/ | grep HTTP/; sleep 1; doneHTTP/1.1200OK HTTP/1.1200OK HTTP/1.1200OK