nginx图片服务器配置proxy_cache及purge错误解决方法

这里主要分享下centos环境nginx搭建图片服务器的过程以及遇到错误解决方法
一.nginx安装
这里需要用到ngx_cache_purge模块建议采用源码编译方式安装
1.安装pcre
下载pcre安装包
然后 ./configure
make&make install
2.下载需要用的模块及nginx安装包
nginx-1.4.7 下载地址: http://nginx.org/en/download.html#

nginx清除缓存模块 ngx_cache_purge-2.1 http://labs.frickle.com/nginx_ngx_cache_purge/

pcre下载地址:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

解压安装至/usr/local/src

./configure --prefix=/usr/local/nginx --add-module=/usr/local/src/ngx_cache_purge-2.3 --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.36


安装至此结束,还是比较简单的 
二.下面主要说下nginx的配置
这里主要说下缓存模块配置 及图片缓存配置

点击(此处)折叠或打开

  1. proxy_connect_timeout 500;
  2.     proxy_read_timeout 600;
  3.     proxy_send_timeout 500;
  4.     proxy_buffer_size 16k;
  5.     proxy_buffers 4 64k;
  6.     proxy_busy_buffers_size 128k;
  7.     proxy_temp_file_write_size 128k;
  8.     proxy_temp_path /usr/local/nginx/temp;
  9.     proxy_cache_path /usr/local/nginx/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=10g;

点击(此处)折叠或打开

  1. location ~ /purge(/.*)
  2.          {
  3.             proxy_cache_purge cache_one $host$1$is_args$args;
  4.             allow all;
  5.             }

  6.        location ~.*\.(gif|jpg|png|jpeg|bmp|swf|html)$ 
  7.             {
  8.               proxy_pass http://my_server; ##my_server为后端服务器地址
  9.               proxy_redirect off;
  10.               proxy_set_header Host $host;
  11.               proxy_cache cache_one;
  12.               proxy_cache_valid 200 302 12h;
  13.               proxy_cache_valid 301 1d;
  14.               proxy_cache_valid any 1m;
  15.               add_header X-Cache '$upstream_cache_status ';
  16.               proxy_cache_key $host$uri$is_args$args;  ##   这个设置比较重要否则会报404
  17.               expires 30d;
  18. }
这里需要强调下purge配置文件的位置需要在缓存文件具体配置之前否则会报错。

三.测试
长传几张图片测试查看响应头信息
nginx图片服务器配置proxy_cache及purge错误解决方法

url加入purge测试清理缓存
nginx图片服务器配置proxy_cache及purge错误解决方法

四.遇到问题及解决方法
1.purge404错误
解决404错误主要是注意以下几点:

(1). location ~ /purge(/.*)  不能放在最前面,也不能放在最后面,同时也必须放在缓存内容配置之前,比如:location ~ .*.(html|js|css|jpg|gif|swf|png)$

(2). proxy_cache_purge 中的cache_name 和 $host$1$is_args$args 与 location ~ .*.(html|js|css|jpg|gif|swf|png)$  中定义proxy_cache_key 一致,同时cache_name就是http块中定义的缓存名称。
2.purge403错误
(1).purge模块配置文件里allow ip地址及deny设置是否正确。
(2).缓存文件夹权限设置。


上一篇:Openstack 安装部署指南翻译系列 之 Keystone服务安装(Identity)


下一篇:sshpass:一个很棒的免交互 SSH 登录工具,但不要用在生产服务器上