A8DOG

A8DOG

随便写写,记录折腾过程!
telegram

一个PHP文件+cloudflare实现故障转移!

因为服务器之前因为不可抗拒的原因导致服务器故障。

时间飘忽不定,我可能在睡觉又或者在线能及时处理。

于是我弄了这么一个简单的小工具,前提是域名托管在 cloudflare 才可以。

文件:点我下载

具体教程:#

1. 先登录 cloudflare,点击一个域名。找到区域 ID 复制到 PHP 文件中。

//区域ID
$id = '';

2. 区域 ID 下面有一个获取您的 API 令牌点进去。

点击创建令牌,然后使用编辑区域 DNS这个模板。

在区域资源这一行选择你的域名,客户端 IP 地址筛选可以添加白名单。

创建好后复制到 PHP 文件中。

//创建API后得到的token,写在Bearer 后
$Authorization = 'Authorization: Bearer ';

ps.Bearer 和你的 token 中间是有空格的。

3. 添加好两个信息后,到 25 行。

//获取DNS记录ID列表,改成true后访问PHP地址会显示JSON格式的DNS记录列表。
$get_dnsid = false;

false修改成true,然后上传服务器访问。

会出现一些 json,选择你目前需要做故障转移的那条解析的 ID。

填写到:

//需要修改的DNS记录ID,  $get_dnsid = true 获取记录列表,设置dnsid后将$get_dnsid设置成false
$dnsid = '';

再吧 **$get_dnsid = true;** 修改成 $get_dnsid = false; 即可!

4. 修改其他参数

//ping 检测的IP
$pingip='baidu.com';

修改成你要 ping 的地址。

$dnstype = 'A';
//名字
$dnsname = '';
//修改后的IP
$dnscontent = '';
//代理
(bool)$dnsproxied = true;
//ttl
$dnsttl = 3600;

上面的是出现故障后修改解析 IP 的参数,第一个默认 a 解析。

第二是解析内容,第三是备用服务器的 IP,第四修改成 false 就是关闭 cf 的 cdn 功能。

默认是开启的,第五是 ttl 时间,默认一个小时,修改成自动可以把值改成 1。

5.ping 地址的端口

if (pingDomain($pingip, 80) === -1) {

来自 43 行,这里默认 80 端口,可以修改成其他端口。

上面全部部署好后,设置监控访问 URL 即可。

温馨提示,此文件的 ping 的方式和你电脑终端 ping 的方式不是一样的。

此方式类似于端口扫描,端口设置为 80 或者 443 可以监控 web。

端口设置 3306,可以监控 mysql,但是端口必须放行部署 PHP 文件的 IP。

比如你在宝塔放行端口 7777,但是这个端口没有进程占用,也视为故障。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。