nginx壓縮與解壓
壓縮是對請求進(jìn)行壓縮來減小請求的字節(jié)數(shù)
關(guān)于壓縮的相關(guān)參數(shù),主要是寫在http上文中
開啟壓縮
gzip on;
壓縮的文件類型或者對什么文件類型進(jìn)行壓縮
gzip_types text/plain application/javascript application/x-javascript text/css
application/xml text/javascript application/x-httpd-php image/jpeg image/gif
image/png;
多大的文件開始壓縮
下面的設(shè)置表示魏蔗,超過100個(gè)字節(jié)的文件進(jìn)行壓縮
gzip_min_length 100;
如果使用了反向代理矛双,希望對反向代理的文件進(jìn)行壓縮析显,那么使用以下命令
gzip_proxied 參數(shù);
常見參數(shù)
--->off:表示關(guān)閉所有的代理結(jié)果數(shù)據(jù)壓縮
--->expired:表示如果header中包含”Expires”頭信息,啟用壓縮
--->no-cache:表示如果header中包含”Cache-Control:no-cache”頭信息,啟用壓縮
--->no-store:表示如果header中包含”Cache-Control:no-store”頭信息靶瘸,啟用壓縮
--->private:表示如果header中包含”Cache-Control:private”頭信息寝优,啟用壓縮
--->no-last-modified:表示啟用壓縮条舔,如果header中包含”Last_Modified”頭信息,啟用壓縮
--->no-etag:表示啟用壓縮乏矾,如果header中包含“ETag”頭信息孟抗,啟用壓縮
--->auth:表示啟用壓縮,如果header中包含“Authorization”頭信息钻心,啟用壓縮
--->any:表示無條件壓縮所有結(jié)果數(shù)據(jù)
對http什么版本進(jìn)行壓縮
gzip_http_version 1.0|1.1
解壓
guzip on;
發(fā)送壓縮靜態(tài)文件
gzip_static on;
nginx緩存
1凄硼、開啟nginx緩存
開啟nginx緩存的步驟:
● 在http上下文中使用proxy_cache_path寫一個(gè)緩存的信息
proxy_cache_path /data/nginx levels=1:2 keys_zone=mycache:100m max_size=2048m;
/data/nginx:表示用于存緩存數(shù)據(jù)的目錄信息
levels:表示緩存的結(jié)構(gòu)層次
keys_zone:表示共享緩存空間的名字,后面是大小表示共享緩存初始大小
max_size:表示共享緩存空間最大的值捷沸,如果當(dāng)我們的緩存數(shù)據(jù)超過這個(gè)值摊沉,那就會(huì)刪除一些以前的緩存數(shù)據(jù)。
● 在server上下文中聲明是否使用緩存空間
proxy_cache mycache;
2痒给、與進(jìn)程相關(guān)的緩存
為什么需要對進(jìn)程的緩存進(jìn)行相約束说墨,主要的目的是防止快速加載進(jìn)程緩存時(shí)可能對服務(wù)器產(chǎn)生的影響骏全。
一般來對進(jìn)程的緩存約束有以下參數(shù):
● loader_threshold:迭代持續(xù)時(shí)間,以毫秒為單位(默認(rèn)情況下 200)尼斧,每次加載時(shí)最多這么長時(shí)間姜贡。
● loader_fifiles:一次迭代期間加載的最大項(xiàng)目數(shù)(默認(rèn)情況下 100),表示每次最多加載100個(gè)文……
● loader_sleeps:迭代之間的延遲棺棵,以毫秒為單位(默認(rèn)情況下 50)鲁豪,表示每次加載延遲50ms。
proxy_cache_path /data/nginx/cache keys_zone=one:10m loader_threshold=300
loader_files=200;
3律秃、限制或禁用響應(yīng)緩存
正常如果我們不對響應(yīng)緩存進(jìn)行約束爬橡,那么這個(gè)響應(yīng)緩存會(huì)一直存在共享緩存空間中,直到緩存空間達(dá)到最大值max_size才可能被刪除棒动。
proxy_cache_valid 200 302 10m;
#表示200和302的響應(yīng)緩存有效時(shí)間為10分鐘
proxy_cache_valid 404 1m;
#表示404的響應(yīng)緩存有效時(shí)間為1分鐘
proxy_cache_valid any 5m;
#表示任意的響應(yīng)碼響應(yīng)緩存有效時(shí)間為5分鐘
4糙申、清除緩存內(nèi)容
配置清除緩存
首先在http上下文中使用PURGE來配置我們要清除的緩存信息
http {
...
map $request_method $purge_method {
PURGE 1;
default 0;
}
}
在location上下中去引用清除緩存
server {
listen 80;
server_name www.example.com;
location / {
proxy_pass https://localhost:8002;
proxy_cache mycache;
proxy_cache_purge $purge_method;
}
}