雖然 wordpress 也有第三方的快取套件(WP Super Cache)能開箱即用,但我比較熟悉用 nginx 直接快取 php-fpm 的回應(fastcgi cache),便往這方向搜尋。意外看到一段語法能解決之前工作上遇到的問題:根據登入狀態做快取。
其中我需要的是最後一段,當 cookie 包含 wordpress_logged_in
字串的時候,則 nginx 可無視快取。
會這麼做是因為我維護的是論壇,根據82法則:8成的人是訪客,2成的人有登入。那麼如果每次 request 都要用 PHP 處理就太佔用 CPU 了。
不如在這邊偷雞摸狗一下,若是訪客,則給他一個 5 秒的快取。
搭配上 fastcgi_cache_background_update
豈不美哉~
發佈留言