nginx serving wrong website under proxy_cache
Jim Ohlstein
nginx-forum at nginx.us
Sun May 3 07:12:14 MSD 2009
Igor Sysoev Wrote:
-------------------------------------------------------
> On Tue, Apr 28, 2009 at 11:40:03PM -0700, Payam
> Chychi wrote:
>
> > 2009/4/28 Igor Sysoev :
> > > 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.
>
>
I assume the same configuration rules also apply to fastcgi_proxy.
Do I need to use two fastcgi_proxy_key settings if a site serves both http and https?
> --
> Igor Sysoev
> http://sysoev.ru/en/
>
>
Posted at Nginx Forum: http://forum.nginx.org/read.php?2,1530,1702#msg-1702
More information about the nginx
mailing list