Nginx读取Memcached实现页面内容缓存

jopen 11年前

应用场景:将页面的html代码内容缓存到Memcached中,通过Nginx直接连接并读取Memcached中的内容,来实现页面缓存

一、优势:

1,不再通过tomcat转发一次,速度更快(理论上应该会比以前的静态页面技术更快),资源占用更少,可实现,更少的服务器支持更多的PV

2,缓存过期后通过转到给tomcat处理,再写入缓存,由java程序控制主要业务逻辑。配置少灵活性非常高

3,Nginx配置简单

二、具体配置:

Nginx配置如下:

server {          listen   80;          server_name  www.nginx.com;              location / {     proxy_pass http://www.nginx.com/;          }        location ^~ /ddd/ {     set $memcached_key "$uri";     memcached_pass      127.0.0.1:11211;     memcached_connect_timeout 3s;     memcached_read_timeout 3s;     memcached_send_timeout 3s;        memcached_buffer_size 8k;     error_page   501 404 502 = /fallback$uri;    }        location /fallback/ {     internal;     proxy_pass          http://www.nginx.com/;    }          }

问题:

1,当增加Memcached服务器后需要修改Nginx配置文件

2,当有多个Memcached服务器时,nginx会根据key通过轮询方式依次查找每一个服务器,不知道这样速度会不会有影响。

参考:

http://f.souza.cc/2010/12/killer-java-applications-server-with.html