2011-12-24 78 views
9

我有一個nginx + uwsgi網站(使用Flask for dynamic python pages)。 我想通過nginx直接爲靜態主頁提供服務,並將其他一切路由到uwsgi。用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;                                            
} 

有什麼建議?

回答

10

嘗試是這樣的

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

+3

感謝,改變了** try_files後**指令'try_files $ URI $ URI/@uwsgi;'它的工作就像一個魅力 – gws 2011-12-25 21:43:50

+2

NB! '$ uri /'很重要,並解決了我的情況(Dreamhost VPS上的nginx 0.8.4) – velochy 2014-05-03 09:00:40