Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have mostly simple nginx configuration. I can't get caching to work

http {
...
server_tokens                   off;
proxy_hide_header               X-Powered-By;
fastcgi_hide_header             X-Powered-By;
client_header_timeout           1024;
client_body_timeout             1024;
send_timeout                    9000;
proxy_read_timeout              4000;
connection_pool_size            256;
client_header_buffer_size       1k;
client_max_body_size            10m;
large_client_header_buffers     2 4k;
request_pool_size               4k;
proxy_buffers                   8 32k;
proxy_buffering                 off;
proxy_buffer_size               32k;
server_names_hash_bucket_size   64;
output_buffers                  3 16k;
postpone_output                 1460;
sendfile                        off;
tcp_nopush                      on;
tcp_nodelay                     on;
keepalive_timeout               30 100;
ignore_invalid_headers          off;
log_format custom '$host $uri $remote_addr [$time_local] $status $bytes_sent [$request]';

proxy_cache_path /var/cache/nginx/cache levels=1:2 keys_zone=melco:500m inactive=15m max_size=1000m;
proxy_temp_path /var/cache/nginx/temp;
...

server {
.....
location = /rss.php {
    access_log /var/log/nginx/rss.php.log custom;
    proxy_cache melco;
    proxy_cache_key "$host$request_uri$args";
    proxy_ignore_headers "Cache-Control" "Expires";
    proxy_cache_min_uses 1;
    proxy_cache_valid 200 302 304 5m;
    proxy_cache_use_stale http_502 http_503 http_504;
    proxy_hide_header Set-Cookie;

    proxy_pass  http://192.168.10.102;
    proxy_redirect     off;
    proxy_set_header    X-Forwarded-For       $remote_addr;
    proxy_set_header   Host             $host;
}
...

headers are:

# curl -I http://mysite.com/rss.php
HTTP/1.1 200 OK
Server: nginx
Date: Sun, 10 Apr 2011 15:45:54 GMT
Content-Type: text/xml; charset=windows-1251
Connection: keep-alive
Keep-Alive: timeout=100
X-Powered-By: PHP/5.3.3-7+squeeze1
Pragma: no-cache
Generator: Nucleus CMS
Etag: "f263dc8eb016ffcb6d34b317b8d5a315"
Vary: Accept-Encoding

I can see requests in /var/log/nginx/rss.php.log but /var/cache/nginx/cache is always empty Permissions on /var/cache/nginx/cache set to www-data:www-data (nginx user:group). Any ides? Also how to see in access log if request was from cache?

P.S. nginx ver:

# nginx -V
nginx version: nginx/0.7.67
TLS SNI support enabled
configure arguments: --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-debug --with-http_dav_module --with-http_flv_module --with-http_geoip_module --with-http_gzip_static_module --with-http_realip_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-ipv6 --with-mail --with-mail_ssl_module --add-module=/tmp/buildd/nginx-0.7.67/modules/nginx-upstream-fair
share|improve this question

1 Answer 1

It's all because of

proxy_buffering                 off;

Needs to be on for caching

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.