srcache_nginx redis 构建缓存系统应用一例
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
收 藏
成长的对话版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!