在部署Flask项目的时候,使用了uWSGI作为后端的应用服务器,在处理前端请求这里,选择的是Nginx服务器,在最初的配置时,仅配置Flask的根路由可以实现网站最基础的部署,但是Nginx除开反向代理外,还有处理静态文件去做缓存压缩的能力也是十分强大的,以及内部的算法和 sendfile
系统调用,能显著提高静态文件的传输速度
http {
server {
# 监听 http 请求
listen 80;
server_name 8.xxx.xx.55;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:5000;
}
}
...
...
}
于是进行了测试,将静态文件目录也配置给Nginx,因此在用户访问此地址时,会先经过Nginx的直接配置去找到对应的项目路由,而不会走Flask的根去找静态文件地址。Nginx会根据请求的路径将请求映射到相应的静态文件目录,并查找文件返回给用户,Nginx内部的算法及数据结构及异步事件驱动模型,使得提升网站整体性能,减轻服务器负载是非常有益的
http {
server {
# 监听 http 请求
listen 80;
server_name 8.134.198.55;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:5000;
}
location /admin/static {
alias /var/www/blog/app/admin/static/;
}
location /blog/static {
alias /var/www/blog/app/blog/static/;
}
}
}
最终测试使用Nginx处理静态文件后,静态资源加载速度得到了非常直观的提升