Nginx+uwsgi部署Flask项目

admin 2019-10-06 17:22:16 0 0 Flask 263 复制链接

之前使用的是nginx+gunicorn部署的flask项目,今天尝试了下用nginx+uwsgi的方式部署,因为之前用这个uwsgi部署遇到了问题。

确实这次也遇到了不少问题,但是最后还是部署上了,我觉得最重要的一点就是要学会看报错信息及错误日志


Step1:下载nginx

apt install nginx -y



Step2:修改默nginx认配置文件

1、先备份原文件

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak


2、新建配置文件

vim /etc/nginx/nginx.conf

user root; //这里使用root用户 之前没加上导致与socket通信失败 因为权限不够
worker_processes 4;
events { worker_connections 1024; }
http {
    include       mime.types;
    default_type  application/octet-stream;
    server {
        listen 80;
        location / {
            include uwsgi_params;
            uwsgi_pass unix:/var/www/flask/project.sock; //与uwsgi通信
	    # proxy_pass http://172.18.0.6:8080;
        }
    }
}


3、测试nginx配置文件并运行

a.检查配置文件语法

nginx -c /etc/nginx/nginx.conf -t

b.如果显示有syntax ok字样的提示,说明没有语法错误,执行下面的命令启动nginx,否则检查nginx.conf相关配置。

nginx -c /etc/nginx/nginx.conf

此时,如果没有提示相关信息,说明nginx已经启动成功,可以通过ps -ef | grep nginx查看。后期如果修改了配置文件,可以使用nginx -s reload重启nginx。

nginx日志存放文件夹: /var/log/nginx

有相关错误日志和访问日志



Step3:配置uwsgi(默认你已安装,没安装就pip install uwsgi

1、在项目目录下新建一个uswgi.ini文件,相关配置如下:

[uwsgi]
module = app:app //第一个app是我的项目启动文件,第二个是Flask实例
master = true
processes = 4
chdir = /var/www/flask
socket = /var/www/flask/project.sock //Nginx与uwsgi通信的socket文件,与nginx的uwsgi_pass对应
socket = 127.0.0.0:8080
logto = /var/www/flask/project.log // uwsgi日志文件
chmod-socket = 660
vacuum = true


2、启动uwsgi

uwsgi [--ini] uwsgi.ini

这时nginx就可以和uwsgi通信了,也就可以在外部通过80端口访问我们的项目了。


评论(0)

    还没有评论,快来抢沙发吧!