Ubuntu18部署uwsgi+flask应用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu18部署uwsgi+flask应用相关的知识,希望对你有一定的参考价值。

参考技术A 安装依赖

将gcc切换到4.8版本(这里需要你安装过多个gcc版本)可以参考: 安装多版本gcc和g++

uWSGI 安装: pip install uwsgi
在项目根目录下新建 uwsgi.ini 文件

在项目根目录下执行命令

启动: uwsgi --ini uwsgi.ini

重启: uwsgi --reload uwsgi.pid

停止: uwsgi --stop uwsgi.pid

注意:
uWSGI 通过 uwsgi.ini 启动后会在相同目录下生成一个 uwsgi.pid 的文件,里面只有一行内容是 uWSGI 的主进程的进程号。
重启命令无法在 uwsgi 停止后执行,只能在它运行期间执行重启,否则报错。

kill 全部 uwsgi ini 进程: killall -s INT uwsgi
查看 uwsgi 有关的进程 : ps -ef |grep uwsgi

python服务器环境搭建Flask,uwsgi和nginx

python服务器环境搭建Flask,uwsgi和nginx

【部署系统环境Ubuntu

使用python的Flask框架搭建好网页后台后,便要开始将网站部署到服务器平台了。为了部署python服务器,我选择使用uwsgi和nginx。

使用Nginx和uWSGI来运行Python应用

Nginx

Nginx是高效的Web服务器和反向代理服务器,同时并发高,部署简单,内存消耗小,最重要的是,支持uWSGI的uwsgi协议,可以直接使用,一个简单的uwsgi_pass就可以将动态内容交给uWSGI处理。

uWSGI

至于为什么不直接使用Flask运行程序而是uWSGI,那是因为,Flask都说明了,不要使用它来作为生产环境,那是因为,它说了,不要使用⊙﹏⊙‖∣°
技术分享图片

安装uwsgi和nginx

安装uwsgi

安装uwsgi使用简单的pip命令即可安装

pip install uwsgi

查看uwsgi版本

uwsgi --version

安装Nginx

安装Nginx使用apt-get即可

apt-get install nginx
#如果是使用本机安装测试,由于默认不是最高权限使用以下命令即可:
sudo apt-get install nginx 

配置文件

配置uwsgi

现在服务器环境也搭建好了,那么就要开始配置运行文件。假如此时我将python文件放在/var/www/myapp文件夹中。
配置uwsgi有很多种方式,例如直接使用命令行运行,不过我觉得将参数写在一个文件中,再运行是最好不过的了。【其他的配置方法可以百度或则google】

首先在myapp文件夹中创建一个配置文件"myapp.ini":

[uwsgi]
socket = 127.0.0.1:6001 
;将Flask应用运行在这个端口
master = true  
wsgi-file = app.py 
;后端文件名称
callable = app
;设置在收到请求时,uWSGI加载的模块中哪个变量将被调用,默认是名字为“application”的变量。即是: app = Flask(__name__) 
processes = 4   
threads = 2
daemonize = server.log 
;日志保存文件名称 【位置默认在app.ini 目录下】

配置nginx

/etc/nginx目录下新建文件夹app_nginx,进入app_nginx文件,新建myapp_nginx.conf文件

server {
    listen 80;  #监听服务器的80端口
    server_name xxx.xx; #你的域名,前提是你要将你的域名解析到你的服务器的ip地址
    charset utf-8;
    location / {
        include uwsgi_params;   #添加uwsgi参数
        uwsgi_pass 127.0.0.1:6001; #你的Flask应用运行端口,和上面的对应
    }
}

然后配置修改/etc/nginx/nginx.conf文件
在如图所示位置【图片中倒数第4行】添加

include /etc/nginx/app_nginx/*.conf; #将app_nginx所有配置文件导入

技术分享图片

ps:如果我们要搭建多个Flask应用,只需要再写一个confini就行了

启动

启动uwsgi

/var/www/myapp目录下启动uwsgi:

uwsgi myapp.ini

启动nginx

service nginx start #启动nginx
#或则 service nginx restart 重启nginx

完成

这时候,你在浏览器中输入你的域名,就可以看到一个漂漂亮亮的网页了

技术分享图片







以上是关于Ubuntu18部署uwsgi+flask应用的主要内容,如果未能解决你的问题,请参考以下文章

Flask+uwsgi+Nginx+Ubuntu部署教程

如何使用Nginx和uWSGI或Gunicorn在Ubuntu上部署Flask Web应用

Ubuntu+Nginx+uWSGI+Flask应用

python服务器环境搭建Flask,uwsgi和nginx

nginx+uwsgi阿里云ubuntu服务器上简单部署flask RESTful风格项目

Flask+uwsgi+Nginx+Ubuntu部署