frp解决高并发崩溃问题(笨方法)
前言
本站测试过很多次攻击,一开始qbs上100的时候frp就会崩溃,后面我就使用了最新版的frp分别放在了服务端和客户端上,后面测试Qbs500+没掉线。
但确实不知道frp崩溃的原因,可能间接性的和并发量有关联,毕竟并发一上来了frp就会莫名其妙的收发不了数据。
这里的解决办法就是用sh脚本,主服务器每分钟都对网页进行存活检测,如果检测到页面无法访问,则远程ssh连接节点服务器分别重启frps。
解决办法
这里使用AI的回复建议。
问:如何实现对网站状态的监控,如果发现网站无法正常显示那么远程服务器执行shell
答:
实现对网站状态的监控并在网站无法正常显示时远程执行Shell脚本,通常涉及到以下几个步骤:
- 监控网站状态:
- 使用
curl
、wget
或其他HTTP客户端来定期检查网站的响应。 - 检查返回的HTTP状态码,如
200 OK
表示成功,4xx
和5xx
系列的状态码通常表示有错误。 - 还可以检查返回的页面内容,确保包含某些关键词或没有错误消息。
- 使用
- 编写监控脚本:
- 编写一个Shell脚本,使用
curl
或wget
来检查网站状态。 - 根据返回的状态码或页面内容判断网站是否正常。
- 如果发现网站异常,则执行相应的操作。
- 编写一个Shell脚本,使用
- 在远程服务器上执行Shell脚本:
- 如果监控脚本和需要执行的Shell脚本在同一台服务器上,可以直接在监控脚本中调用。
- 如果不在同一台服务器上,可以通过SSH连接远程服务器并执行脚本。这通常需要使用SSH密钥进行无密码登录,或者使用SSH密码认证(但请注意,存储明文密码是不安全的)。
- 设置定时任务:
- 使用
cron
或其他定时任务工具来定期运行监控脚本。 - 根据需要设置合适的检查频率,如每5分钟、每小时等。
- 使用
下面是一个简单的示例,展示如何编写一个监控脚本并在网站异常时通过SSH在远程服务器上执行Shell脚本:
监控脚本(check_website.sh):
#!/bin/bash
# 网站URL
WEBSITE_URL="http://example.com"
# 使用curl检查网站状态
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" "$WEBSITE_URL")
# 检查HTTP状态码
if [ "$RESPONSE" != "200" ]; then
echo "网站 $WEBSITE_URL 无法正常显示,状态码: $RESPONSE"
# 通过SSH在远程服务器上执行脚本
SSH_USER="your_ssh_user"
REMOTE_SERVER="remote_server_ip"
REMOTE_SCRIPT="/path/to/remote_script.sh"
ssh -o StrictHostKeyChecking=no "$SSH_USER@$REMOTE_SERVER" "$REMOTE_SCRIPT"
else
echo "网站 $WEBSITE_URL 显示正常"
fi
远程服务器上执行的脚本(remote_script.sh):
#!/bin/bash
# 这里写你需要执行的命令或操作
echo "网站异常,执行紧急操作..."
# 例如重启服务、发送邮件通知等
设置定时任务:
打开当前用户的crontab文件:
crontab -e
添加一行来定期运行监控脚本,例如每5分钟运行一次:
*/5 * * * * /path/to/check_website.sh
保存并关闭文件。
注意:
- 确保所有脚本都有执行权限(使用
chmod +x script.sh
)。 - SSH连接远程服务器时,建议使用SSH密钥进行身份验证,以提高安全性。
- 在生产环境中,确保对所有的操作进行充分的测试和验证,以避免不必要的服务中断或安全问题。
注意
本站使用的方法与这个逻辑差不多,但不是这样配置的,希望访者可以学习一下里面的思路,对自己的frp进行优化。
阅读剩余
THE END