網站打不開的時候,壓力會讓人想立刻動手。而立刻動手通常會讓事情變久。

不要立刻開始找原因

網站打不開的原因可能有幾十種,從網域、DNS、憑證、防火牆、主機、程式、資料庫到第三方服務。一個一個查會查很久。

但只要先回答三個問題,就能一次砍掉大部分可能性。這三個問題誰都能回答,不需要技術背景,而且花不到五分鐘。

如果你有外部的工程師或維護商,把這三個答案一起給他,通常可以省掉半天的來回。

第一個問題:所有人都不行,還是只有你

做法:用手機關掉 Wi-Fi,改用行動網路開一次網站。再問一個不在公司的人開一次。

  • 只有你不行,別人都正常 —— 問題在你的裝置、你的網路、或你的 IP 被擋了。網站本身沒事。這種狀況下不要去動網站,先重開瀏覽器、換個網路試。
  • 公司的人都不行,外面的人正常 —— 公司的對外 IP 被防火牆擋了。很常見的原因是有人後台密碼打錯幾次,觸發自動封鎖。
  • 所有人都不行 —— 這才是真的掛了,往下看第二個問題。

這一題排掉的是最常見的誤報。我們接到的緊急通報裡,有相當比例最後是這一類。

第二個問題:整個網站,還是某幾頁

做法:首頁開一次,再開一個內頁,再開一個後台。

  • 全部都打不開,連首頁都是 —— 往網域、DNS、主機整台、或網站服務沒跑這些方向查。這是範圍最大的一類。
  • 首頁可以,內頁不行 —— 往程式、資料庫、或轉址設定查。主機是活的。
  • 前台可以,後台不行 —— 往後台的 IP 限制、或後台專屬的設定查。
  • 某一兩頁不行 —— 那幾頁的程式或資料出問題,範圍很小。

另外要記下你看到的畫面長什麼樣子,這一點比描述「打不開」有用太多:

  • 完全空白一片 —— 通常是程式錯誤
  • 一直轉圈圈到逾時 —— 連線層面的問題
  • 紅色的憑證警告頁 —— 憑證過期
  • 「找不到伺服器」 —— 網域或 DNS
  • 一頁陌生的廣告或待售頁 —— 網域被停放,可能是沒續費
  • 主機商或 CDN 的錯誤頁 —— 問題在他們那一層,有錯誤代碼要抄下來

第三個問題:最近有誰動過什麼

這一題的答案往往就是原因。

範圍抓最近七天,而且要問到公司以外的人:

  • 網站內容有人改過嗎(包含後台發文、換圖)
  • 有人更新過程式、套件、或主機面板嗎
  • 網域或 DNS 設定有人動過嗎
  • 有換過密碼嗎(資料庫密碼改掉是很典型的原因)
  • 有裝新的服務嗎(CDN、防護、分析工具)
  • 有繳費到期或帳單沒付嗎

最後一項特別容易被忽略。主機欠費、網域欠費、CDN 方案到期,這幾種都會讓網站整個不見,而且徵兆看起來很像技術故障。

如果有人說「我只是改了一個小地方」,那個小地方就是第一個要看的位置。時間上的巧合不是巧合。

照著填就能用的通報格式

把下面這幾行填好再發出去,可以省掉非常多來回:

  • 發生時間(到分鐘):
  • 網站網址:
  • 我看到的畫面:(空白/轉圈圈/紅色警告/找不到伺服器/錯誤代碼)
  • 手機行動網路測試結果:(可以/不行)
  • 公司以外的人測試結果:(可以/不行)
  • 首頁/內頁/後台分別:(可以/不行)
  • 最近七天動過的事:
  • 我的對外 IP:(搜尋「我的 IP」會顯示)

這份格式建議現在就存成一個筆記或釘在群組裡。出事的時候沒有人想得起來要問什麼,有格式就照填。

不要做的三件事

不要在不確定原因的時候重裝或還原。還原會覆蓋掉現場,而現場是判斷原因的依據。更糟的是如果問題不在網站本身(例如網域沒續費),還原完全沒有用,但你已經把這段時間的資料覆蓋掉了。

不要同時改好幾個地方。一次改一項,改完測一次。同時改三個地方然後網站好了,你不會知道是哪一個有效,下次還會再發生。

不要只在群組裡說「網站掛了」。這句話讓所有人都開始猜,但沒有人能動手。花五分鐘填上面那份格式,比催十次有用。

處理網站故障的經驗裡,最花時間的從來不是修,是確定要修什麼。上面這三個問題的作用就是把範圍縮小 —— 做完之後通常只剩兩三種可能,而不是幾十種。

如果你的網站現在沒有固定的人在維護,出事的時候這三題至少能讓你知道該找誰:是找網路公司、找主機商、還是找網域註冊商。如果你希望出事的時候有人可以直接接手處理,可以看一下我們的網站維護方案。