nginx 0.7.64 ignoring Cache-Control headers

Maxim Dounin mdounin at mdounin.ru
Sun Feb 7 01:25:22 MSK 2010


Hello!

On Sat, Feb 06, 2010 at 05:10:53PM -0500, Kura wrote:

> Hey guys, I apologise if this is covered in another topic, I 
> have searched many pages on the forum and not come across this 
> issue.
> 
> I'm using nginx v. 0.7.64 with the following: --with-debug 
> --with-http_stub_status_module --with-http_flv_module 
> --with-http_ssl_module --with-http_dav_module 
> --with-http_gzip_static_module --with-mail 
> --with-mail_ssl_module --with-ipv6

[...]

> And placed several test PHP files in to the host directory with 
> different Cache-Control headers
> 
> 1.php
> <?
> header("Cache-Control: private,max-age=0");
> echo "test";
> ?>
> 
> 2.php
> <?
> header("Cache-Control: public,max-age=3600");
> echo "test";
> ?>
> 
> When I access both files with Firefox and inspect their headers 
> using Live HTTP Headers I can see that the correct Cache-Control 
> headers are there, yet nginx is ignoring them and caching both 
> files.
> 
> Am I missing a module or a patch? I was advised in another post 
> that this was one of the ways to control which files nginx 
> actually cached and this seemed like the best approach to it.

nginx honors "max-age=" and "no-cache" directives from 
Cache-Control header.

But there is a bug in 0.7.64 with parsing Cache-Control with 
multiple directives, it was fixed in 0.8.20 and bugfix was merged 
into 0.7.65:

    *) Bugfix: nginx did not treat a comma as separator in the 
       "Cache-Control" backend response header line.

Please upgrade.

Maxim Dounin



More information about the nginx mailing list