gpt4 book ai didi

Nginx服务器上搭建图片缓存服务的基本配置解析

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Nginx服务器上搭建图片缓存服务的基本配置解析由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

最近准备用nginx搭建了一个图片服务器,看中的就是nginx超强的静态文件处理能力.

由于图片量比较大,和web服务器(也是nginx)分开运行,虽然web服务器调用图片没用问题,但毕竟是远程调用,肯定没有本地文件系统那么快,因此仍然有优化的空间.

proxy_store 使用前的nginx配置 。

?
1
2
3
4
5
location ~* ^.+\.(js|ico|gif|jpg|jpeg|png|html|htm)$ {
   log_not_found off;
   access_log off;
   expires 7d;
}

接下来就用到了nginx的proxy_store模块,让nginx 将取得的图片缓存在本地一个目录,下次就直接调用,(这让网页热点图片统计变得非常容易,讨厌日志分析的管理员肯定喜欢) 。

?
1
2
3
4
5
6
7
8
9
10
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|html|htm|css)$ {
       log_not_found off;
       expires 7d ;
       access_log off;
       proxy_store on;
       proxy_store_access user:rw group:rw all:rw;
       if ( !-e $request_filename) {
       proxy_pass http://img.example.com
       }
}

默认的缓存路径位于 /var/cache/nginx/proxy_temp,里面将会保持图片服务器的目录结构 。

proxy_store 没有缓存过期,相当于镜像功能,这既是优点也是缺点,优点是访问快速,缺点是不知哪一天,硬盘会被撑爆,不过我们可以写个find脚本,定时清理一下缓存就OK了.

nginx还有一种缓存proxy_cache,它在设计上比proxy_store 更先进,采用内存+硬盘方式缓存,可以设置缓存大小和缓存过期.

proxy_cache proxy_cache有一个问题就是,proxy_cache不能清除指定的URL缓存,只能设置URL过期时间,但是有问题,有人就会很快解决问题,nginx第三方模块ngx_cache_purge能清除指定URL。     nginx安装时需要将ngx_cache_purege加载进去.

?
1
./configure --user=www --group=www --add-module=/root/dxm/nginx/ngx_cache_purge-1.2 

  其中,/root/dxm/nginx/ngx_cache_purge-1.2为ngx_cache_purge解压路径(附件中提供ngx_cache_purge tar包下载)   现在来一段实例,实现图片缓存:    话说proxy_tem_path,与proxy_cache_path必须在同一个分区之下!   。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
proxy_temp_path /usr/local/nginx/proxy_temp;
proxy_cache_path /usr/local/nginx/proxy_cache_path levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=1g;
 
upstream tomcat_server{
   server 127.0.0.1:8080; 
   }
   
   
   server{
   listen 192.168.154.128;
   server_name www.zzvips.com;
   
   location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
   {
       
       proxy_cache cache_one;
       proxy_cache_methods GET HEAD POST;
         proxy_cache_min_uses 1;
        proxy_cache_valid 200 302 10m;
        proxy_cache_valid 404 1m;
       proxy_cache_valid any 1m;
        proxy_cache_key "$host:$server_port$uri$is_args$args";
 
      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;
      proxy_pass http://tomcat_server;
      
 
   }
   
 
   location ~ .*\.(jsp)$ {
       
      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;
      proxy_pass http://tomcat_server;
 
   }
   
 
   location ~ /purge(/.*)
   {
     allow 192.168.154.128;
     allow 192.168.154.1;
       deny all;
       proxy_cache_purge cache_one $host:$server_port$1$is_args$args;
    

  恩,静态页面缓存,动态请求不缓存!   大家看一下最后一段的那个purege配置,很显然,表示哪些IP可以手动清除指定的URL   比如,www.zzvips.com/1.jpg可以访问到我的图片,那么用www.aspku.net/purge/1.jpg  就可以清除图片缓存了.

最后此篇关于Nginx服务器上搭建图片缓存服务的基本配置解析的文章就讲到这里了,如果你想了解更多关于Nginx服务器上搭建图片缓存服务的基本配置解析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com