srcache_nginx模块相关参数介绍,可以参见《memc_nginx+srcache_nginx+memcached构建透明的动态页面缓存》。 redis是一种高效的key-value存储。
下面举一例应用,看配置:文章源自运维生存时间-https://www.ttlsa.com/nginx/to-build-an-application-cache-system-of-srcache_nginx-redis/
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; } }
测试:文章源自运维生存时间-https://www.ttlsa.com/nginx/to-build-an-application-cache-system-of-srcache_nginx-redis/
文章源自运维生存时间-https://www.ttlsa.com/nginx/to-build-an-application-cache-system-of-srcache_nginx-redis/
redis实例下:文章源自运维生存时间-https://www.ttlsa.com/nginx/to-build-an-application-cache-system-of-srcache_nginx-redis/
文章源自运维生存时间-https://www.ttlsa.com/nginx/to-build-an-application-cache-system-of-srcache_nginx-redis/
可以记录下日志来测试加缓存前后的耗时。日志格式如下:文章源自运维生存时间-https://www.ttlsa.com/nginx/to-build-an-application-cache-system-of-srcache_nginx-redis/
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]';
转载请注明来自运维生存时间: https://www.ttlsa.com/html/3952.html文章源自运维生存时间-https://www.ttlsa.com/nginx/to-build-an-application-cache-system-of-srcache_nginx-redis/ 文章源自运维生存时间-https://www.ttlsa.com/nginx/to-build-an-application-cache-system-of-srcache_nginx-redis/
3F
文章很不错,很赞。
2F
[…] 02.?srcache_nginx redis 构建缓存系统应用一例 03.?nginx+lua+redis构建高并发应用 04.?ttserver+nginx构建高并发高可用性应用 […]
1F
这个是不是还需要一个redis模块?
来自外部的引用