昨天我們的域名在服務器處於高負載狀態時被錯誤地刪除了一條A記錄,而Facebook調試器工具可能會在網站停機期間多次刮掉該網站。Facebook調試器緩存不正確的DNS
服務器恢復正常,現在每當我在我們域的www版本上使用調試器工具時,即使站點正在工作,我也會不斷得到502錯誤的響應代碼。
DNS的TTL是300秒(CloudFlare),但這個緩存問題在事件發生後的18個小時內仍然發生。
我暫時解決了這個問題,通過302重定向到我們的域的非www版本,我們所有的帖子現在都完美地刮掉了,雖然這不是理想的,因爲我需要www。
我建立了一個稱爲'test'的樣子子域,並加載完全相同的內容,並且它完美地工作,因此消除了格式不正確的html作爲問題(也是非www可以正確使用完全相同的內容) 。
作爲進一步調查,我刪除了測試子域的A記錄,並在幾分鐘後放回來,以模擬最初的事件。在等待一個小時(並且TTL爲300)之後,Facebook調試器仍然返回502約30次中的29次,並且很少會得到200.
儘管我的測試子域返回200很少,我的www即使嘗試了大概1000次,域名也不會返回200,並且DNS在24小時前放回。
也許facebook緩存過期時間是基於它獲得的請求數量?在我的測試中,我只嘗試了幾次,但在我的網站停機的時候,大概有10,000股或更多的股票發生了。
因此,總體上看來,通過添加和刪除dns記錄,可以「破壞」一個永遠不會被刮取的子域,即使域在域傳播後很久就解決了。
我真的很想使用我的www子域名,但它只是沒有發生,直到我可以找到一種方式讓Facebook正確地抓取它。