使用Nginx和uwsgi部署Flask项目
1 from flask import Flask
2 app = Flask(__name__)
3
4 @app.route('/')
5 def index():
6 return 'Hello World!'
7
8 if __name__ == '__main__':
9 app.run()
1 location / {
2 include uwsgi_params;
3 uwsgi_pass 127.0.0.1:5000;
4 }
配置完之后,如Nginx已经启动,那就对其进行重启,否则直接启动。
1 [uwsgi]
2 socket = 127.0.0.1:5000 #注: 指定某个固定端口
3 processes = 4 #注:跑几个进程,这里用4个进程
4 threads = 2
5 master = true
6 pythonpath = /data/web_app/testpro
7 module = test
8 callable = app
9 memory-report = true
- pythonpath:表示项目目录
- module:表示项目启动模块,如上例为test.py,这里就为test
- callable:表示Flask项目的实例名称,上例代码中app = Flask(__name__),所以这里为app
- socket:表示和Nginx通信的地址和端口,和Nginx配置里的uwsgi_pass一致。
- processes:表示开启多少个子进程处理请求。
- threads:每个进程的线程数。
1 uwsgi -d /var/log/uwsgi.log --ini /data/web_app/testpro/test_config.ini
1 from flask import Flask
2 app = Flask(__name__)
3
4 @app.route('/')
5 def index():
6 return 'Hello World!'
7
8 if __name__ == '__main__':
9 app.secret_key = 'abcdef'
10 app.run(host='xx.xx.xx.xx', port=8080)
项目可以顺利运行,也没问题。但如果是使用Nginx + uWSGI的部署方式,uWSGI服务器启动模块test之后,是直接调用了app这个实例的,if __name__ == '__main__': 及其后面的代码都不会被执行,所以就相当于没有配置secret_key,如果Flask项目使用了session功能的话,就会报错。针对这个情况,上述的代码必须修改为:
1 from flask import Flask
2 app = Flask(__name__)
3
4 app.secret_key = 'abcdef'
5
6 @app.route('/')
7 def index():
8 return 'Hello World!'
9
10 if __name__ == '__main__':
11 app.run(host='xx.xx.xx.xx', port=8080)
这样才能让使用了session功能的项目顺利地运行。
使用Nginx和uwsgi部署Flask项目的更多相关文章
- CentOS 下用 Nginx 和 uwsgi 部署 flask 项目
前几天利用flask 写了几个调用salt-api 的接口,需要上线到正式环境,搜了一下 都是 用 nginx + uwsgi 来部署,这里记录下关键的配置项. 1.首先将代码上传到服务器上目录为: ...
- CentOS 下部署Nginx+Gunicorn+Supervisor部署Flask项目
原本之前有一部分东西是在Windows Server,但是由于Gunicorn不支持Windows部署起来颇为麻烦.最近转战CentOS,折腾一段时间,终于简单部署成功.CentOS新手,作为一个总结 ...
- linux上使用nginx、uwsgi部署django项目
参考:CentOS7下部署Django项目详细操作步骤 注意事项: 在虚拟环境中操作,虚拟环境中安装nginx.uwsgi,虚拟环境外需安装uwsgi -- 临时关闭防火墙:systemctl sto ...
- Nginx+uWSGI部署flask项目
uwsgi配置 uwsgi安装 安装uwsgi pip install uwsgi 启动uwsgi uwsgin --ini uwsgi.ini # 后台启动 nohup uwsgi --ini uw ...
- ubuntu服务器上用Nginx和Uwsgi部署django项目
开发环境:ubuntu系统,python3环境 django项目目录: fast_foot 为项目根目录,app为项目应用 现在,我们登陆远程服务器 安装Nginx 安装好了,我们看一下nginx的配 ...
- 通过Nginx部署flask项目
用Flask开发之后,很多人,喜欢用nohup python manage.py & 这样的形式,放到后台运行,其实这样只是个发开模式,很简陋,无法支持并发,进程监控等功能.所以采用nginx ...
- nginx + uwsgi 部署django项目
因项目需求,需要部署django项目,这里是基础的nginx配合uwsgi部署django,后续会采用docker部署的方式 环境: centos7 python3.5.4 django2.1.4 u ...
- Nginx 和 Gunicorn 部署 Django项目
目录 Nginx 和 Gunicorn 部署 Django项目 配置Nginx 安装配置Gunicorn 通过命令行直接启动 Gunicorn 与 uwsgi 的区别,用哪个好呢 Gunicorn u ...
- 部署Flask项目到腾讯云服务器CentOS7
部署Flask项目到腾讯云服务器CentOS7 安装git yum install git 安装依赖包 支持SSL传输协议 解压功能 C语言解析XML文档的 安装gdbm数据库 实现自动补全功能 sq ...
随机推荐
- 【补档_STM32单片机】脉搏波采集显示硬件设计
一.脉搏波简介 脉搏一般情况下指的都是动脉脉搏.每分钟的脉搏次数称为脉率,正常情况下与心率是一致的.心脏的一次收缩和舒张成为一个心动周期.在每个心动周期内,心室的收缩和舒张会引起脉内压力的周期性波 ...
- Python+Selenium - 鼠标操作
鼠标操作类:action_chains模块的ActionChains类 使用组成:操作 + 执行(perform()) 导入代码 from selenium.webdriver.common.acti ...
- MySQL:count()用法
语法 COUNT() 函数返回匹配指定条件的行数. COUNT(column_name) 语法 COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入): SELECT CO ...
- git介绍及使用
一.架构 版本库(仓库):工作区中有一个隐藏目录.git,这个目录不属于工作区,而是git的版本库,是git管理的所有内容. 暂存区:版本库中包含一个临时区域,保存下一步要提交的文件. 分支:版本库中 ...
- 一次SQL查询优化原理分析(900W+数据,从17s到300ms)
有一张财务流水表,未分库分表,目前的数据量为9555695,分页查询使用到了limit,优化之前的查询耗时16 s 938 ms (execution: 16 s 831 ms, fetching: ...
- C#关于数据库中存储的用户权限类似 "普通员工,管理员" 如何在代码中读取分析权限
之前在看某些数据库的用户权限的表时,发现字段是这样类似这样存储的" 普通员工,管理员 ",当时觉得他们是通过分割字符串来分析权限的.后来读到 Liam Wang 的 https ...
- 旁路电容的PCB布局布线透彻详解(4)
原文地址点击这里: 前面使用了较多的篇幅介绍旁路电容的工作原理及其选择依据,我们已经能够为电路系统中相应的数字集成芯片选择合适的旁路电容,在实际应用过程中,旁路电容的PCB布局布线也会影响到高频噪声旁 ...
- 20204107 孙嘉临《Python程序设计》实验三报告
课程:<Python程序设计>班级: 2041姓名: 孙嘉临学号: 20204107实验教师:王志强实验日期:2020年5月24日必修/选修: 公选课## 1.实验内容创建服务端和客户端, ...
- 虚拟机安装Windows7旗舰版-超详细图文
虚拟机安装Windows7旗舰版 ----就是想弄一个自己用的CTF+渗透测试的工具集成系统,本来想着用真实机弄就好了,但还是出于安全的考虑,还是再装个虚拟机吧~ 1.先到MSDN找好安装包:http ...
- Local dimming algorithm in matlab
LED局部背光算法的matlab仿真 最近公司接了华星光电(TCL)的一个项目LCD-BackLight-Local-Diming-Algorithm-IP ,由于没有实际的硬件,只能根据客户给的论文 ...