通过Nginx部署flask项目和静态站点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过Nginx部署flask项目和静态站点相关的知识,希望对你有一定的参考价值。

参考技术A

安装nginx

安装supervisor( 官方文档 )

安装uwsgi( 官方中文文档 )

启动服务

nginx 日志(默认)

supervisor 日志(默认)

supervisor 查看启动的进程

supervisor相关命令

一般配置文件在 /etc/nginx 目录下

全局配置文件为 nginx.conf ,一般需要改的是下面两项,其他的保持默认就好了

我们要添加配置只需修改 sites-enabled/default
或在 conf.d/ 下面添加配置文件即可,因为在 nginx.conf 中会导入这两个地方的配置文件

静态web服务器只需要有静态文件(html+css+js)和配置Nginx即可

假设我的静态文件在 /home/moco/www/html 目录下

接下来我们来配置nginx
这里为了简单,直接修改 sites-enabled/default

如果要同时配置多个呢?

说下root 和 alias的区别:
alias指定的目录就是要访问的目录,root是要访问目录的上级目录,使用root时,
静态文件的实际路径等于root+location的路径,如上面的第二个location,
站点文件必须在 /home/moco/other/tool/ 下, 而使用alias,则静态文件的路径
就是alias路径,即第三个location站点文件就在 home/moco/www/tool/ 下。

项目路径: /home/moco/www/myflask/

/home/moco/www/myflask/manage.py

虚拟环境: /home/moco/.local/share/virtualenvs/myflask-XuRgNXhR
在虚拟环境中安装 flask 和 uwsgi (pip install uwsgi)
在项目路径下创建uwsgi的配置文件(也可以统一在一个地方创建,如 /etc/uwsgi/ )
uwsgi_config.ini

启动虚拟环境中的uwsgi

配置Nginx 配置文件中的 sites-enabled/default

启动nginx

/home/moco/www/flask_hello/uwsgi_config.ini

/home/moco/www/flask_world/uwsgi_config.ini

因为要启动多个uwsgi的配置文件,这里就用supervisor工具统一启动管理
在 /etc/supervisor/conf.d/ 下分别添加
flask_hello.conf

flask_world.conf

启动supervisor

Nginx配置

下面是flask_hello的访问示例:

以上是关于通过Nginx部署flask项目和静态站点的主要内容,如果未能解决你的问题,请参考以下文章

Centos系统Python环境搭建和项目部署

nginx+gunicorn+flask部属web时,使用nginx如何指定多个静态文件路径

centos部署flask+nginx+uwsgi之踩坑指南

Flask + uWSGI + Nginx 项目部署方案

使用Nginx和uwsgi部署Flask项目

Python3+Gunicorn+Nginx 部署Flask项目