在MAC使用Nginx+uWSGI部署Flask项目
2017-10-12 11:22
543 查看
之前用Flask框架开发了一个Python的restful api服务器项目,使用Nginx和uWSGI部署起来感觉挺麻烦,过程中还因为对Flask框架和uwsgi的不熟悉,花了好长时间才把应用完全部署起来。下面分享部署成功的相关配置以及部署Flask项目时极可能犯的一个小错误。
一、
配置
1.
Flask 项目源码
Nginx使用的版本是1.12.1,uWSGI是2.0.15,Flask是0.10.1。在Mac环境下安装好Nginx、uWSGI和Flask之后,将使用Flask框架开发的server项目源码放到Mac服务器的某个目录下,例如/Users/xxxx/data/myserver/restful。以最简单的一个Flask项目作为例子,其代码只有test.py一个源码文件,内容如下:
二.
为Flask项目配置uwsgi
自己创建一个uwsgi.ini文件来进行配置。配置文件大致内容如下:
其中几个主要参数的含义如下:
pythonpath:表示项目目录
module:表示项目启动模块,如上例为test.py,这里就为test
callable:表示Flask项目的实例名称,上例代码中app = Flask(__name__),所以这里为app
socket:表示和Nginx通信的地址和端口,和Nginx配置里的uwsgi_pass一致。
processes:表示开启多少个子进程处理请求。
threads:每个进程的线程数。
之后启动uWSGI:
uwsgi -d /var/log/uwsgi.log --ini /data/web_app/testpro/test_config.ini
其中,-d参数指明日志路径为/var/log/uwsgi.log。
三.
配置Nginx
在Nginx的安装目录找到Nginx的配置文件,安装目录一般是/usr/local/nginx,配置文件是nginx.conf,对其进行编辑,使得Nginx能够加载uwsgi。
接下来,按照Nginx配置文件中server项下的listen和server_name参数对应的值使用浏览器对项目进行访问http://172.24.234.215:5000/api/v1.0/user/getuserinfo?username=2222,看到输出
下面信息 则表示部署成功。
一、
配置
1.
Flask 项目源码
Nginx使用的版本是1.12.1,uWSGI是2.0.15,Flask是0.10.1。在Mac环境下安装好Nginx、uWSGI和Flask之后,将使用Flask框架开发的server项目源码放到Mac服务器的某个目录下,例如/Users/xxxx/data/myserver/restful。以最简单的一个Flask项目作为例子,其代码只有test.py一个源码文件,内容如下:
#!flask/bin/python """Alternative version of the ToDo RESTful server implemented using the Flask-RESTful extension.""" from flask import Flask from flask_restful import Api from APIResources.ExamplTaskApi import * from APIResources.UserInfoAPI import * app = Flask(__name__, static_url_path="") api = Api(app) api.add_resource(TaskListAPI, '/todo/api/v1.0/tasks', endpoint='tasks') api.add_resource(TaskAPI, '/todo/api/v1.0/taskbyid', endpoint='task') api.add_resource(GetUserInfoByUsernameApi, '/api/v1.0/user/getuserinfo', endpoint='getuserinfo') api.add_resource(AddUserInfoApi, '/api/v1.0/user/adduser', endpoint='adduser') if __name__ == '__main__': # app.run(debug=True) app.run(host='0.0.0.0')那么test.py的完整路径就是/Users/xxxx/data/myserver/restful/test.py
二.
为Flask项目配置uwsgi
自己创建一个uwsgi.ini文件来进行配置。配置文件大致内容如下:
[uwsgi] master = true callable = app socket = 0.0.0.0:7000 pythonpath = /Users/xxx/myserver/restful module = test processes = 4 threads = 2 buffer-size = 62768
其中几个主要参数的含义如下:
pythonpath:表示项目目录
module:表示项目启动模块,如上例为test.py,这里就为test
callable:表示Flask项目的实例名称,上例代码中app = Flask(__name__),所以这里为app
socket:表示和Nginx通信的地址和端口,和Nginx配置里的uwsgi_pass一致。
processes:表示开启多少个子进程处理请求。
threads:每个进程的线程数。
之后启动uWSGI:
uwsgi -d /var/log/uwsgi.log --ini /data/web_app/testpro/test_config.ini
其中,-d参数指明日志路径为/var/log/uwsgi.log。
三.
配置Nginx
在Nginx的安装目录找到Nginx的配置文件,安装目录一般是/usr/local/nginx,配置文件是nginx.conf,对其进行编辑,使得Nginx能够加载uwsgi。
location /{ include uwsgi_params; uwsgi_pass 0.0.0.0:7000; }配置完之后,如Nginx已经启动,那就对其进行重启,否则直接启动。
接下来,按照Nginx配置文件中server项下的listen和server_name参数对应的值使用浏览器对项目进行访问http://172.24.234.215:5000/api/v1.0/user/getuserinfo?username=2222,看到输出
下面信息 则表示部署成功。
相关文章推荐
- Python-在CentOS7上使用nginx+uwsgi部署Flask框架开发的Web项目
- Flask项目部署文档(ubantu+nginx+uwsgi+supervisor)
- 使用uWSGI+nginx部署Django项目
- 阿里云(ubuntu)下使用nginx、uwsgi部署django项目
- 配置阿里云CentOS7.2+nginx+uwsgi 部署flask项目
- 转:在Ubuntu 上使用 Nginx 部署 Flask 应用:通过uwsgi
- flask部署-Ubuntu下使用nginx+uwsgi+supervisor部署flask应用
- 在Mac上使用Nginx和FastCGI部署Flask应用
- 使用Nginx+uwsgi部署Django项目
- 使用uwsgi+nginx部署django项目
- 使用nginx + uwsgi socket的方式来部署Django项目
- flask部署-Ubuntu下使用nginx+uwsgi+supervisor部署flask应用
- 使用 uWSGI + Nginx 部署 Flask 应用
- centos环境下使用uwsgi&nginx部署flask
- 使用nginx+uWSGI部署flask应用
- Flask学习11:阿里云新手Flask + nginx + uwsgi + ubuntu的完整项目部署教程
- flask部署-Ubuntu下使用nginx+uwsgi+supervisor部署flask应用
- Flask+uwsgi+nginx项目部署
- flask项目部署:nginx +uwsgi
- 【翻译】使用nginx作为反向代理服务器,uWSGI作为应用服务器来部署flask应用