memcached not caching
Ezra Zygmuntowicz
ezmobius at gmail.com
Fri Dec 4 02:53:45 MSK 2009
On Dec 3, 2009, at 2:37 PM, rhjheins wrote:
> Currently I am testing nginx as a reverse-proxy/load ballencer and
> the basic setup is working perfect. But memcached is not caching any
> content
>
> System: Ubuntu 9.10 server with nginx (from ubuntu repository) and
> memcached (from ubuntu repository)
>
> I have three backend server presumed named server1, server2, server
> 3 and the nginx server is called nginx_test
> My nginx.conf:
>
> user www-data;
> worker_processes 2;
>
> error_log /var/log/nginx/error.log;
> pid /var/run/nginx.pid;
>
> events {
> worker_connections 1024;
> use epoll;
> }
>
> http {
> include /etc/nginx/mime.types;
> default_type application/octet-stream;
> access_log /var/log/nginx/access.log;
> sendfile on;
> server_tokens off;
> upstream cluster {
> server server1 ip addr weight=1
> server server2 ip addr weight=1;
> server server3 ip addr weight=1;
> }
> server {
> listen nginxserver ip addr:80;
> server_name nginx_test;
> location / {
> expires max;
> set $memcached_key $uri;
> default_type text/html;
> memcached_pass localhost:11211;
> error_page 404 502 = @cache_miss;
> }
> location @cache_miss {
> proxy_pass http://cluster;
> proxy_redirect off;
> proxy_set_header Host $host;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For
> $proxy_add_x_forwarded_for;
> proxy_buffers 8 32k;
> }
> # requesting nginx status
> location /nginx_status {
> stub_status on;
> access_log off;
> allow all;
> }
> }
> #gzip
> gzip on;
> gzip_http_version 1.0;
> gzip_min_length 1000;
> gzip_buffers 16 8k;
> gzip_comp_level 5;
> gzip_proxied any;
> gzip_types text/plain text/css application/javascript
> text/javascript text/xml application/x-javascript;
> gzip_disable "MSIE [1-6]\.(?!.*SV1)";
> }
>
>
> restarting nginx gives no faults and when using the reverse_proxy
> everything works but the memcached part is not resulting in faster
> loading of the pages. when I telnet into memcached en give the
> command stats it shows no cached objects:
>
> Connected to 127.0.0.1.
> Escape character is '^]'.
> stats
> STAT pid 11415
> STAT uptime 1725
> STAT time 1259879709
> STAT version 1.2.8
> STAT pointer_size 32
> STAT rusage_user 0.008000
> STAT rusage_system 0.024001
> STAT curr_items 0
> STAT total_items 0
> STAT bytes 0
> STAT curr_connections 5
> STAT total_connections 217
> STAT connection_structures 8
> STAT cmd_flush 0
> STAT cmd_get 210
> STAT cmd_set 0
> STAT get_hits 0
> STAT get_misses 210
> STAT evictions 0
> STAT bytes_read 5947
> STAT bytes_written 1588
> STAT limit_maxbytes 171966464
> STAT threads 5
> STAT accepting_conns 1
> STAT listen_disabled_num 0
>
>
> Anny suggestions???
The nginx memcached modules does not actually ever put anything in
the cache for you. Your backend processes are responsible for
populating the cache, nginx will just serve from memcached if an item
already exists at that key.
Cheers-
Ezra Zygmuntowicz
ez at engineyard.com
More information about the nginx
mailing list