rails应用在passenger + nginx服务器下使用proxy_cache及proxy_cache_purge模块的方法

来源:互联网 发布:svm算法有哪些变体 编辑:程序博客网 时间:2024/05/22 22:49

    最近一直在研究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

passenger-install-nginx-module

  (b)、按照Enter继续。

 

  (c)、 出现下面的画面,然后选择2,自定义编译Nginx。选择2 自定义安装nginx

  (d)、等待下载完pcre,系统会让你选择nginx的源码的位置即为刚才解压的目录位置:/opt/nginx-0.8.53

等待下载完pcre,然后输入nginx的文件夹

 

(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目录了。

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

原创粉丝点击