nginx serving wrong website under proxy_cache
Igor Sysoev
is at rambler-co.ru
Wed Apr 29 10:44:50 MSD 2009
On Tue, Apr 28, 2009 at 11:40:03PM -0700, Payam Chychi wrote:
> 2009/4/28 Igor Sysoev <is at rambler-co.ru>:
> > On Tue, Apr 28, 2009 at 07:27:00PM -0700, Payam Chychi wrote:
> >
> >> hey guys,
> >>
> >> So I had 3 sites configured to use caching on my nginx box (tried with
> >> .50, 52 and 53 build) however of the three websites kept redirecting
> >> me to the first site that I was doing caching for.
> >>
> >> Example Sites:
> >> 0.0.0.1
> >> 0.0.0.2
> >> 0.0.0.3
> >>
> >> HTTP config very similar to this only each utilize a different
> >> "listen" ip address and each site has a different Backend 'Origin" ip:
> >>
> >> # HTTP LB
> >> upstream LB_HTTP_0.0.0.1 {
> >> server x.x.x.x:80;
> >> }
> >>
> >> server {
> >>
> >> listen 0.0.0.1:80;
> >> server_name website_0.0.0.1;
> >>
> >> access_log /var/log/nginx/any.website_0.0.0.1.access_log main;
> >> error_log /var/log/nginx/any.website_0.0.0.1.error_log info;
> >>
> >> error_page 404 /404.html;
> >> location = /404.html {
> >> root html;
> >> }
> >> error_page 404 500 502 503 504 /50x.html;
> >> location = /50x.html {
> >> root html;
> >> }
> >>
> >> location / {
> >> proxy_intercept_errors on;
> >> proxy_pass http://LB_HTTP_0.0.0.1;
> >> proxy_cache one;
> >> proxy_cache_key backend$request_uri;
> >
> > Do you have the same
> >
> > proxy_cache_key backend$request_uri;
> >
> > for all three sites ? You need something like this:
> >
> > proxy_cache_key 0.0.0.1$request_uri;
> >
> > Or you may create several caches:
> >
> > proxy_path /path/to/cache1 keys_zone=cache1:10m;
> >
> >> proxy_cache_valid 200 1h;
> >> proxy_cache_valid 404 5m;
> >> proxy_cache_use_stale error timeout invalid_header;
> >> }
> >> }
> >>
> >>
> >> When browsing to 0.0.0.1, everything was fine
> >> going to 0.0.0.2 or 0.0.0.3 or any other ip for that matter in the
> >> same class C "/24" it would redirect you to the 0.0.0.1 config which
> >> would then proxy-pass the data back to the origin belonging to the
> >> 0.0.0.1 config
> >>
> >> Anyone seen this issue at all?
> >> Once i commented all proxy_cache and restarted nginx, problem went away.
> >>
> >> Note that i even tried deleting /etc/nginx-cache/* and recreating
> >> it... did not help
> >>
> >> Thanks,
> >> --
> >> Payam Tarverdyan Chychi
> >> Network Security Specialist / Network Engineer
> >
> > --
> > Igor Sysoev
> > http://sysoev.ru/en/
> >
> >
>
> Hey Igor,
>
> That was the problem... I was using "backend" for each of the configs
> so it was confused. Which would you recommend for stability and
> scalability, attaching a dynamic $ to the proxy_cache_key or creating
> a separate cache for each site that requires caching?
> keep in mind that id like to support up to 500 sites per box if
> possible, each doing anywhere from 1mbps to +10mbps
Unique proxy_cache_key is enough. The different proxy_cache_path's are
required just for simple addministration, say, max_size, inactivity, etc.
--
Igor Sysoev
http://sysoev.ru/en/
More information about the nginx
mailing list