梓悦生活

  • 🍟首页
  • 🍪免费资源
  • 🍓Wordpress
  • 🍋琐碎生活
  • 🍘关于
关注周围的人或事,体验人生历程
  1. 首页
  2. 免费资源
  3. 正文

Cloudflare 检测HTTP返回代码 宕机切换IP脚本

2019/07/14 6808点热度 2人点赞 0条评论

cloudxns要停止免费用户,大家主要看中它们家的宕机切换功能,国内其他商家宕机切换都是收费功能,所以可以考虑 DNS 解析换到 Cloudflare,通过 Shell 脚本达到宕机切换的功能。

功能介绍:

通过检测 HTTP 返回代码小于 307,不做 IP 切换;

通过检测 HTTP 返回代码大于 307,切换备用 IP;

当主站 IP 恢复,检测 HTTP 返回代码小于 307,切换主站 IP;

实施步骤:

1、获取 CF 的 ID

curl -X GET "https://api.cloudflare.com/client/v4/zones/这里填你官网的 Zone ID/dns_records" \
     -H "X-Auth-Email: 这里填你登录的 EMAIL 例如:[email protected]" \
     -H "X-Auth-Key: 这里填你的 API Keys 例如:c9a3a22e788cafcd827b78e1e8dfa7f22b370" \
     -H "Content-Type: application/json"

这里注意下,每个子域名获取的 id 都是不一样的:

2、新建脚本 status.sh 把两个 ID 分别填写正确的位置

#!/bin/bash
# author: yunloc
# website: https://yunloc.com
 
# 获取 CF 的 ID
# curl -X GET "https://api.cloudflare.com/client/v4/zones/这里填你官网的 Zone ID/dns_records" \
#     -H "X-Auth-Email: 这里填你登录的 EMAIL 例如:[email protected]" \
#     -H "X-Auth-Key: 这里填你的 API Keys 例如:c9a3a22e788cafcd827b78e1e8dfa7f22b370" \
#     -H "Content-Type: application/json" 
 
CheckURL="https://www.yunloc.com"
 
if [ ! -f "status.txt" ];then
echo "" > status.txt
else
status=$(cat status.txt)
fi
STATUS_CODE=$(curl -o /dev/null -m 10 --connect-timeout 10 -s -w %{http_code} $CheckURL)
echo "当前返回代码:$STATUS_CODE"
if [[ $STATUS_CODE <307 ]] && [[ $status -eq 1 ]] 
then
cResult=$(curl -s -X PUT "https://api.cloudflare.com/client/v4/zones/这里填你获取的 Zone id/dns_records/这里填你获取的 ID" \
     -H "X-Auth-Email: 这里填你登录的 EMAIL 例如:[email protected]" \
     -H "X-Auth-Key: 这里填你的 API Keys 例如:c9a3a22e788cafcd827b78e1e8dfa7f22b370" \
     -H "Content-Type: application/json" \
	 --data '{"type":"A","name":"www.yunloc.com","content":"127.0.0.1","proxiable":true,"proxied":false,"ttl":1}')
echo $cResult
echo "返回代码低于 307,返回原站 IP。"
echo 0 > status.txt
elif [[ $STATUS_CODE <307 ]]
then
echo "返回代码低于 307,不做任何改变!"
exit
else
cResult=$(curl -s -X PUT "https://api.cloudflare.com/client/v4/zones/这里填你获取的 Zone id/dns_records/这里填你获取的 ID" \
     -H "X-Auth-Email: 这里填你登录的 EMAIL 例如:[email protected]" \
     -H "X-Auth-Key: 这里填你的 API Keys 例如:c9a3a22e788cafcd827b78e1e8dfa7f22b370" \
     -H "Content-Type: application/json" \
	 --data '{"type":"A","name":"www.yunloc.com","content":"127.0.0.2","proxiable":true,"proxied":false,"ttl":1}')
echo $cResult
echo "返回代码高于 307,更改备用 IP 记录。"
echo 1 > status.txt
fi

设置定时任务,每 10 分钟检查一次:

*/10 * * * * /root/status.sh

此脚本可以放在任何机器上定时运行,最好不要放在网站同服务器,不然服务器挂了就不能切换了。

3、如果需要宕机切换 IP,可以参考 502 重启脚本,检测代码为 000 是就代表宕机了:

#!/bin/bash
 
CheckURL="https://www.yunloc.com"
# curl -I -m 10 -o /dev/null -s -w %{http_code} https://www.yunloc.com
STATUS_CODE=`curl -o /dev/null -m 10 --connect-timeout 10 -s -w %{http_code} $CheckURL`
#echo "$CheckURL Status Code:\t$STATUS_CODE"
if [ "$STATUS_CODE" = "502" ]; then
    /etc/init.d/php-fpm restart
fi

 

转载自:https://www.yunloc.com/698.html

标签: CloudFlare
最后更新:2019/07/14

Meteor

关注周围的人或事,体验人生历程!

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

文章目录
  • 功能介绍:
  • 实施步骤:
最新 热点 随机
最新 热点 随机
[教程]AWS免费EC2注册/使用/添加IPV6/SSH连接/删除实例 使用VestaCP搭建邮局(含DKIM,DMARC教程) [教程]利用宝塔面板邮局管理器搭建Roundcube Webmail自建邮局 [测评]喵云互联绍兴电信NAT套餐1测评 iperf3 网络性能测试 [收藏]13 个免费 PPT 模板网站汇总
[测评]喵云互联绍兴电信NAT套餐1测评[教程]利用宝塔面板邮局管理器搭建Roundcube Webmail自建邮局iperf3 网络性能测试使用VestaCP搭建邮局(含DKIM,DMARC教程)[教程]AWS免费EC2注册/使用/添加IPV6/SSH连接/删除实例
Freezoy提供无限空间流量的PHP/mysql可绑米免费by分销空间 小内存VPS安装Caddy+PHP7+Sqlite3环境,并快速搭建Typecho博客 Cloudflare 检测HTTP返回代码 宕机切换IP脚本 Freewebhosting.uk.to免费空间10GB容量可绑域名中文Cpanel面板 Android /System 目录结构介绍 DirectAdmin 1.53.2开心版
最近评论
b2b系统 发布于 1 年前(12月29日) 感谢分享
Meteor 发布于 2 年前(10月20日) 哈哈,友链一直都在,后来换了主题后忘记修改显示数量了,现在恢复好了。
弋牧 发布于 2 年前(10月12日) 这里已经看不到我的友连了吗?
彩鸽 发布于 2 年前(10月04日) 写的不错
B2B海外商城系统 发布于 2 年前(09月21日) 感谢分享
标签聚合
活动 VPS Linux技巧 宝塔 域名解析 wordpress 技巧 虚拟主机
友情链接
  • Anders Norén
  • Appurse
  • CSS参考手册
  • DeeTeam-迪提姆
  • Fatesinger
  • FreeSSL
  • gandi
  • Internetbs
  • LogoMaker
  • Meteor's Blog
  • PM唐杰
  • SSL For Free
  • WPEX-Themes
  • 优品PPT
  • 免费顶级域名
  • 博客大全
  • 印记
  • 弋牧
  • 挖站否
  • 闫宝龙博客

COPYRIGHT © 2023 梓悦生活. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang