今天收到長官指派任務,由於資安要求,在網站受到DDoS攻擊或故障時必須顯示靜態錯誤頁面,而不是IIS的錯誤訊息。
我測試後發現在這個ASP.Net網站會自行處理 500 Server Error,再加上 IIS 預設錯誤與 IIS 無回應等都需要處理,故在上一層的Nginx Reverse Proxy裡設定預設錯誤頁面為較佳處理方式。
在Nginx主機裡 nginx.conf 設定:
40x錯誤表示 page not found, 50x 錯誤是Server Error; 設定中 /index.html 是預設首頁, /50x.html 是靜態錯誤頁面。
在重導向的目錄需重新設定 error_page,並且要強制啟用 proxy_intercept_errors on;
如此一來便可在無需人為介入的情況下,在對外網站SageFrame發生錯誤或因DDoS攻擊等反應timeout時,會自動導向到預設的靜態頁面 50x.html 。
參考資料:
題外話,這個錯誤畫面我是用 Bing 自動產生 HTML,之後嫌單調又請Bing產生可愛的維護中圖片,效果非常滿意;看來我被AI取代的日子不遠了。
留言