correct usage of location context?

Cliff Wells cliff at develix.com
Fri Jun 12 23:07:29 MSD 2009


On Fri, 2009-06-12 at 20:31 +0200, Szymon Polom wrote:
> Cliff Wells wrote:
> 
> > On Fri, 2009-06-12 at 18:23 +0100, lejeczek wrote:
> >> would not it be a trailing(redundant) slash in location statement? - 
> >> location /test
> 
> 1. The trailing slash doesn't matter, /test looks for either a file or 
> directory (that's what nginx's error-log says to me at least). It 
> shouldn't be looking for /test though, it should list/process the 
> content from the filesystem as set by the root parameter (/var/www/test).
> 
> > Also his root settings are wrong:
> > 
> > location /test {
> >    root  /var/www;
> > }
> 
> 2. My root-settings are not wrong. I have many sites in /var/www and 
> test should not be mapped to /var/www but to /var/www/test.

They are wrong:

location /test {
   root /var/www/test;
}

This will map the request /test/foo.html to /var/www/test/test/foo.html.
This is probably NOT what you want.

location /test {
   root /var/www;
}

This will map the request /test/foo.html  to /var/www/test/foo.html.

Whichever one you think is what you want, use.   You can think whichever
one you want is wrong, but this is how it works.   The $location is
*appended* to $document_root.


> With that mapping, I assume that calling http://example.com/test/foobar 
> should try to access /var/www/test/foobar on the filesystem and not 
> /var/www/test/test/foobar like it does now.

Your assumption is incorrect.

> What I'm trying to achieve is to move away from a vhost-configuration to 
> a multiple-apps/sites-configurations, e.g.
> 
> example.com/railsapp1/* would access /var/www/railsapp1 and below only,

location /railsapp1 {
    root /var/www;
}

Request http://example.com/railsapp1/images/foo.gif would map
to /var/www/railsapp1/images/foo.gif

> example.com/railsapp2/* would access /var/www/railsapp2 and below only,

location /railsapp2 {
    root /var/www;
}

Request http://example.com/railsapp2/images/foo.gif would map
to /var/www/railsapp2/images/foo.gif

> example.com/phpapp1/* would access /var/www/phpapp2 and below only,
> example.com/ would access /var/www/static_html and below unless below is 
> one of the above mentioned "virtual" URIs.

> PS: It's "awesome" how slow this mailing list is (I don't mean the 
> response time, but the time the system managing this list takes to 
> process an email and to deliver it out to subscribers).

I saw the response to your query before I saw your original query.   I
have no idea why that is.

Cliff

-- 
http://www.google.com/search?q=vonage+sucks






More information about the nginx mailing list