rails應用在passenger + nginx服務器下使用proxy_cache及proxy_cache_purge模塊的方法

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

發佈了54 篇原創文章 · 獲贊 12 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章