Flask部署使用Nginx配置static静态资源路径原因分析

在部署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处理静态文件后,静态资源加载速度得到了非常直观的提升

你可能感兴趣的:(flask,nginx,python)