本文節選自《netkiller web 手劄》 作者:netkiller 網站:http://www.netkiller.cn
答案是可以!
因為nginx 使用 url 作為緩存的key ( nginx 将url位址 md5後作為緩存的 key ),是以預設情況下 nginx 隻能處理 http get 緩存。
對于 http post 請求,送出資料放在http head 頭部送出到伺服器的, 送出前後url始終不變,nginx 無法區分相同網址兩次請求的内容有變化。
但是我們可以自定義 緩存 key 例如: "$request_uri|$request_body" 我們将請求位址加上post内容作為緩存的key,這樣nginx 便可以區分每次送出後的頁面變化。
$request_body 用于緩存的例子:
将 post 資料記錄到日志中
注意:使用者登入通常使用post方式,是以記錄post資料到日志會帶來安全問題,例如使用者密碼洩露。
we accept paypal through:
https://www.paypal.me/netkiller
wechat (微信) / alipay (支付寶) 打賞:
http://www.netkiller.cn/home/donations.html