首页 > 网站 > Nginx > 正文

Nginx配置srcache_nginx模块搭配Redis建立缓存系统

2024-08-30 12:26:17
字体:
来源:转载
供稿:网友

1. nginx模块

--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

2. redis安装配置

# vim redis.conf
daemonize yespidfile /var/run/redis-6379.pidport 6379bind 127.0.0.1timeout 0tcp-keepalive 0loglevel noticelogfile stdoutdatabases 16stop-writes-on-bgsave-error yesrdbcompression yesrdbchecksum yesdbfilename dump.rdbslave-serve-stale-data yesslave-read-only yesrepl-disable-tcp-nodelay noslave-priority 100maxmemory 8096mbmaxmemory-policy volatile-ttlappendonly noappendfsync everysecno-appendfsync-on-rewrite noauto-aof-rewrite-percentage 100auto-aof-rewrite-min-size 64mblua-time-limit 5000slowlog-log-slower-than 10000slowlog-max-len 128hash-max-ziplist-entries 512hash-max-ziplist-value 64list-max-ziplist-entries 512list-max-ziplist-value 64set-max-intset-entries 512zset-max-ziplist-entries 128zset-max-ziplist-value 64activerehashing yesclient-output-buffer-limit normal 0 0 0client-output-buffer-limit slave 256mb 64mb 60client-output-buffer-limit pubsub 32mb 8mb 60hz 10aof-rewrite-incremental-fsync yes

由于只把redis当做缓存使用,因此没有启用持久化。

3. nginx配置

# vim nginx.conf
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_from 10.0.0.0/8;    real_ip_header X-Forwarded-For;     include     vhosts/test.Vevb.com.conf;}
# vim vhosts/test.Vevb.com.conf
upstream redis {    server 127.0.0.1:6379;    keepalive 512;} server    {    listen    80;    server_name test.Vevb.com;    index index.html index.htm index.php;    root /data/test.Vevb.com/webroot;     location ~ .*/.php {        srcache_store_private on;        srcache_methods GET;        srcache_response_cache_control off;         if ($uri ~ /Vevb.com/pp.php$){            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-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.Vevb.com-photo-access.log srcache_log;        }         include fastcgi_params;        fastcgi_pass 127.0.0.1:9000;        fastcgi_index index.php;        fastcgi_connect_timeout 60;        fastcgi_send_timeout 180;        fastcgi_read_timeout 180;        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;        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.Vevb.com-error.log;    access_log /data/httplogs/test.Vevb.com-aceess.log main; }            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表