这里主要分享下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#
解压安装至/usr/local/src
安装至此结束,还是比较简单的
二.下面主要说下nginx的配置
这里主要说下缓存模块配置 及图片缓存配置
这里需要强调下purge配置文件的位置需要在缓存文件具体配置之前否则会报错。
三.测试
长传几张图片测试查看响应头信息
url加入purge测试清理缓存
四.遇到问题及解决方法
1.purge404错误
解决404错误主要是注意以下几点:
一.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/
解压安装至/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的配置
这里主要说下缓存模块配置 及图片缓存配置
点击(此处)折叠或打开
- proxy_connect_timeout 500;
- proxy_read_timeout 600;
- proxy_send_timeout 500;
- 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/temp;
- proxy_cache_path /usr/local/nginx/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=10g;
点击(此处)折叠或打开
- location ~ /purge(/.*)
- {
- proxy_cache_purge cache_one $host$1$is_args$args;
- allow all;
- }
-
- location ~.*\.(gif|jpg|png|jpeg|bmp|swf|html)$
- {
- proxy_pass http://my_server; ##my_server为后端服务器地址
- proxy_redirect off;
- proxy_set_header Host $host;
- proxy_cache cache_one;
- proxy_cache_valid 200 302 12h;
- proxy_cache_valid 301 1d;
- proxy_cache_valid any 1m;
- add_header X-Cache '$upstream_cache_status ';
- proxy_cache_key $host$uri$is_args$args; ## 这个设置比较重要否则会报404
- expires 30d;
- }
三.测试
长传几张图片测试查看响应头信息
url加入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).缓存文件夹权限设置。