我决定在我的创业网站上使用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将不提供静态文件?
你想让nginx为你的静态文件服务。鉴于它们是静态的,不需要逻辑来为它们服务,这与您在瓶中的模板/视图不同。所以静态文件请求最好不要碰到python。它真的很容易在nginx中设置!
在你的服务器块中添加:
location /assets/ {
alias pathtoyourproject/ROOT/assets/;
}