1,nginx的http配置
proxy_intercept_errors on;
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;
limit_conn_status 503; #超出限制时,返回状态码
location 模块配置:
limit_req zone=mylimit nodelay;
http模块错误页面重定向
error_page 503 /408.html;
2,ab测试验证
ab测试参数:
ab -n 800 -c 800 http://192.168.1.10/
(-n发出800个请求,-c模拟800并发,相当800人同时访问,后面是测试url)
ab -t 60 -c 100 http://192.168.1.10/
在60秒内发请求,一次100个请求。
//如果需要在url中带参数,这样做
ab -t 60 -c 100 -T "text/plain" -p p.txt http://192.168.0.10/hello.html
p.txt 是和ab.exe在一个目录
p.txt 中可以写参数,如 p=wdp&fq=78
-----------------------------------------------------------------------------------------------
ab测试具体例子:
ab -t 1 -c 20 http://192.169.0.1/base
模拟1秒钟 20个请求
[root@web-01 sbin]# ab -t 1 -c 20 http://192.168.0.1/base
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking dev.cbs.bacic5i5j.com (be patient)
Completed 5000 requests
Finished 7457 requests
Server Software: nginx/1.4.4
Server Hostname: dev.cbs.bacic5i5j.com
Server Port: 80
Document Path: /base
Document Length: 0 bytes HTTP响应数据的正文长度
Concurrency Level: 20
Time taken for tests: 1.000 seconds 所有这些请求处理完成所花费的时间
Complete requests: 7457 完成请求数
Failed requests: 7447 --失败请求数 就是由于限流10r/s 每秒钟10个请求
(Connect: 0, Receive: 0, Length: 7447, Exceptions: 0)
Write errors: 0
Non-2xx responses: 7474
Total transferred: 1233810914 bytes ---网络总传输量
HTML transferred: 1232331592 bytes --HTML内容传输量
Requests per second: 7455.60 [#/sec] (mean) ---吞吐量-每秒请求数
Time per request: 2.683 [ms] (mean) --服务器收到请求,响应页面要花费的时间
Time per request: 0.134 [ms] (mean, across all concurrent requests) --并发的每个请求平均消耗时间
Transfer rate: 1204666.99 [Kbytes/sec] received ---received 平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题
网络上消耗的时间的分解:
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 1
Processing: 1 2 0.2 2 5
Waiting: 0 0 0.1 0 2
Total: 1 3 0.3 3 6
整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间
其中 50% 的用户响应时间小于 3毫秒
80 % 的用户响应时间小于 3毫秒
最大的响应时间小于 6 毫秒
Percentage of the requests served within a certain time (ms)
Percentage of the requests served within a certain time (ms)
50% 3
66% 3
75% 3
80% 3
90% 3
95% 3
98% 4
99% 4
100% 6 (longest request)
欢迎关注我的微信公众号,里面会分享技术和投资的一些想法,欢迎交流讨论
相关推荐
nginx限流
Nginx 限流配置 Nginx 限流配置是指通过 Nginx 服务器对用户的访问进行限制,以避免服务器受到攻击或过载。这种配置可以防止恶意用户对服务器的攻击,保护服务器的安全和性能。 限流配置 在 Nginx 配置文件中,...
10. **学习资源**:深入学习Nginx的官方文档、Zookeeper的用户指南以及分布式限流相关的开源项目,如Nginx的lua模块,可以帮助更好地掌握这一技术栈。 总的来说,Nginx与Zookeeper结合的分布式限流方案,是保障系统...
Nginx:Nginx限流与防盗链设置.docx
压力测试工具如Apache的`ab`(ApacheBench)可用于评估限流策略的效果。例如,你可以运行以下命令模拟多个并发用户请求: ```bash ab -n 1000 -c 100 http://example.com/ ``` 这会发送1000个请求,每次100个并发...
本文将详细介绍Nginx限流的配置方法,以及其背后所使用的漏桶算法。 首先,Nginx限流的配置主要涉及到的核心指令是“limit_req_zone”,它用于定义限流规则。规则中包含了限流的依据,例如客户端IP地址,并设置一个...
例如,了解如何在Nginx中配置限流规则,以及如何利用Zookeeper进行分布式限流的动态配置,都是展现技术深度的好方式。同时,熟悉Java中限流库的使用,能够体现你对微服务架构和系统稳定性的理解。 总的来说,分布式...
本文将详细介绍Nginx实现限流的三种方式:`limit_conn_zone`、`limit_req_zone`以及`ngx_http_upstream_module`。 ### 1. `limit_conn_zone` `limit_conn_zone` 是Nginx用于限制客户端连接数的指令。它基于IP地址...
一步步安装nginx搭建流媒体服务器的所有软件打包; nginx-1.8.0.tar.gz :应用服务器主程序 nginx_mod_h264_streaming-2.2.7.tar.gz :MP4流媒体支持模块。 openssl-1.0.1c.tar.gz :openssl库 pcre-7.9.tar.gz :...
nginx 四层代理测试 及SLB负载均衡功能配置测试 本文档旨在介绍nginx 四层代理测试 及SLB负载均衡功能配置测试的详细结果和结论。通过对nginx 四层代理和SLB负载均衡功能的测试,我们可以了解到其在实际应用中的优...
【rtmp直播nginx推流插件】是一种高效且便捷的实时流媒体解决方案,它结合了Nginx服务器和RTMP协议,使得视频直播变得更加简单。Nginx是一款高性能的HTTP和反向代理服务器,同时也支持流媒体服务。而RTMP(Real-Time...
本篇主要涉及了两个测试工具——ab和wrk,以及如何在CentOS7上编译安装Nginx 1.16.1稳定版,并使用echo模块和stub_status模块进行基本功能测试。 1. **ab测试工具安装**: ApacheBench(ab)是Apache服务器自带的...
它以其轻量级的进程模型、高并发处理能力以及低内存消耗而闻名,广泛应用于互联网和企业级应用中,作为Web服务器或负载均衡器。 **Nginx的主要功能** 1. **静态资源服务**:Nginx非常擅长处理静态文件,如HTML、...
在运维过程中,为了保障服务器稳定性和安全性,通常需要对访问进行一定的限制,包括限制特定IP、控制并发连接数以及设定连接数上限。本文将详细介绍如何在Nginx配置中实现这些功能。 一、限制特定IP访问 在Nginx...
**Nginx 教程:防御DDoS、用户访问控制与限流** Nginx是一款高性能的HTTP和反向代理服务器,广泛应用于Web服务领域,以其高效、稳定和灵活的配置而闻名。本教程将围绕如何利用Nginx进行DDoS防御、用户访问控制以及...
8. **测试**:搭建完成后,可以通过推流工具向Nginx服务器发送RTMP流,然后通过支持HLS的播放器验证流是否正常,多码率是否生效。 9. **权限控制和状态监控**:Nginx的配置可以控制直播访问权限,同时可以使用`stat...
接下来,我们需要在服务器上安装nginx以及它的rtmp模块。nginx是一个高性能的HTTP和反向代理服务器,通过添加rtmp模块,它可以处理RTMP和HLS等流媒体协议。可以通过以下步骤进行安装: 1. 更新服务器软件库:`sudo ...
开发测试阶段在本地限速模拟公网的环境,方便调试。投入运营会有限制附件下限速度,限制每个用户的访问速度,限制每个IP的链接速度等需求。 刚遇到一个Bug在网络很卡的情况下才能重现,本地调试访问本机速度太快,...