欢迎光临
屌丝博客

Nginx高速图片缓存服务器构架

一、 同样安装nginx和ngx-purge(参考这个文章)如果是centos最小安装 可参考以下命令

yum install pcre pcre-devel zlib zlib-devel openssl openssl-devel gcc make -y

自己下载nginx安装包和ngx_cache_purge

安装nginx前先自己新建用户www

useradd www

配置成功后

Configuration summary
  + using system PCRE library
  + using system OpenSSL library
  + md5: using OpenSSL library
  + sha1: using OpenSSL library
  + using system zlib library

2、安装后,防火墙端口打开。启动nginx

/usr/local/nginx/sbin/nginx


3、以下配置 酌情添加

        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;

        keepalive_timeout  65;

        gzip on;
        gzip_disable     "MSIE [1-6].";
        gzip_proxied any;
        gzip_comp_level 5;
        gzip_buffers 16 8k;
        gzip_min_length    1k;
        gzip_vary on;
       
        gzip_types text/plain text/css image/gif image/jpeg image/png application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
        
        #下面这些定义缓存写入的地方
        proxy_temp_path /usr/local/nginx/cache/img_temp;
        proxy_cache_path /usr/local/nginxcache/img_cache levels=1:2 keys_zone=pic_cache:500m inactive=1d max_size=10g;

4、新建图片server

server {
        listen       80;
        server_name  img.xxxx.com;
        access_log  logs/pic.log;

        location / {
                proxy_cache pic_cache;
                proxy_cache_valid 200 304 24h;
                proxy_cache_key $host$uri$is_args$args;    #$host可不写 
                proxy_set_header Host  $host;              #可不要
                proxy_set_header X-Forwarded-For  $remote_addr;
                proxy_pass http://127.0.0.1:88;
                expires      1d;
        }
         location ~ /purge(/.*) {
                allow       all;
                deny    all;
                proxy_cache_purge    pic_cache   $host$1$is_args$args; #如果上面$host没有。此处就不要写$host
        }
    error_page   500 502 503 504  /50x.html;
    }

5、后端真实server

server {
        listen 88;
        server_name localhost;
        root /usr/local/nginx/html/;#定义图片存放位置

        location ~ .*.(gif|jpg|jpeg|png|bmp|swf|ico)$ {
                expires      1d;
                access_log logs/pic.log;  #随意写日志存放名称和地方
        }
}


6、配置成功后。访问img.xxxx.com/abc.jpg。查看日志输入信息。再次刷新网页查看,此次应该是从缓存中读取。(配置成功)