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