nginx從0.7.48版本開始,支援了類似squid的快取功能。這個快取是把url及相關組合當作key,用md5編碼雜湊後儲存在硬碟上,所以它可以支援任意url鏈結,同時也支援404/301/302這樣的非200狀態碼。雖然目前官方的nginx web快取服務只能為指定url或狀態碼設定過期時間,不支援類似squid的purge指令,手動清除指定快取頁面,但是,通過乙個第三方的nginx模組,可以清除指定url的快取。
nginx的web快取服務主要由proxy_cache相關指令集和fastcgi_cache相關指令集構成,前者用於反向**時,對後端內容源伺服器進行快取,後者主要用於對fastcgi的動態程式進行快取。兩者的功能基本上一樣。
最新的nginx版本,proxy_cache和fastcgi_cache已經比較完善,加上第三方的ngx_cache_purge模組(用於清除指定url的快取),已經可以完全取代squid。
在功能上,nginx已經具備squid所擁有的web快取加速功能、清除指定url快取的功能。而在效能上,nginx對多核cpu的利用,勝過squid不少。另外,在反向**、負載均衡、健康檢查、後端伺服器故障轉移、rewrite重寫、易用性上,nginx也比squid強大得多。這使得一台nginx可以同時作為「負載均衡伺服器」與「web快取伺服器」來使用。
編譯完成
#用於清除快取,假設乙個url為http:
通過訪問http:
就可以清除該url的快取!
location ~ /purge(/.*)
#副檔名以.php、.jsp、.cgi結尾的動態應用程式不快取。
location ~ .*\.(php|jsp|cgi)?$
location /nstatus
}}
[root@node2 conf]# mkdir -p /data0/proxy_temp_dir
[root@node2 conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration
file /usr/local/nginx/conf/nginx.conf test is successful
[root@node2 conf]# nginx
[root@node2 conf]# netstat -ntlp
tcp 000.0.0.0:80
0.0.0.0:* listen 60035/nginx: master
快取配置完成
nginx 快取實現
目的 快取nginx伺服器的靜態檔案。如css,js,htm,html,jpg,gif,png,flv,swf,這些檔案都不是經常更新。便於快取以減輕伺服器的壓力。實現 nginx proxy cache可以將使用者的請快取到本地乙個目錄,當下乙個請求時可以直接調取快取檔案,就不用去後端伺服器去取檔...
Nginx的內建快取功能
nginx的proxy模組 可以實現類似於squid的快取功能,http的快取與檔案系統或者塊裝置的快取還有所不同,檔案系統或者塊裝置的快取可以使用預取方法做優化,提前預取出將要被訪問的部分,但是http的快取卻無法預知檔案的訪問情形。可以在nginx裡面實現動態頁面的靜態化工作。使用者第一次訪問i...
Nginx實現HTTP快取
使用proxy cache path屬性進行配置。語法如下 syntax proxy cache path path levels levels keys zone name size inactive time max size size 引數 作用path 快取存放根路徑 levels 表示快取...