眾所周知nginx proxy_cache可以對請求的response進行緩存,起到類似CDN的作用,甚至有比CDN提供更多的功能,還可以用來緩存託底數據,當後台tomcat掛掉的時候,nginx直接將緩存中的托底資料回傳給使用者。
直接貼上詳細設定
upstream tomcat_localhost {
//注意此處超時時間不要設定太長
server 127.0.0.1:8080 weight=10 max_fails=127.0.0.1:8080 weight=10 max_fails=1 fail_timeout.空間配置,此配置定義在nginx設定檔的server上方即可
#設定快取的key,也可以根據url中的參數進行自訂;$args表示所有參數,也可以使用其中的一個參數,例如:$arg_name,表示只取參數清單中的name參數,此處可以靈活配置,必選配置
proxy_cache_key $host$uri$is_args$args;
#設定繞過快取的請求url,即url中包含該配置的值,則該請求不從快取中獲取數據,非必須配置
proxy_cache_bypass $arg_noCache;
#根據響應碼設定緩存時間,超過這個時間即使緩存文件中有緩存數據,nginx也會回源請求新數據。此處的值也可以根據response中header中設定的
Cache-Control快取時間進行控制,header中的設定優先權最高,如果此處和header都沒有設定快取時間,則nginx不會產生快取文件,非必須配置,如果此處不做配置,header中必須有設定proxy_cache_valid 200 1m;#此處是托底配置,舊的總比出錯強,當nginx請求後台伺服器報錯的時候,如果返回配置的錯誤回應碼,nginx則直接取快取檔案中的舊資料回傳給用戶,托底使用必選設定proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
proxy_cache_lock on;
proxy_cache_lock_timeout 1s;
proxy_pass
. x的緩存託底設定就完成了,在快取檔案有效時間內,即使後台tomcat掛掉,被快取過的頁面或介面也能正常提供服務。
以上就介紹了利用nginx proxy_cache進行網站快取托底配置,包含了nginx,cache方面的內容,希望對PHP教學有興趣的朋友有所幫助。