try_files

Maxim Dounin mdounin at mdounin.ru
Fri May 20 16:12:27 MSD 2011


Hello!

On Fri, May 20, 2011 at 06:57:23AM -0400, David J. wrote:

> Running Nginx v1.0.0
> 
> Here is server config
> 
> server {
>         listen       80;
>         server_name domain.com www.domain.com;
> location /{
> index index.html index index.htm index.php;
> root   /www/domain.com;
> try_files $uri $uri/ @wsgi;
> }
> 
> location @wsgi {
> index  index.html index.htm;
> include uwsgi_params;
> 
> uwsgi_pass unix:/tmp/uwsgi.sock;
> }
>                                                                                                                                                                         location  ~ \.css$ {
> root   /www/domain.com;
> }
> 
> }

It doesn't looks like you have "index" directive set to 
"index.wsgi" nor any actual handling of index.wsgi (except 
try_files fallback).  This all makes me think that you actually 
don't have index.wsgi on filesystem either.

Note that "index" directive will actually test existence of given 
index files on filesystem and will do an internal redirect if one 
was found.  That is, if you don't have any index files on 
filesystem - you'll get 403 (unless autoindex module enabled).

The configuration you probably want is something like

    root /www/domain.com;

    location / {
        try_files $uri $uri/index.html @wsgi;
    }

    location @wsgi {
        uwsgi_pass ...
    }

That is: if file exists, return it; if there is a directory with 
index.html, return it; else fallback to wsgi.

Maxim Dounin

> 
> 
> On 5/20/11 6:23 AM, Maxim Dounin wrote:
> >Hello!
> >
> >On Thu, May 19, 2011 at 06:10:04PM -0400, David J. wrote:
> >
> >>I have a uwsgi_app
> >>
> >>I was wondering why
> >>
> >>location / {
> >>root /myapp;
> >>index index.html index.wsgi;
> >>try_files $uri $uri/ @wsgi;
> >>}
> >>;
> >>
> >>When I visit the domain.com  returns a 403 (when I dont have an
> >>index.html file in the root directory);
> >>
> >>but if I do domain.com/index.wsgi
> >>
> >>The WSGI app is called. This all works.
> >>
> >>I am guessing I am doing something wrong.
> >>
> >>In my config I have
> >>
> >>location @wsgi {
> >>     include uwsgi_params;
> >>     uwsgi_pass unix:/tmp/uwsgi.sock
> >>}
> >Please show full config.
> >
> >Maxim Dounin
> >
> >_______________________________________________
> >nginx mailing list
> >nginx at nginx.org
> >http://nginx.org/mailman/listinfo/nginx
> >
> 
> 
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://nginx.org/mailman/listinfo/nginx



More information about the nginx mailing list