网络世界就像繁忙的咖啡店,过多顾客(请求)会让它乱作一团。今天分享一个如何通过限制IP请求数和连接数,让您的网络咖啡店保持秩序,确保每位用户都能享受流畅服务。
最终目的:Nginx上防止DDos和CC攻击
限制每个IP每秒的连接数
http {
# 用户ip每秒的连接数
limit_conn_zone $binary_remote_addr zone=peripconn:1m;
# 虚拟主机每秒的连接数
limit_conn_zone $server_name zone=perserverconn:1m;
server {
limit_conn peripconn 5;
limit_conn perserverconn 50;
}
}
限制每个IP每秒的请求数
http {
# ip每秒请求数
limit_req_zone $binary_remote_addr zone=peripreq:1m rate=5r/s;
# 虚拟服务器每秒请求数
limit_req_zone $server_name zone=perserverreq:1m rate=10r/s;
server {
# burst为突发请求,最大突发请求为5个 nodelay 即为立即返回503 不缓存
limit_req zone=peripreq burst=5 nodelay;
limit_req zone=perserverreq burst=10;
}
}
写在最后
想象一下,如果你的咖啡店(服务器)突然来了很多不买东西只占座的人(垃圾请求),虽然店员(服务器)忙着应付他们不至于让店关门,但真正来买东西的顾客(正常用户)可能就得等好久才能得到服务(超时响应)。
解决这个问题的一个好办法是,在咖啡店外面开一个快闪店(CDN),这样不仅可以隐藏原来店的位置(隐藏网站IP),还能让顾客更快地得到他们想要的咖啡(加速网站访问),真是一举两得。
完!
大佬,这个代码一般放哪个位置哦
Nginx 的主配置文件中(可以参考:/etc/nginx/nginx.conf),或者在 sites-available 目录中的特定于站点的配置文件中
真是救命的东西啊,前两天被打了,不知道怎么办。
我干脆直接关机了,阿里都发来流量阀值报警信息了。
现在如何呢?
昨晚试着复制过去,但是不能保存。
后来也就没有在捣鼓它了。
嗯,折腾之前记得备份好数据😂