新手Nginx+Uwsgi部署flask项目踩过的坑
项目部署完,静态文件加载问题
首先想到的是Nginx配置文件中alias指定的目录出现问题,我自己的代码如下:
location /static {
alias /home/ubuntu/work_space/static;
}
location匹配访问的path目录下的文件直接是在alias目录下查找的,因此alias指定的目录后面必须要加上"/"[^1]。
Uwsgi配置中的问题
我的uwsgi配置文件如下:
[uwsgi]
# 使用nginx连接时使用
socket = 0.0.0.0:8000
# 这个必须写,不然会报找不到application(这里的application是flask对象,即app=Flask(__name__)),出现**no app loaded. going in full dynamic mode**错误
callable = app
# 项目目录绝对路径
chdir = /work_space
# 指定flask运行的文件,是一个相对路径
wsgi-file = test.py
# 一般情况西uwsgi安装在全局环境中,而项目在python虚拟环境中运行,必须指定项目所在的虚拟环境目录
home = /home/ubuntu/.virtualenvs/my-env
作为一个到处踩坑的小白,chdir没有指定项目的绝对路径,导致下面的错误:
chdir(): No such file or directory [core/uwsgi.c line 2623]
正确的做法是切换到项目主文件所在目录,使用命令"pwd"查看绝对路径:
chdir = /home/ubuntu /work_space
[1]https://blog.csdn.net/spark_csdn/article/details/80836326