網站打不開的時候,壓力會讓人想立刻動手。而立刻動手通常會讓事情變久。
不要立刻開始找原因
網站打不開的原因可能有幾十種,從網域、DNS、憑證、防火牆、主機、程式、資料庫到第三方服務。一個一個查會查很久。
但只要先回答三個問題,就能一次砍掉大部分可能性。這三個問題誰都能回答,不需要技術背景,而且花不到五分鐘。
如果你有外部的工程師或維護商,把這三個答案一起給他,通常可以省掉半天的來回。
第一個問題:所有人都不行,還是只有你
做法:用手機關掉 Wi-Fi,改用行動網路開一次網站。再問一個不在公司的人開一次。
- 只有你不行,別人都正常 —— 問題在你的裝置、你的網路、或你的 IP 被擋了。網站本身沒事。這種狀況下不要去動網站,先重開瀏覽器、換個網路試。
- 公司的人都不行,外面的人正常 —— 公司的對外 IP 被防火牆擋了。很常見的原因是有人後台密碼打錯幾次,觸發自動封鎖。
- 所有人都不行 —— 這才是真的掛了,往下看第二個問題。
這一題排掉的是最常見的誤報。我們接到的緊急通報裡,有相當比例最後是這一類。
第二個問題:整個網站,還是某幾頁
做法:首頁開一次,再開一個內頁,再開一個後台。
- 全部都打不開,連首頁都是 —— 往網域、DNS、主機整台、或網站服務沒跑這些方向查。這是範圍最大的一類。
- 首頁可以,內頁不行 —— 往程式、資料庫、或轉址設定查。主機是活的。
- 前台可以,後台不行 —— 往後台的 IP 限制、或後台專屬的設定查。
- 某一兩頁不行 —— 那幾頁的程式或資料出問題,範圍很小。
另外要記下你看到的畫面長什麼樣子,這一點比描述「打不開」有用太多:
- 完全空白一片 —— 通常是程式錯誤
- 一直轉圈圈到逾時 —— 連線層面的問題
- 紅色的憑證警告頁 —— 憑證過期
- 「找不到伺服器」 —— 網域或 DNS
- 一頁陌生的廣告或待售頁 —— 網域被停放,可能是沒續費
- 主機商或 CDN 的錯誤頁 —— 問題在他們那一層,有錯誤代碼要抄下來
第三個問題:最近有誰動過什麼
這一題的答案往往就是原因。
範圍抓最近七天,而且要問到公司以外的人:
- 網站內容有人改過嗎(包含後台發文、換圖)
- 有人更新過程式、套件、或主機面板嗎
- 網域或 DNS 設定有人動過嗎
- 有換過密碼嗎(資料庫密碼改掉是很典型的原因)
- 有裝新的服務嗎(CDN、防護、分析工具)
- 有繳費到期或帳單沒付嗎
最後一項特別容易被忽略。主機欠費、網域欠費、CDN 方案到期,這幾種都會讓網站整個不見,而且徵兆看起來很像技術故障。
如果有人說「我只是改了一個小地方」,那個小地方就是第一個要看的位置。時間上的巧合不是巧合。
照著填就能用的通報格式
把下面這幾行填好再發出去,可以省掉非常多來回:
- 發生時間(到分鐘):
- 網站網址:
- 我看到的畫面:(空白/轉圈圈/紅色警告/找不到伺服器/錯誤代碼)
- 手機行動網路測試結果:(可以/不行)
- 公司以外的人測試結果:(可以/不行)
- 首頁/內頁/後台分別:(可以/不行)
- 最近七天動過的事:
- 我的對外 IP:(搜尋「我的 IP」會顯示)
這份格式建議現在就存成一個筆記或釘在群組裡。出事的時候沒有人想得起來要問什麼,有格式就照填。
不要做的三件事
不要在不確定原因的時候重裝或還原。還原會覆蓋掉現場,而現場是判斷原因的依據。更糟的是如果問題不在網站本身(例如網域沒續費),還原完全沒有用,但你已經把這段時間的資料覆蓋掉了。
不要同時改好幾個地方。一次改一項,改完測一次。同時改三個地方然後網站好了,你不會知道是哪一個有效,下次還會再發生。
不要只在群組裡說「網站掛了」。這句話讓所有人都開始猜,但沒有人能動手。花五分鐘填上面那份格式,比催十次有用。
處理網站故障的經驗裡,最花時間的從來不是修,是確定要修什麼。上面這三個問題的作用就是把範圍縮小 —— 做完之後通常只剩兩三種可能,而不是幾十種。
如果你的網站現在沒有固定的人在維護,出事的時候這三題至少能讓你知道該找誰:是找網路公司、找主機商、還是找網域註冊商。如果你希望出事的時候有人可以直接接手處理,可以看一下我們的網站維護方案。
