最近我的服务总是被CC攻击导致了nginx崩溃,服务不可用
yum install -y mailx sendmail
mail配置文件为/etc/mail.rc,用户级配置文件为~/.mailrc。这里使用全局配置文件,在/etc/mail.rc文件最后添加如下内容:
set smtp=smtp.qq.com:587 # 这里填入smtp地址,这里的xxx为qq或者163等,如果用的云服务器,安全组策略要开放465/25端口,入站和出站都要开放该端口
set from=xxx.com # 设置发信人邮箱和昵称(可以随便取)
set smtp-auth=login # 认证方式
set smtp-auth-user=xxx.com # 这里输入邮箱账号
set smtp-auth-password=password
我写了个检测nginx服务状态并检查崩溃重启的脚本
#nginx service
#判断是否root用户运行
if [ $(id -u) != "0" ]
then
echo "当前用户不是 root 请使用root用户运行"
exit 1
fi
netstat -anop | grep 0.0.0.0:80
#判断80端口服务是否正常
if [ $? -ne 1 ]
then
exit
fi
echo $(date +%T%n%F)" Restart nginx Services " >> nginx.log
#启动nginx
/usr/local/nginx/sbin/nginx
#发送邮箱预警
echo 'nginx已崩溃重启' | mail -s 'nginx警告' xxxxx@qq.com
写完先赋个权限
chmod 755 nginx_restart.sh
然后添加定时任务(定时检查)
crontab -e
*/5 * * * * sh /usr/local/nginx/sbin/nginx_restart.sh
每5分钟检查nginx服务是否正常
crontab -l
crontab -l 检查下定时任务是否正常
当然这个只适用于普通方式部署的nginx对于docker部署的,需要自行调整代码
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。