这将每 5 分钟执行一次 check_site.sh 脚本,并检查站点状态。

发布时间 2023-05-22 15:45:26作者: JS脚本
如果您的网站被攻击并且占用了大量的 CPU 资源,另一种解决方法是将流量切换到其他站点的备用服务器。下面是在 CentOS 上使用自动脚本实现流量切换的步骤:
  1. 创建一个新的脚本文件,例如check_site.sh。使用以下命令创建文件并添加必要的权限:
touch check_site.sh
chmod +x check_site.sh

  

 check_site.sh 文件中添加以下代码:
TXT复制#!/bin/bash # 定义需要检查的站点 SITES=("aa.site" "backup1.aa.site" "backup2.aa.site") # 循环检查每个站点的状态 for SITE in "${SITES[@]}" do STATUS=$(curl -s -o /dev/null -w "%{http_code}" $SITE) if [ $STATUS -eq 200 ]; then # 如果站点状态正常,切换到该站点并退出循环 sed -i "s/aa\.site/$SITE/g" /etc/nginx/conf.d/aa.site.conf systemctl restart nginx exit 0 fi done # 如果所有备用站点都无法访问,记录错误日志并退出 echo "All backup sites are down" >> /var/log/check_site.log exit 1
这个脚本将检查预定义的站点列表,如果其中任何一个站点处于正常状态(HTTP 状态码为 200),则将 nginx 配置文件中的站点 URL 更改为该站点,并重新启动 nginx 服务。
 /etc/crontab 文件中添加以下行,以定期执行 check_site.sh 脚本:
TXT复制*/5 * * * * root /path/to/check_site.sh
这将每 5 分钟执行一次 check_site.sh 脚本,并检查站点状态。
通过这些步骤,您应该能够成功实现在 CentOS 上自动检测攻击,并将流量切换到其他备用站点。请注意,这只是一个简单的解决方案,如果您的网站仍然受到攻击,请尽快采取其他措施来保护您的网站免受攻击。