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