Welcome! Log In Create A New Profile

Advanced

Nginx doesn't cache as expected

August 21, 2009 06:27AM
Hi, I'm using nginx as a reverse proxy and I'd like to locally cache files to serve them rather than pass the request to backend servers.
I'm using FreeBSD 7.0 i386 and nginx-0.7.61_1.

I'm using this configuration block:

upstream 1_2_4_backend {
server 172.16.7.121:80;
server 172.16.7.122:80;
server 172.16.7.124:80;
}

server {
server_name blog.leiweb.it;
listen 172.16.7.130:80;
access_log /var/log/nginx/blog_leiweb.log;

location / {
proxy_redirect off;
proxy_pass http://1_2_4_backend;
proxy_store_access user:rw group:rw all:r;
proxy_temp_path /usr/local/tmp;
proxy_store /usr/local/www_ng/$uri#;
proxy_cache_valid 200 10m;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

/usr/local/www_ng/ is populated but if I request a file (http://blog.leiweb.it/moda/files/2009/08/big_20090716_raphaelyoung2-460x304.jpg) I see the request always being redirected to backend servers also if /usr/local/www_ng/moda/files/2009/08/big_20090716_raphaelyoung2-460x304.jpg# is present (yes, I copied moda/files/2009/08/big_20090716_raphaelyoung2-460x304.jpg# to moda/files/2009/08/big_20090716_raphaelyoung2-460x304.jpg to see if it was a '#' problem, but nginx had the same behaviour).

Here the header content while grabbing that url using curl:

From a backend server:
davide:~ dave$ curl -L -v http://blog.leiweb.it/moda/files/2009/08/big_20090716_raphaelyoung2-460x304.jpg
* About to connect() to blog.leiweb.it port 80 (#0)
* Trying 172.16.7.124... connected
* Connected to blog.leiweb.it (172.16.7.124) port 80 (#0)
> GET /moda/files/2009/08/big_20090716_raphaelyoung2-460x304.jpg HTTP/1.1
> User-Agent: curl/7.16.3 (powerpc-apple-darwin9.0) libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
> Host: blog.leiweb.it
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Fri, 21 Aug 2009 10:24:45 GMT
< Server: Apache
< X-Powered-By: PHP/5.2.6
< Content-Length: 25319
< Last-Modified: Fri, 07 Aug 2009 15:35:08 GMT
< ETag: "d53c497dc843b21b709173cfebffc07b"
< Expires: Sun, 21 Oct 2012 20:11:25 GMT
< X-tmt: D=37410 t=1250850285373708 | Q
< Connection: close
< Content-Type: image/jpeg
<
????JFIF??;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 90

-----------------------------------------------------------
From nginx:
davide:~ dave$ curl -L -v http://blog.leiweb.it/moda/files/2009/08/big_20090716_raphaelyoung2-460x304.jpg
* About to connect() to blog.leiweb.it port 80 (#0)
* Trying 213.92.90.43... connected
* Connected to blog.leiweb.it (213.92.90.43) port 80 (#0)
> GET /moda/files/2009/08/big_20090716_raphaelyoung2-460x304.jpg HTTP/1.1
> User-Agent: curl/7.16.3 (powerpc-apple-darwin9.0) libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
> Host: blog.leiweb.it
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: nginx/0.7.61
< Date: Fri, 21 Aug 2009 10:25:17 GMT
< Content-Type: image/jpeg
< Connection: keep-alive
< X-Powered-By: PHP/5.2.6
< Content-Length: 25319
< Last-Modified: Fri, 07 Aug 2009 15:35:08 GMT
< ETag: "d53c497dc843b21b709173cfebffc07b"
< Expires: Sun, 21 Oct 2012 20:11:57 GMT
< X-tmt: D=40133 t=1250850317805289 | U
<
????JFIF??;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 90

Thanks in advance,
d.
Subject Author Posted

Nginx doesn't cache as expected

davide.damico August 21, 2009 06:27AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 202
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready