1.通过nginx对并发数进行限制
java
防止压力测试的恶意攻击的思路:
nginx限制同一个IP的并发最大为10,
vi /usr/local/nginx/conf/nginx.conf
在http{} 字段第一行添加:
limit_conn_zone $binary_remote_addr zone=one:10m;
在对应的server{}里添加:
limit_conn one 10;
最后重启nginx
2.通过nginx对压力测试工具的访问请求进行拦截
java
在虚拟主机server里添加
if ($http_user_agent ~ ApacheBench|WebBench|Wget)
{
return 403;
}
转载:https://blog.csdn.net/qq_39239779/article/details/78132010
https://blog.csdn.net/weixin_30657541/article/details/96529339
3.终极解决方案之线程池
比如服务器系统是**G内存,通过jmeter测出系统所能承受的最大量并发线程资源,并设置线程池最大线程数
用户进来后,先从线程池获取线程
如果有空闲线程,直接从线程池获取执行任务
如果线程池中没有空闲线程,则进入等待队列
这样即使超高并发进来,也能游刃有余