Обслуживание статической домашней страницы с nginx и отдых через uwsgi - PullRequest
9 голосов
/ 24 декабря 2011

У меня есть веб-сайт nginx + uwsgi (использующий Flask для динамических страниц Python). Я хотел бы обслуживать домашнюю страницу, которая является статической, напрямую через nginx и направлять все остальное в uwsgi.

Следующие директивы конфигурации nginx хорошо работают для обслуживания домашней страницы через nginx и перенаправления вызова на mysite.com/login на uwsgi:

location / {                                                                                                                                                                                                
    root  /var/www/mysite.com/static;                                                                                                                                                                
    index  index.html index.htm;                                                                                                                                                                            
}                                                                                                                                                                                                           

location /login {                                                                                                                                                                                           
    include uwsgi_params;                                                                                                                                                                                   
    uwsgi_pass 127.0.0.1:3031;                                                                                                                                                                              
} 

Но я не могу найти способ обобщить вторую директиву, чтобы перехватывать все вызовы на mysite.com/something и направлять их в uwsgi.

Я попробовал следующее, которое не сработало (получите 404 за все, кроме звонков на mysite.com):

location / {                                                                                                                                                                                                
    root  /var/www/mysite.com/static;                                                                                                                                                                
    index  index.html index.htm;                                                                                                                                                                            
}                                                                                                                                                                                                           

location /* {                                                                                                                                                                                           
    include uwsgi_params;                                                                                                                                                                                   
    uwsgi_pass 127.0.0.1:3031;                                                                                                                                                                              
}

Есть предложения?

1 Ответ

10 голосов
/ 24 декабря 2011

Попробуйте что-то вроде этого

server {
...
 root  /var/www/mysite.com/static;                                                                                                                                                                
 index  index.html index.htm;   
 try_files $uri @uwsgi; 
 location @uwsgi{
    include uwsgi_params;                                                                                                                                                                                   
    uwsgi_pass 127.0.0.1:3031; 
 }
...
}

http://wiki.nginx.org/HttpCoreModule#try_files

...