最近一直在研究mysql_proxy和spockproxy的源码,该写了spockproxy的代码,主要是为数据库的水平分布而开发的,第一阶段的任务已经完成了。今天下午完成了测试,顺便学习了c++。正好有时间看下nginx下如何使用proxy_cache及proxy_cache_purge模块。
1、passenger的安装 gem install passenger。
2、下载nginx,passenger目前集成的是nginx-0.8.53.
3、下载 ngx_cache_purge,记住这个解压后的目录为/opt/ngx_cache_purge下面会用。
4、编译为一下几个步骤
(a)、passenger-install-nginx-module
(b)、按照Enter继续。
(c)、 出现下面的画面,然后选择2,自定义编译Nginx。
(d)、等待下载完pcre,系统会让你选择nginx的源码的位置即为刚才解压的目录位置:/opt/nginx-0.8.53
(e)、选择nginx安装的目录,默认为/opt/nginx/,然后会出现如下的界面,然后输入脚本添加模块 --add-module='/opt/ngx_cache_purge' 这里是刚才nginx_cache_purge模块的地址。
(f)、这样一路enter就可以成功了。
-----------------------------------------------nginx 配置-------------------------------------------------------------------
下面看下自己的配置。
和书中不同,我把
location ~ /purge(/.*) {
proxy_cache_purge tmpcache $host$1$is_args$args;
allow all;
}
提到了location ~ .*/.(gif|jpg|jpeg|png|bmp|js|css)$ 前面。
看下我成果。
1、缓存后的目录,在config中通过proxy_cache_path设置为/opt/nginx/cache目录了。
2、清空缓存,输入http://124.126.42.12/purge/images/22x22/projects.png,清空
---这样nginx既可以支持passenger又可以支持proxy_cache了,这样之前的配置还可以使用,只需要添加写的proxy_cache模块及nginx_cache_purge的配置即可了。
---------------------------------------------------------------------------------------------------------------------------------------------------
参考资料
ngx_cache_purge源代码 :https://github.com/FRiCKLE/ngx_cache_purge/
nginx proxy_cache的模块介绍 :http://wiki.nginx.org/HttpProxyModule