亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > Nginx > 正文

Nginx配置proxy_cache后緩存不能生成緩存文件

2024-08-30 12:27:47
字體:
來源:轉載
供稿:網友

proxy_cache方式跟memcached內存級別的緩存還是不能比擬,但nginx目前還不能做memcached的write動作,所以簡單配置proxy_cache也能抵擋不少鴨梨。

沒有配置好proxy_cache
但在網絡上搜索幾篇文章以后,發現大家寫的很模糊,很多文章都是抄襲復制品。所以按照網絡上的教程,我一開始是這么配置的:

在http段增加:

 代碼如下  

proxy_cache_path  /tmp/qttc_cache levels=1:2 keys_zone=qttc:200m inactive=1d max_size=10g;

然后在server中找到你要緩存的location,增加:

 代碼如下  

proxy_cache qttc;

意思表示開啟這個location的緩存,但是我重啟nginx以后,重新訪問站點發現在緩存目錄下并沒有生成緩存文件。于是,我首先這么做:

一、會不會是瀏覽器有緩存,于是我清空瀏覽器,甚至使用其它瀏覽器訪問站點,并且按狂刷。結果還是沒有生成靜態文件。

二、會不會是nginx自動判斷我的內容,太少就不會緩存。于是我賦值了一大堆字符串到一個文件中,然后使用瀏覽器狂訪問那個文件,結果還是沒有生成靜態文件。

于是到網上搜索,結果也沒有搜索到有用的信息。難道我安裝的nginx有問題?重新從官網下載編譯安裝,還是沒有解決問題。

原來是這樣工作的
后來不斷的摸索,仔細研究。發現還要添加以下兩條才能讓proxy_cache工作,

proxy_cache_valid  200 304 302 24h;

指定各個狀態碼下緩存的時間,200是很重要的,如果有其它的要緩存可以在后邊加上

 代碼如下  

proxy_pass http://www.49028c.com;

指定獲取靜態內容的地址,其實proxy_cache的原理就是從一個你指定的地址獲取內容,然后緩存。當下次你訪問時,nginx會自動判斷有沒有緩存文件?如果有的話緩存文件是不是已經過期(緩存文件的有效期就是第一條設置的)?如果前面兩條任何一條成立就會從proxy_pass的地址重新獲取頁面信息。

于是經過配置以后,終于能生成緩存文件了:

 代碼如下  

[root@lee qttc_cache]# ll
總用量 24
drwx------ 3 www www 4096 7月  19 08:55 4
drwx------ 5 www www 4096 7月  19 08:55 8
drwx------ 3 www www 4096 7月  19 08:55 a
drwx------ 3 www www 4096 7月  19 08:55 c
drwx------ 3 www www 4096 7月  19 08:55 d
drwx------ 3 www www 4096 7月  19 08:55 e

 
可惜,如果你要清空緩存,可以在后臺加一個功能使用后端語言刪除,或者使用一個Purge插件通過IP加端口訪問的方式來清楚緩存文件。

PS.
如果你要清楚某一個url的緩存文件,就比較悲催了。但也不是不能做到。因為nginx生成url文件的時候,存放的目錄以及生成的哈希文件名都是固定的,你也可以使用proxy_cache_key來指定生成的key的字段內容。

如果你掌握它的生成規則,你就可以寫一個管理器來快速清空單個url緩存。最爛的方法也可以把緩存目錄清空,接著訪問你要需要單獨清空的url,然后再到緩存目錄里看看生成的緩存目錄與文件名,再你需要單獨清空這個url的緩存時直接把文件干掉就好。

因為proxy_cache需要proxy_pass配置才能生成緩存內容,而目前一般的站點配置中,比如PHP站點都是把php頁面proxy_pass到后臺PHP程序處理,所以你可以在處理php的location里加上proxy_cache把php動態語言生成的內容結果緩存。對于那些靜態文件其實也不需要什么proxy_cache來緩存,因為靜態文件跟proxy_cache最終生成的緩存文件一樣都是在磁盤上的一個文件。

因此正確的描述是:它是一個重定向,反向代理的緩存功能,不是根據url生成緩存靜態文件的功能


下面我把我的全部配置代碼拿出來

proxy_cache是nginx自帶的內置緩存模塊,配置一下就可以用了,看下面的配置

vi /usr/local/nginx/conf/nginx.conf

 代碼如下  

