在《memc_nginx+srcache_nginx+memcached构建透明的动态页面缓存》一文中,我们使用到memcached来作为缓存载体。想必大家都知道memcached有存储大小的限制,不得超过1M。 本文将使用redis来作为缓存载体。nginx的srcache_nginx模块指令参数解释参见《memc_nginx+srcache_nginx+memcached构建透明的动态页面缓存》。
1. nginx模块
1
2
3
4
5
|
--add-module=../modules/ngx_devel_kit-0.2.18
--add-module=../modules/set-misc-nginx-module-0.22rc8
--add-module=../modules/srcache-nginx-module-0.22
--add-module=../modules/redis-nginx-module-0.3.6
--add-module=../modules/redis2-nginx-module-0.10
|
nginx模块安装参见ttlsa.com中相关文档。
2. redis安装配置
安装步骤参见:http://www.ttlsa.com/html/1646.html
配置参数解释参见:http://www.ttlsa.com/html/1226.html
配置实例:
# vim redis.conf
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
|
daemonize yes
pidfile/var/run/redis-6379.pid
port6379
bind127.0.0.1
timeout0
tcp-keepalive0
loglevel notice
logfile stdout
databases16
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
slave-serve-stale-data yes
slave-read-only yes
repl-disable-tcp-nodelay no
slave-priority100
maxmemory8096mb
maxmemory-policy volatile-ttl
appendonly no
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage100
auto-aof-rewrite-min-size64mb
lua-time-limit5000
slowlog-log-slower-than10000
slowlog-max-len128
hash-max-ziplist-entries512
hash-max-ziplist-value64
list-max-ziplist-entries512
list-max-ziplist-value64
set-max-intset-entries512
zset-max-ziplist-entries128
zset-max-ziplist-value64
activerehashing yes
client-output-buffer-limit normal000
client-output-buffer-limit slave256mb64mb60
client-output-buffer-limit pubsub32mb8mb60
hz10
aof-rewrite-incremental-fsync yes
|
由于只把redis当做缓存使用,因此没有启用持久化。
3. nginx配置
# vim nginx.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
http
{
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" '
'"$gzip_ratio" $request_time $bytes_sent $request_length';
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]';
set_real_ip_from10.0.0.0/8;
real_ip_headerX-Forwarded-For;
include vhosts/test.ttlsa.com.conf;
}
|
# vim vhosts/test.ttlsa.com.conf
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
|
upstreamredis{
server127.0.0.1:6379;
keepalive512;
}
server
{
listen 80;
server_name test.ttlsa.com;
index index.html index.htm index.php;
root /data/test.ttlsa.com/webroot;
location~.*\.php{
srcache_store_private on;
srcache_methods GET;
srcache_response_cache_control off;
if($uri~/ttlsa.com/pp.php$){
set$key$request_uri;
set_escape_uri$escaped_key$key;
srcache_fetch GET/redis$key;
srcache_default_expire172800;
srcache_store PUT/redis2 key=$escaped_key&exptime=$srcache_expire;
#add_header X-Cached-From $srcache_fetch_status;
#set_md5 $md5key $key;
#add_header X-md5-key $md5key;
#add_header X-Cached-Store $srcache_store_status;
#add_header X-Key $key;
#add_header X-Query_String $query_string;
#add_header X-expire $srcache_expire;
access_log/data/httplogs/test.ttlsa.com-photo-access.log srcache_log;
}
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_connect_timeout60;
fastcgi_send_timeout180;
fastcgi_read_timeout180;
fastcgi_buffer_size128k;
fastcgi_buffers4256k;
fastcgi_busy_buffers_size256k;
fastcgi_temp_file_write_size256k;
fastcgi_intercept_errors on;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_split_path_info^(.+\.php)(.*)$;
fastcgi_param PATH_INFO$fastcgi_path_info;
}
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;
}
error_log /data/httplogs/test.ttlsa.com-error.log;
access_log /data/httplogs/test.ttlsa.com-aceess.log main;
}
|
相关推荐
lnrp_docker__安装_linux_+_nginx_+_redis_+_php_lnrp
在构建高性能、高可用性的Web服务时,"Nginx+Tomcat+Redis"的组合是一种常见的架构模式。这个架构充分利用了每个组件的优势,以实现高效的数据处理、动态内容渲染和负载均衡。以下是对这套技术栈的详细解释: 1. **...
本资源包“nginx+lua+redis集群 连接插件和脚本”正是为了解决这三者之间的协同工作,特别是针对原插件没有密码功能的问题进行了改进,使得安全性得到了提升。 首先,Nginx是一款轻量级的Web服务器/反向代理服务器...
包含的jar包如下: commons-pool2-2.0.jar jedis-2.5.2.jar tomcat-juli-adapters.jar tomcat-juli.jar tomcat-redis-session-manager1.2.jar
SpringBoot+VUE+Redis+nginx 网上拍卖平台源码 SpringBoot+VUE+Redis+nginx 网上拍卖平台源码 SpringBoot+VUE+Redis+nginx 网上拍卖平台源码 SpringBoot+VUE+Redis+nginx 网上拍卖平台源码 SpringBoot+...
基于 springboot+mybatis_+shiro + redis+activiti+quarts+quartz+vue 写的一个前后分离办公企业管理系统 ,通用服务端,用于学习。 使用技术 服务端: springboot(2.2.1) + mybatis-push + shiro(1.4.0) + redis +...
在本文中,我们将探讨如何使用Nginx配置srcache_nginx模块与Redis来建立一个高效的缓存系统。首先,让我们了解这两个关键组件的作用。 Nginx是一款高性能的HTTP和反向代理服务器,它以其轻量级、稳定性和高并发处理...
这个小例子"nginx+tomcat+redis完成session共享"旨在演示如何通过这三种技术实现跨服务器的用户会话共享,以提升用户体验并简化系统管理。以下是这些技术及其在会话共享中的作用: 1. **Nginx**:Nginx是一款高性能...
在构建高性能、高可用的Web服务时,"nginx+redis负载均衡、session共享"是一个常见的解决方案。这个方案结合了Nginx的反向代理和负载均衡能力,以及Redis的内存数据存储和分布式特性,用于处理高并发场景下的HTTP...
nginx+lua+redis通过匹配客户端ip进行灰度发布 本文将讲述如何使用nginx、lua和redis来实现灰度发布,通过匹配客户端IP来实现灰度发布。灰度发布是一种常见的软件发布方式,它允许开发者在生产环境中发布新的版本,...
在IT行业中,构建高效、可扩展的Web服务是至关重要的,而"nginx+redis+tomcat"的组合正是一种常见的解决方案。这个配置涉及到负载均衡、会话管理以及高可用性等多个核心知识点,让我们深入探讨一下。 1. **Nginx...
这个压缩包包含了"keepalived+nginx+tomcat+redis+mysql"所需的基础组件,特别是Java Development Kit(JDK)。下面我们将详细探讨这些组件及其在IT领域的应用。 首先,JDK是Java编程语言的基石,它提供了编译、...
本文将深入探讨如何利用`nginx+lua+redis`来实现`token`验证,以确保只有经过授权的用户才能访问受保护的资源。 首先,让我们理解`token`验证的基本原理。`token`验证是一种身份验证机制,它允许客户端通过提供一个...
基于nginx tcp负载均衡 + redis的集群聊天服务器,网络层使用muduo库搭建,数据库使用MySQL 基于nginx tcp负载均衡 + redis的集群聊天服务器,网络层使用muduo库搭建,数据库使用MySQL 基于nginx tcp负载均衡 + ...
### Web环境搭建:Linux+Nginx+PHP+MySQL+Redis #### 一、环境概述与推荐版本 在构建一个高效且稳定的商城系统时,选择合适的Web环境至关重要。本指南将介绍一套广泛应用于电商平台的技术栈——**Ubuntu + PHP + ...
《国产中标麒麟操作系统Nginx+Tomcat+Redis集群安装部署手册》是针对在中标麒麟操作系统上搭建Web服务环境的详细指南。这份手册由东软集团股份有限公司于2019年12月编撰,旨在解决在实际部署过程中可能出现的各种...
国产中标麒麟操作系统nginx+tomcat+redis+mysql安装部署手册(CSDN).zip
在IT行业中,构建高效、可扩展的Web服务是至关重要的,而"nginx+redis实现session共享"的主题就涉及到了这一核心需求。为了实现单点登录(Single Sign-On, SSO)以及跨应用的session共享,我们可以结合使用Nginx作为...
在构建高性能、高可用性的Web服务时,"Nginx+Tomcat+Redis"的组合是一种常见的架构模式。这个架构利用Nginx作为反向代理和负载均衡器,Tomcat作为Java应用服务器处理业务逻辑,而Redis则用作缓存系统以提升数据访问...
【描述】中提到的"tomcat+nginx+Redis集成demotomcat+nginx+Redis集成demo"可能是指一个示例项目,演示了如何将这三个工具集成到一起,以实现负载均衡、静态资源处理和高速缓存等功能。这种集成通常用于大型、高流量...