某局點的ats經常出現HIT/502的故障,客戶一旦發飆,這是個扯不清的問題,如果是MISS/502那可以說是源站錯誤,但HIT/502就與ats業務系統有關系了。
經過手動測試,同一個url直接回源連續訪問,偶爾就有502,問題很明顯了,源站是不穩定的。分析后發現源站使用某廠家的cdn做的分發,造成了源站不穩定,我們拿到的是CDN的內容,而且返回的502信息中還有明確的max-age,ats按照max-age的信息把故障信息存下來了,真是害死人的節奏。
ats對于故障信息是有配置參數的,我們已經對沒有max-age頭的故障信息設置為不緩存,有max-age頭故障信息是要看情況緩存的,因為有可能碰到源站改版等問題,也就是說有些故障信息是有必要緩存的。
經過研究,發現header頭重寫可以解決這個故障,思路就是劫持399到599狀態碼的響應header頭,強行將cache-control標記刪除,同時加上Cache-Control no-cache,那樣的話故障信息就不會存儲了,我們就在線上測試,又發現配置后只對新的請求生效,對老的信息是不起作用的,一查緩存,5.7T的存儲已經寫滿,不敢輕易操作了,后想辦法配置緩存規則,采用保守的方式將5.7T的信息通過7天的刷新,502/HIT徹底解決,把header頭的操作分享出來,供大家一起研究。
成都創新互聯公司專業為企業提供高陵網站建設、高陵做網站、高陵網站設計、高陵網站制作等企業網站建設、網頁設計與制作、高陵企業網站模板建站服務,十余年高陵做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。
header_rewrite.so是ats編譯時自帶的模塊,只是默認沒有打開,所以需要在ats里注冊添加,然后編寫規則,header模塊注冊方法是:
在plugin.config 中加入 header_rewrite.so header.config,指定了header的配置文件是header.config
然后就是在header.config中添加規則,添加如下(測試的時候又發現帶max-age的故障信息是不好偽造的,沒折又想了對正常信息進行測試來看功能是否可行,走了一些彎路):
cond %{STATUS} >399 [AND]
cond %{STATUS} <599
rm-header Cache-Control
add-header Cache-Control no-cache
添加好后重新加載配置文件traffic_line -x
對于刷新資源,ats默認帶了對單條url強制刷新的規則,不過不適合我們當前的場景,于是利用cache.config編寫緩存規則,讓資源的保鮮期設置為5分鐘刷新一次,ims緩存規則的設置就不多介紹了,之前有寫。
自建個人原創站運維網咖社(www.net-add.com),新的博文會在網咖社更新,歡迎瀏覽。
標題名稱:ATS通過header頭重寫解決HIT/502故障
網頁路徑:http://m.newbst.com/article0/iicdoo.html
成都網站建設公司_創新互聯,為您提供網站制作、ChatGPT、靜態網站、關鍵詞優化、手機網站建設、用戶體驗
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