2013-03-05 140 views
0

我决定在开始使用网站时将Python用作主要语言。我很确定uWSGI和Bottle框架在一起完美工作。我有点担心他们会缓慢地提供静态文件(我在NodeJS中遇到过这个问题)。最好是指定多个uWSGI应用程序并将它们指向不包含静态文件的不同目录? Nginx会提供更快的静态文件吗?(nginx + uWSGI + Bottle)服务静态文件

ROOT/ 
|--assets/ 
|----some.css 
|----and_image.png 
|--robots.txt 

sign_in/ 
|--[application related files here] 
sign_up/ 
|--[application related files here] 

Web服务器的根是ROOT和应用程序,并包含应用程序的文件目录是Web服务器的根目录之外。

我想这将是更好的

location /sign-in { 
    uwsgi_pass  unix:///run/uwsgi/app/sign-in/sign-in.co.socket; 
    include   uwsgi_params; 
    uwsgi_param  UWSGI_SCHEME $scheme; 
    uwsgi_param  SERVER_SOFTWARE nginx/$nginx_version; 
} 


location /sign-up { 
    uwsgi_pass  unix:///run/uwsgi/app/sign-up/sign-up.co.socket; 
    include   uwsgi_params; 
    uwsgi_param  UWSGI_SCHEME $scheme; 
    uwsgi_param  SERVER_SOFTWARE nginx/$nginx_version; 
} 

比这

location/{ 
    uwsgi_pass  unix:///run/uwsgi/app/whole-website/whole-website.co.socket; 
    include   uwsgi_params; 
    uwsgi_param  UWSGI_SCHEME $scheme; 
    uwsgi_param  SERVER_SOFTWARE nginx/$nginx_version; 
} 

是不是真的更好吗?或者在这种情况下uWSGI不会提供静态文件?

回答

0

你想让nginx提供你的静态文件。鉴于它们是静态的,与服务瓶中的模板/视图不同,服务它们不需要任何逻辑。所以它更好的静态文件请求永远不必命中python。而且它很容易在nginx中设置!

内,您的服务器模块只需要添加:

location /assets/ { 
    alias pathtoyourproject/ROOT/assets/; 
}