NGINX如何處理HTTP Vary Header

前一篇文章,提到了如何藉由重新設定NGINX Cache Key,移除不會影響網頁內容的參數。這樣的作法雖然可以提升hit rate,但實務上仍會有所限制,這篇就稍做說明…

首先,我使用瀏覽器瀏覽以下網頁
https://test.com.tw/?para1=123&fbcld=XXXXXXXXXX&para2=456
Nginx Cache Key的組成是否如 前一篇文章所說的呢?這疑問可以觀察NGINX的cache檔案內容得到答案。

以下節錄Cache檔案的部分內容,可見fbcld已經不見
KEY: test.com.tw/?para1=123&para2=456
HTTP/1.1 200 OK
Date: Tue, 14 Jan 2020 07:27:02 GMT
Server: Apache
Cache-Control: max-age=0
Expires: Tue, 14 Jan 2020 07:27:02 GMT
Vary: Accept-Encoding,User-Agent
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8

剛提到實務上仍會有所限制,WHY?

NGINX cache key中如何移除網址中不必要的參數

對一個大流量的網站,cache可說是無所不在。由訪客端的browser cache、傳輸過程中的proxy cache,到程式端的nosql等各種cache…對於cache機制,最重要的指標莫過於hit rate。這數字越高,表示該cache機制的效果越佳。

最近在處理一個爬蟲的過程中,注意到一個狀況,當行銷部門買Google廣告、或有網友將網址分享於FB時,Google或Facebook都會在網址後面加上他們自己獨有GET參數。

由於我們有採用nginx作為reverse proxy,主要用以降低後端的web server的loading(還有其他用途),上述的狀況會使得hit rate不好。

無耳茶壺山賞芒花

往草山戰備道途中
半屏山往草山戰備道途中盛開的芒花
又到了秋天賞芒的季節,今年再度約了幾個朋友一起踏上金瓜石無耳茶壺山、半屏山、草山戰備道這條賞芒路線。由台北到金瓜石的交通很方便,有以下公車可直達。
**需要注意的是,由於公車會行經高速公路,所以不能有站位。當車上座位已滿就不能上車了

因此,此行我依舊是搭乘七點半自強號到瑞芳火車站轉車(居然還買到車票,太幸運了)。這次在瑞芳是搭到公車788上金瓜石。

splunk中如何解析JSON、並做處理

最近有個splunk需求,程式所產生的log中想埋入JSON格式的內容。後續需要由splunk解析該JSON內的資訊、以分析、或相關警示的處理。

首先說明此次splunk中的log格式,舉三筆示意的log如下