Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1611982
  • 博文数量: 104
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 4631
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-11 10:57
个人简介

欢迎关注:https://zhangdd.com

文章分类

全部博文(104)

文章存档

2018年(9)

2016年(4)

2015年(23)

2014年(54)

2013年(14)

分类: 系统运维

2015-09-23 09:55:02

这里主要分享下centos环境nginx搭建图片服务器的过程以及遇到错误解决方法
一.nginx安装
这里需要用到ngx_cache_purge模块建议采用源码编译方式安装
1.安装pcre
下载pcre安装包
然后 ./configure
make&make install
2.下载需要用的模块及nginx安装包
nginx-1.4.7 下载地址: ./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配置文件的位置需要在缓存文件具体配置之前否则会报错。

三.测试
长传几张图片测试查看响应头信息


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).缓存文件夹权限设置。


阅读(3663) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~