(nginx + uWSGI + Bottle)提供静态文件

时间:2013-03-05 12:47:22

标签: python nginx uwsgi bottle static-files

我决定在我的首发网站上使用Python作为主要语言。我很确定uWSGI和Bottle框架可以完美结合。我有点担心他们会慢慢地提供静态文件(我在NodeJS中遇到过这个问题)。是否最好指定多个uWSGI应用程序并将它们指向不包含静态文件的不同目录? Nginx会更快地提供静态文件吗?

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不会提供静态文件?

1 个答案:

答案 0 :(得分:1)

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

在服务器块内添加:

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