我决定在我的首发网站上使用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不会提供静态文件?
答案 0 :(得分:1)
您希望nginx为您的静态文件提供服务。鉴于它们是静态的,与瓶中的模板/视图不同,不需要逻辑来提供它们。所以静态文件请求更好,永远不必命中python。它在nginx中很容易设置!
在服务器块内添加:
location /assets/ {
alias pathtoyourproject/ROOT/assets/;
}