使用uwsgi运行flask

由于python2.x和python3.x所用的命令和配置有所区别,在本文中如果有不一致的地方将特别标明。

首先更新一下系统和软件:

安装pip

(可选)如果是python3.x,为了方便这里统一一下pip命令,之后python3.x环境也可以直接执行pip命令

安装virtualenv虚拟环境

下面我们在/var/www目录下创建一个flask项目:

项目内容很简单,就是一个典型的flask app

下面我们要创建运行flask的虚拟环境。

首先创建一个虚拟环境:

启动虚拟环境并安装flask:

测试一下能否正常运行:

不报错即为正常。

下面安装uwsgi和nginx。

创建一个socket用于链接nginx和uwsgi

配置uwsgi

创建uwsgi配置文件/etc/uwsgi/apps-available/myproj.ini

如果flask的启动脚本为/var/www/myproj/run.py,flask的实例声明如下:

则uwsgi配置文件中应做如下修改

使配置生效

最后修改nginx配置文件/etc/nginx/sites-available/myproj

使nginx配置生效

这样配置就结束了。最后是几个容易出现的问题:

  • myproj.sock文件的所有者不是www-data。由于uwsgi的默认用户是www-data,所以.sock需要保持一致。
  • 使用python3时未配置对应的插件和命令。uwsgi-plugin-python(3)这个脚本请安装对应版本。
  • 更多问题参见nginx和uwsgi的log,都在/var/log/目录下

参考:

Running flask with virtualenv, uwsgi, and nginx

How To Serve Flask Applications with uWSGI and Nginx on Ubuntu 14.04

 

暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注