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,但是這個端口沒有進程佔用,也視為故障。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。