Welcome! Log In Create A New Profile

Advanced

Problem with proxy cache misses

CJ Ess
February 29, 2016 02:04PM
Hello! I'm testing out a new configuration and there are two issues with
the proxy cacheing feature I'm getting stuck on.

1) Everything is a cache miss, and I'm not sure why:

My cache config (anonymized):

....
proxy_cache_path /var/www/test_cache levels=2:2 keys_zone=TEST:32m
inactive=365d max_size=16g loader_files=256;
....
upstream haproxy {
server 127.0.0.1:8080;
keepalive 256;
}
....
location ~ "^/[W][A-Za-z0-9_-]{7,13}$" {
limit_except GET {
deny all;
}
proxy_http_version 1.1;
proxy_set_header Connection "Close"; # Disable Keepalives
proxy_set_header Host "www.testhost.com"; # Upstream requires this
value
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_cache TEST;
proxy_cache_key $uri;
proxy_cache_valid 301 365d;
proxy_cache_valid 302 1d;
proxy_cache_lock on;
proxy_buffering off;
proxy_pass http://haproxy;
}
....

A sample response coming back from the upstream (captured with wireshark)

HTTP/1.1 301 Moved Permanently
Date: Mon, 29 Feb 2016 18:16:02 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
P3P: CP="some text"
X-Frame-Options: deny
Location: http://some.test.url/

0

The cache directory is owned by the nginx user, perms 0700.

I'm expecting the 301 in the example above to be cached for a year, but
nothing is created under /var/www/test_cache, and subsequent requests for
the same resources are also cache misses.

2) For each URL which doesn't match any of the location blocks, I am seeing
an error in the log file:

2016/02/29 13:55:20 [error] 19524#0: *1509121054 open()
"/var/www/html/W4ud7y1k4jjbj" failed (2: No such file or directory),
client: a.b.c.d, server:test.com, request: "HEAD /W4ud7y1k4jjbj HTTP/1.1",
host: "test.com"

There is a "root /var/www/html" defined in the http block, although there
is only one specific location which uses it:

location = /apple-app-site-association {
default_type application/pkcs7-mime;
break;
}

And the final location block in my server config is:

location = / {
rewrite ^ https://www.someother.test.com/ permanent;
break;
}

So my expectation is that since the request matches none of the location
blocks, nginx will just issue a 404 response. However from the error log,
it looks like it is trying the root directory first before issuing the 404.
Is there some way to prevent that?
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Subject Author Posted

Problem with proxy cache misses

CJ Ess February 29, 2016 02:04PM

Re: Problem with proxy cache misses

unclepieman February 29, 2016 02:16PM

Re: Problem with proxy cache misses

CJ Ess February 29, 2016 03:22PM

Re: Problem with proxy cache misses

wandenberg February 29, 2016 03:34PM

Re: Problem with proxy cache misses

CJ Ess February 29, 2016 05:02PM

Solution - Re: Problem with proxy cache misses

CJ Ess February 29, 2016 06:32PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 314
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