memc_nginx+srcache_nginx+memcached構建透明的動態頁面緩存

bwha7370 8年前發布 | 8K 次閱讀 Web服務器

來自: http://blog.csdn.net//jiao_fuyou/article/details/36630537


在上一節《nginx+memcached構建頁面緩存應用http://www.ttlsa.com/html/2418.html中,說道nginx只負責從memcached服務器中讀取數據,要往memcached寫入數據還得需要后臺的應用程序來完成。使用memc-nginx和srcache-nginx模塊就可以主動的向memcached添加緩存,對應用程序來說是透明的。大大的提高動態頁面訪問速度。第一次訪問創建緩存,后續訪問在緩存過期時間內,直接從memcached返回,不需要再次經過php-fpm處理。

nginx_memc模塊與nginx_srcache模塊配合使用,來提供緩存服務器后端的操作,在技術上,任何提供REST接口的模塊都可以與nginx_srcache配合使用來獲取和存儲緩存子請求。

使用memcached作為后端緩存,需要注意memcached存儲大小的限制,不得超過1M。為了使用更寬松的后端存儲服務,建議使用redis等,參見《srcache_nginx+redis構建緩存系統》。

1. memc-nginx-module模塊指令說明:
memc_pass
語法:memc_pass address:port or socket;
默認值:none
配置段:http, server, location, if
指定memcached服務器地址。

memc_cmds_allowed
語法:memc_cmds_allowed <cmd>…
默認值: none
配置段:http, server, location, if
列出允許訪問的memcached命令。默認情況下,所有的memcached命令都可以訪問。

memc_flags_to_last_modified
語法:memc_flags_to_last_modified on|off
默認值:off
配置段:http, server, location, if
讀取memcached標識,并將其設置為Last-Modified頭部值。對于有條件的get,nginx返回304未修改響應,以便節省帶寬。

memc_connect_timeout
語法:memc_connect_timeout <time>
默認值:60s
配置段: http, server, location
與memcached服務器建立連接的超時時間。不得超過597 hours。

memc_send_timeout
語法:memc_send_timeout <time>
默認值:60s
配置段:http, server, location
設置發送請求到memcached服務器的超時時間。不得超過597 hours。

memc_read_timeout
語法:memc_read_timeout <time>
默認值:60s
配置段:http, server, location
定義從memcached服務器讀取響應超時時間。不得超過597 hours。

memc_buffer_size
語法:memc_buffer_size <size>
默認值:4k/8k
配置段:http, server, location
讀取從memcached服務器接收到響應的緩沖大小。

2. memcached支持的命令
memcached存儲命令set、add、replace、prepend、append,以$memc_key作為鍵。$memc_exptime定義過期時間,默認值為0。$memc_flags作為標識,默認值為0,來建立相應的memcached查詢。
如果$memc_value沒有定義,那么請求的請求體將作為該值,除了incr和decr命令外。注意:如果$memc_value定義為空的字符串,那么該空字符串仍然被當做該值。
2.1 get $memc_key
使用鍵來檢索值。

location /foo {
set $memc_cmd 'get';
set

 本文由用戶 bwha7370 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!