- A+
所属分类:Nginx
srcache_nginx模块相关参数介绍,可以参见《memc_nginx+srcache_nginx+memcached构建透明的动态页面缓存》。 redis是一种高效的key-value存储。
下面举一例应用,看配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
upstream redis { server 127.0.0.1:6380; keepalive 512; } server { listen 80 backlog=1024 default; server_name www.ttlsa.com; index index.html index.htm index.php; root /data/wwwroot/www.ttlsa.com/webroot; location / { set $flag 0; if ($uri ~ /thumb/[0-9]+_160.jpg$){ set $flag "${flag}1"; } if ($arg_unitid = 42012){ set $flag "${flag}1"; } if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?kohana_uri=$1 last; } } location ~ .*\.php?$ { srcache_store_private on; srcache_methods GET; srcache_response_cache_control off; if ($flag = "011"){ set $key $request_uri; set_escape_uri $escaped_key $key; srcache_fetch GET /redis $key; srcache_default_expire 172800; srcache_store PUT /redis2 key=$escaped_key&exptime=$srcache_expire; add_header X-flag $flag; add_header X-Cached-From $srcache_fetch_status; add_header X-Cached-Store $srcache_store_status; add_header X-Key $key; set_md5 $md5key $key; add_header X-md5-key $md5key; add_header X-Query_String $query_string; add_header X-expire $srcache_expire; } include fastcgi_params; fastcgi_pass 127.0.0.1:10080; fastcgi_index index.php; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_intercept_errors on; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location = /redis { internal; set_md5 $redis_key $args; redis_pass redis; } location = /redis2 { internal; set_unescape_uri $exptime $arg_exptime; set_unescape_uri $key $arg_key; set_md5 $key; redis2_query set $key $echo_request_body; redis2_query expire $key $exptime; redis2_pass redis; } } |
测试:
redis实例下:
可以记录下日志来测试加缓存前后的耗时。日志格式如下:
1 2 3 |
log_format srcache_log '$remote_addr - $remote_user [$time_local] "$request" ' '"$status" $body_bytes_sent $request_time $bytes_sent $request_length ' '[$upstream_response_time] [$srcache_fetch_status] [$srcache_store_status] [$srcache_expire]'; |
转载请注明来自运维生存时间: http://www.ttlsa.com/html/3952.html

微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
25/12/2015 上午 11:37 沙发
文章很不错,很赞。
01/08/2015 上午 10:40 板凳
[…] 02.?srcache_nginx redis 构建缓存系统应用一例 03.?nginx+lua+redis构建高并发应用 04.?ttserver+nginx构建高并发高可用性应用 […]
05/02/2015 下午 8:29 地板
这个是不是还需要一个redis模块?
来自外部的引用: 3