使用nginx服务静态主页并通过uwsgi休息

时间:2011-12-24 14:54:47

标签: nginx flask uwsgi

我有一个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。

我尝试了以下哪些功能无效(除了调用mysite.com外,其他任何内容都获得404):

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

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

有什么建议吗?

1 个答案:

答案 0 :(得分: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