因為伺服器之前因為不可抗拒的原因導致伺服器故障。
時間飄忽不定,我可能在睡覺又或者在線能及時處理。
於是我弄了這麼一個簡單的小工具,前提是域名託管在 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,但是這個端口沒有進程佔用,也視為故障。