nginx代理的緩存配置
naginx的代理緩存
ngx_http_proxy_module nginx的代理緩存需要這個(gè)模塊
下面的內(nèi)容接著上個(gè)反向代理和負(fù)載均衡的文章,可以去閱讀我的上一篇nginx 的反向代理,比較連貫的理解
proxy_cache_path 定義代理緩存路徑 這個(gè)是放在http服務(wù)下的,不要放在server下,下面是官方文檔的描述
Syntax: proxy_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time] [max_size=size] [min_free=size] [manager_files=number] [manager_sleep=time] [manager_threshold=time] [loader_files=number] [loader_sleep=time] [loader_threshold=time] [purger=on|off] [purger_files=number] [purger_sleep=time] [purger_threshold=time]; Default: — Context: http
下面這里開(kāi)始操作了
在我們的http服務(wù)里添加下面這段話,將緩存放在/tmp/proxy_cache文件里
proxy_cache_path /etc/nginx/proxy_cache levels=1:2 keys_zone=my_cache:100m max_size=10g inactive=1d use_temp_path=off;
然后配置我們代理的server服務(wù)
這里我們是緩存/images/目錄的數(shù)據(jù)
location /images/ {
proxy_cache_valid 200 304 301 302 2h;
proxy_cache_valid 403 404 30s;
proxy_cache_valid any 5m;
#緩存key的方法 以全路徑md5值做做為Key, $is_args判斷是否 參數(shù),如果有參數(shù) 值為 ?,沒(méi)有則為 空
proxy_cache_key $host$uri$is_args$args;
#增加緩存查看狀態(tài) 頭部
add_header Nginx-Cache "$upstream_cache_status";
#啟用緩存my_cache
proxy_cache my_cache;
proxy_pass http://imageserver;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
這里是緩存/sound/目錄的數(shù)據(jù)
location /sound/ {
proxy_cache_valid 200 304 301 302 2h;
proxy_cache_valid 403 404 30s;
proxy_cache_valid any 5m;
#緩存key的方法 以全路徑md5值做做為Key, $is_args判斷是否 參數(shù),如果有參數(shù) 值為 ?,沒(méi)有則為 空
proxy_cache_key $host$uri$is_args$args;
#增加緩存查看狀態(tài) 頭部
add_header Nginx-Cache "$upstream_cache_status";
#啟用緩存my_cache
proxy_cache my_cache;
proxy_pass http://soundserver;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
根目錄下的數(shù)據(jù)我們就不緩存了,等下測(cè)試一下緩存與不緩存的區(qū)別
配置好以后就可以重啟我們的nginx測(cè)試了
[root@localhost ~]# curl 192.168.121.164:/images/ this is 8080.images [root@localhost ~]# curl 192.168.121.164:/images/ this is 8081.images [root@localhost ~]# curl 192.168.121.164:/images/ this is 8080.images [root@localhost ~]# curl 192.168.121.164:/images/ this is 8081.images [root@localhost ~]# vim /usr/local/nginx/conf/conf.d/game.conf [root@localhost ~]# systemctl restart nginx.service [root@localhost ~]# curl 192.168.121.164:/images/ this is 8080.images [root@localhost ~]# curl 192.168.121.164:/images/ this is 8080.images [root@localhost ~]# curl 192.168.121.164:/images/ this is 8080.images [root@localhost ~]# curl 192.168.121.164:/images/ this is 8080.images [root@localhost ~]# curl 192.168.121.164:/ this is 8080.com [root@localhost ~]# curl 192.168.121.164:/ this is 8082.com [root@localhost ~]# curl 192.168.121.164:/ this is 8081.com [root@localhost ~]# curl 192.168.121.164:/ this is 8083.com [root@localhost ~]#
從上面這個(gè)測(cè)試數(shù)據(jù)可以看到,在沒(méi)有修改我們的server配置代理緩存的時(shí)候
訪問(wèn)/imgaes/目錄的時(shí)候是在8080和8081之間切換的,開(kāi)啟代理緩存以后
訪問(wèn)到8080的/images/之后都是訪問(wèn)的緩存,所以后面顯示的都是8080的數(shù)據(jù)
訪問(wèn)根目錄的時(shí)候可以正常切換其它節(jié)點(diǎn),說(shuō)明我們代理的負(fù)載均衡沒(méi)有問(wèn)題
訪問(wèn)的都是8080是因?yàn)榫彺娴拇嬖?/p>
下面看看網(wǎng)頁(yè)的緩存
這是訪問(wèn)根目錄的抓包情況

這是第一次訪問(wèn)/sound/目錄歷覽器的抓包情況

這是第二次訪問(wèn)/sound/目錄的抓包情況

可以看到第一次訪問(wèn)/sound/目錄的時(shí)候cache是MISS的說(shuō)明未命中
因?yàn)榈谝淮卧L問(wèn)還沒(méi)有緩存
而第二次訪問(wèn)的時(shí)候,cache就顯示HIT說(shuō)明緩存命中了,而且是返回304,而訪問(wèn)根目錄的話刷新也都200.
說(shuō)明訪問(wèn)的是緩存,而且都是8082。
說(shuō)明緩存成功了
到此這篇關(guān)于nginx代理的緩存配置的文章就介紹到這了,更多相關(guān)nginx代理緩存內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx配置缺少導(dǎo)致CSS不起作用的問(wèn)題解決
本文將分享一個(gè)常見(jiàn)的問(wèn)題Nginx配置缺少導(dǎo)致的CSS不起作用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12
使用Nginx實(shí)現(xiàn)端口轉(zhuǎn)發(fā)TCP代理的實(shí)現(xiàn)示例
本文主要介紹了使用Nginx實(shí)現(xiàn)端口轉(zhuǎn)發(fā)TCP代理的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
nginx反向代理服務(wù)器及負(fù)載均衡服務(wù)配置方法
正向代理一般是在客戶端設(shè)置代理服務(wù)器,通過(guò)代理服務(wù)器轉(zhuǎn)發(fā)請(qǐng)求,最終訪問(wèn)到目標(biāo)服務(wù)器,這篇文章主要介紹了nginx反向代理服務(wù)器及負(fù)載均衡服務(wù)配置方法,需要的朋友可以參考下2023-12-12
Nginx中日志模塊的應(yīng)用和配置應(yīng)用示例
Nginx是一款高性能的HTTP和反向代理服務(wù)器,廣泛應(yīng)用于互聯(lián)網(wǎng)領(lǐng)域,這篇文章主要介紹了Nginx中日志模塊的應(yīng)用和配置,下面通過(guò)一個(gè)簡(jiǎn)單的實(shí)例來(lái)演示Nginx日志模塊的應(yīng)用和配置,需要的朋友可以參考下2024-02-02
nginx版本號(hào)隱藏(附405 not allowed解決辦法)
版本號(hào)泄露時(shí)攻擊者會(huì)利用相應(yīng)軟件版本的當(dāng)前漏洞,進(jìn)行有效的相應(yīng)攻擊,本文主要介紹了nginx版本號(hào)隱藏,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10