user  zhangy users;
worker_processes 10;
error_log  /var/vlogs/nginx_error.log  crit;
pid        /var/vlogs/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 65535;
events
{
 use epoll;
 worker_connections 65535;
}
http
{
 include       mime.types;
 default_type  application/octet-stream;
 #charset  gb2312;
 server_names_hash_bucket_size 128;
 client_header_buffer_size 32k;
 large_client_header_buffers 4 32k;
 client_max_body_size 8m;
 sendfile on;
 tcp_nopush     on;
 keepalive_timeout 60;

 tcp_nodelay on;

 fastcgi_connect_timeout 300;
 fastcgi_send_timeout 300;
 fastcgi_read_timeout 300;
 fastcgi_buffer_size 64k;
 fastcgi_buffers 4 64k;
 fastcgi_busy_buffers_size 128k;
 fastcgi_temp_file_write_size 128k;
//============
 client_body_buffer_size  512k;
 proxy_connect_timeout    5;
 proxy_read_timeout       60;
 proxy_send_timeout       5;
 proxy_buffer_size        16k;
 proxy_buffers            4 64k;
 proxy_busy_buffers_size 128k;
 proxy_temp_file_write_size 128k;
 proxy_temp_path   /usr/local/nginx/proxy_temp;
/*levels設置目錄層次
keys_zone設置緩存名字和共享內存大小
inactive在指定時間內沒人訪問則被刪除在這里是1天
max_size最大緩存空間*/
proxy_cache_path /usr/local/nginx/proxy_cache levels=1:2 keys_zone=content:20m inactive=1d max_size=100m;
//============等號中間要加的,關鍵只要加上proxy_cache_path

 gzip on;
 gzip_min_length  1k;
 gzip_buffers     4 16k;
 gzip_http_version 1.0;
 gzip_comp_level 2;
 gzip_types       text/plain application/x-javascript text/css application/xml;
 gzip_vary on;

 upstream myselfxtajmd {
 server 127.0.0.1:10002;
 server 127.0.0.1:10001 weight=5;
 }

 server
 {
 listen       10000;
 server_name  localhost;
 index index.html index.htm index.php;
 log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
 '$status $body_bytes_sent "$http_referer" '
 '"$http_user_agent" $http_x_forwarded_for';
 access_log  /var/log/test.log  access;

 location /
 {
 proxy_cache content; //根keys_zone后的內容對應
 proxy_cache_valid  200 304 301 302 10d;   //哪些狀態緩存多長時間
 proxy_cache_valid  any 1d;    //其他的緩存多長時間
 proxy_cache_key $host$uri$is_args$args;   //通過key來hash,定義KEY的值

 proxy_pass http://myselfxtajmd;
 proxy_redirect                      off;
 proxy_set_header   Host             $host;
 proxy_set_header   X-Real-IP        $remote_addr;
 proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
 }

//動態的放過
 location ~ .*.(php|jsp|cgi)?$
 {
 proxy_set_header Host  $host;
 proxy_set_header X-Forwarded-For  $remote_addr;
 proxy_pass http://www.49028c.com;
 }
 }
}


設置proxy_cache緩存與取消緩存
在配置文件的server{}內,添加這么一句即可:

 代碼如下  
 
location ~ .*/.(css|js)$ {
    add_header Cache-Control 'no-store';
}

 


在nginx.conf里的http塊加入以下代碼

#proxy_temp_path和proxy_cache_path指定的路徑必須在同一分區
proxy_temp_path   /tmp/proxy_temp_dir;
#設置名稱為nginx_cache,內存緩存空間大小為500MB,30天沒有被訪問的內容自動清除,硬盤緩存空間大小為30GB。

 代碼如下  
proxy_cache_path  /tmp/proxy_cache_dir  levels=1:2   keys_zone=nginx_cache:200m inactive=3d max_size=30g;


在server加入以下代碼

 

 代碼如下  

 
location / {
        proxy_cache nginx_cache;
        proxy_cache_key $host$uri$is_args$args;
        proxy_set_header Host  $host;
        proxy_set_header X-Forwarded-For  $remote_addr;
        expires  30d;
}
 

重啟Ngnix

 

 代碼如下  
