像我们做个人站点、小博客之类的网站,通常使用比较实惠型服务器,并且使用PHP解析的站点更为居多,但是如果被人恶意请求网页,会导致我们的PHP进程量剧增,使得其它用户包括自己访问站点缓慢或502错误,现在就一起来动动手拒绝这些恶作剧的人吧!

以下配置在原生 nginx 上测试通过
如果你使用任何面板,请自行查找自定义nginx 配置的地方

修改 nginx.conf 配置

修改 nginx.conf ,在 http { } 段内添加以下两行参数

    limit_conn_zone                $binary_remote_addr zone=addr:10m;
    limit_req_zone                 $binary_remote_addr zone=post:10m rate=60r/s;

参数插入示例
参数插入示例

修改站点主机配置 conf.d/xxx.conf

修改主机配置 conf.d/你的站点.conf ,在 server { } 段内添加以下两行参数

  limit_conn addr 30; # 允许同一个 IP 保持30个连接,超出限制返回503
  limit_req zone=post burst=80 nodelay; # 允许同一个 IP 每秒处理80次请求,超出请求返回503

以上数值根据你的站点实际情况酌情增加或减少

参数插入示例
参数插入示例

重启 nginx 生效配置

重启前我们需要检查 nginx 代码是否插入正确,使用命令验证

nginx -t

返回信息显示 nginx.conf syntax is oknginx.conf test is successful 则代表参数插入正确

重启nginx 服务生效配置

systemctl restart nginx

好了,别人的恶作剧已经影响不到你的网站啦!

最后修改:2021 年 09 月 08 日
如果觉得我的文章对你有用,请随意赞赏