/usr/local/nginx/sbin/nginx -s reload

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩激情片免费| 日韩综合中文字幕| 久久91亚洲精品中文字幕| 欧美高清一级大片| 国产午夜精品视频免费不卡69堂| 国产精品高潮呻吟视频| 久久久精品亚洲| 国产午夜精品理论片a级探花| 97超碰蝌蚪网人人做人人爽| 精品成人在线视频| 成人免费福利在线| 国产精品女主播视频| 亚洲女人天堂色在线7777| 成人h片在线播放免费网站| 日韩黄色在线免费观看| 亚洲精品电影网| 欧美在线性视频| 欧美精品性视频| 97超级碰在线看视频免费在线看| 欧美成人午夜激情视频| 日韩国产一区三区| 国产在线日韩在线| 色偷偷av一区二区三区| 热久久免费国产视频| 久久久精品美女| 国产伦精品免费视频| 国产精品视频精品视频| 在线亚洲男人天堂| 久久免费视频在线| 亚洲精品v欧美精品v日韩精品| 国产欧美va欧美va香蕉在线| 国产午夜精品一区理论片飘花| 欧美老女人xx| 亚洲国产精彩中文乱码av| 久热精品视频在线观看一区| 在线观看国产精品日韩av| 国产美女久久久| 国产精品一区二区久久久久| 欧美性感美女h网站在线观看免费| 日韩激情视频在线播放| 中文字幕在线看视频国产欧美| 日韩精品极品在线观看播放免费视频| 欧美综合国产精品久久丁香| 国产久一一精品| 精品欧美国产一区二区三区| 亚洲国产精品悠悠久久琪琪| 国产精品视频导航| 亚洲国产成人久久综合| 国产精品爽黄69天堂a| 青草青草久热精品视频在线网站| 欧美激情网站在线观看| 中文字幕日韩精品在线观看| 午夜精品久久久久久久99黑人| 91久久夜色精品国产网站| 国产伦精品一区二区三区精品视频| 97久久精品国产| 色综合久久久888| 国产亚洲精品久久| 国产精品久久久久久久久久东京| 久久视频在线看| 亚洲偷欧美偷国内偷| 8x海外华人永久免费日韩内陆视频| 美女扒开尿口让男人操亚洲视频网站| 在线成人激情视频| 欧美日韩亚洲成人| 国产一区av在线| 亚洲aa中文字幕| 久久久久久久久久久久av| 九九九久久国产免费| 精品亚洲永久免费精品| 国语自产精品视频在线看抢先版图片| 欧美丝袜美女中出在线| 亚洲欧洲高清在线| 黑丝美女久久久| 亚洲精品电影在线| 成人精品一区二区三区电影免费| 国产在线精品播放| 日韩av中文字幕在线免费观看| 欧美丝袜一区二区三区| 中文字幕亚洲无线码a| 久久久久久国产精品三级玉女聊斋| 欧美激情乱人伦一区| 日韩精品视频免费在线观看| 色综合久久天天综线观看| 亚洲人成在线观看网站高清| 亚洲字幕在线观看| 亚洲精品视频免费在线观看| 国产玖玖精品视频| 亚洲区中文字幕| 国产成人精品999| 国产91精品网站| 91成人天堂久久成人| 久久在线观看视频| 成人福利网站在线观看11| 国产亚洲免费的视频看| 91老司机在线| 亚洲欧美日本伦理| 国产精品一区二区在线| 亚洲精品久久久久久久久久久久久| 国产美女精品免费电影| 国产成人精品视频| 亚洲va欧美va在线观看| 精品久久久久久久久久久久久| 精品视频一区在线视频| 亚洲一区第一页| 狠狠综合久久av一区二区小说| 在线电影中文日韩| 亚洲精品视频久久| 国产精品久久久久久av福利| 中文字幕欧美国内| 伊人av综合网| 国产亚洲精品久久久优势| 亚洲精品第一国产综合精品| 91精品啪在线观看麻豆免费| 亚洲精品电影网站| 欧美激情精品久久久久久大尺度| 国产精品偷伦一区二区| 欧美成人黑人xx视频免费观看| 最新中文字幕亚洲| 97超视频免费观看| 亚洲国产精品人久久电影| 色播久久人人爽人人爽人人片视av| 视频在线观看一区二区| 亚洲天堂av电影| 日韩精品免费视频| 欧美激情一区二区三区成人| 欧美二区在线播放| 日本不卡视频在线播放| 日韩免费不卡av| 久久久久久18| 91av中文字幕| 一区二区在线免费视频| 成人国产亚洲精品a区天堂华泰| 97欧美精品一区二区三区| 欧美精品日韩www.p站| 色琪琪综合男人的天堂aⅴ视频| 九九热视频这里只有精品| www国产亚洲精品久久网站| 亚洲黄色av女优在线观看| 黑人巨大精品欧美一区免费视频| 在线播放日韩av| 一区二区日韩精品| 亚洲欧美福利视频| 国产亚洲美女精品久久久| 国产小视频91| 亚洲欧美精品中文字幕在线| 亚洲的天堂在线中文字幕| 疯狂做受xxxx高潮欧美日本| 国产成人综合av| 欧美怡红院视频一区二区三区| 国产成人精品久久| 久久久久这里只有精品| 亚洲成av人片在线观看香蕉| 日韩人在线观看| 国产精品对白刺激| 亚洲最新av网址| 成人午夜小视频| 亚洲国产91精品在线观看| 欧美激情第一页xxx| 亚洲精品国产精品久久清纯直播| 国产精品入口夜色视频大尺度| 在线观看国产成人av片| 亚洲肉体裸体xxxx137| 91免费欧美精品|