centos 6.x 部署uwsgi+flask项目
一、项目背景
1. 公司需求要做一个在线统计页面;
2. 统计在线人数,进行人数数据展示;
3. 类似QQ官网在线人数

二、测试环境
[root@linux-node2 ~]# cat /etc/*release
CentOS release 6.7 (Final)
CentOS release 6.7 (Final)
CentOS release 6.7 (Final)
[root@linux-node2 ~]# python --version
Python 2.7.12
[root@linux-node2 ~]# pip --version
pip 10.0.1 from /usr/local/lib/python2.7/site-packages/pip (python 2.7)
[root@linux-node2 ~]#
# 需要安装 flask
pip install flask
三、web框架
说明:由于需求的页面只有单一一个页面,动态展示的人数数据也可以通过js动态请求接口获取,就考虑使用轻量级的web框架或者vue
最终选择flask,毕竟笔者是后端开发人员,vue之后通过在本地测试练习进行基本知识学习!
上代码:测试服务器的代码结构
[root@linux-node2 bonline]# pwd
/data/web/bonline
[root@linux-node2 bonline]# ll
total 24
-rw-r--r-- 1 root root 293 Aug 13 13:49 bonline.py
-rw-r--r-- 1 root root 231 Aug 13 20:04 b_uwsgi.ini
drwxr-xr-x 6 root root 4096 Aug 13 13:42 static
drwxr-xr-x 2 root root 4096 Aug 13 13:49 templates
-rw-r--r-- 1 root root 117 Aug 13 19:51 wsgi.py
-rw-r--r-- 1 root root 278 Aug 13 19:53 wsgi.pyc
[root@linux-node2 bonline]# tree
.
|-- bonline.py
|-- b_uwsgi.ini
|-- static
| |-- css
| | `-- index.css
| |-- images
| | `-- b.png
| |-- img
| | |-- 1-login-icon.png
| | |-- 4-pd.png
| | |-- advert01.png
| | |-- advert02.png
| | |-- advert03.png
| | `-- get_flash_player.gif
| `-- js
| |-- bj-report-tryjs.min.js
| |-- jquery-1.9.1.min.js
| `-- swfobject.js
|-- templates
| `-- b.html
|-- wsgi.py
`-- wsgi.pyc 6 directories, 16 files
[root@linux-node2 bonline]#
bonline.py代码
[root@linux-node2 bonline]# cat bonline.py
from flask import Flask,request,render_template app = Flask(__name__) @app.route('/',methods=['GET',])
def hello_world():
if request.method == "GET":
return render_template('b.html') if __name__ == '__main__':
app.run(host='192.168.10.12',port=80,debug=True)
四,uwsgi服务
说明:百度查看资料有很多方案解决通信服务结合flask的案例,独角兽也可以
由于习惯使用了uwsgi的配置文件方式就使用uwsgi和flask通信后续也可以结合supervisor进行统一管理
1. 安装uwsgi # pip version 2.7
pip install uwsgi
2. 配置文件 #cat b_uwsgi.ini
[uwsgi]
socket=127.0.0.1:9001
chdir=/data/web/bonline
wsgi-file=bonline.py
vacuum=True
master=True
workers=4
enable-threads=True
threads=10
pidfile=/var/run/uwsgi9001.pid
daemonize=/var/log/uwsgi9001.log # 开启守护进程在后台运行
memory-report=True
五、启动uwsgi服务
1. 启动
# 手动启动
[root@linux-node2 bonline]# uwsgi b_uwsgi.ini
# supervisor启动
继续往下看
2. 检查
[root@linux-node2 bonline]# netstat -lnpt |grep 9001
tcp 0 0 127.0.0.1:9001 0.0.0.0:* LISTEN 11334/uwsgi
[root@linux-node2 bonline]#
#由于uwsgi配置文件启动的时候是使用socket模式启动的,所有就就不写程序进行测试访问了,需要不是nginx代理
3. nginx部署
这步骤就省略了有兴趣的朋友可以移步去看我之前写的nginx代理django项目里面有些如何安装nginx以及安装步骤:使用Nginx代理Django
六、supervisor管理uwsgi
1. 安装
这里也省略了之前有写过supervisor管理uwsgi的博客:supervisor管理uwsgi
2. 修改配置文件
[root@linux-node2 bonline]# cat b_uwsgi.ini
[uwsgi]
socket=127.0.0.1:9001
chdir=/data/web/bonline
wsgi-file=bonline.py
vacuum=True
master=True
workers=4
enable-threads=True
threads=10
pidfile=/var/run/uwsgi9001.pid
#daemonize=/var/log/uwsgi9001.log # 这里关闭守护进程(必须操作)
memory-report=True
[root@linux-node2 bonline]#
3. 配置子配置文件
# 路径
[include]
files = /etc/supervisor/conf.d/*.ini
[root@linux-node02 ~]# cd /etc/supervisor/conf.d/
[root@linux-node02 conf.d]# ll
total 8
-rw-r--r-- 1 root root 1474 Jul 25 20:09 website.ini
[root@linux-node01 conf.d]# cat website.ini
[program:bonline]
command =/usr/local/bin/uwsgi /data/web/bonline/b_uwsgi.ini ; 启动命令,可以看出与手动在命令行启动的命令是一样的
autostart = true ; 在 supervisord 启动的时候也自动启动
stopsignal=QUIT
user=root ; 启动的用户
startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了
startretries = 3 ; 启动失败自动重试次数,默认是 3
autorestart = true ; 程序异常退出后自动重启
redirect_stderr = true ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB ; stdout 日志文件大小,默认 50MB
stdout_logfile = /data/log/bonline_stdout.log
stderr_logfile = /data/log/bonline_err.log
4. 启动supervisord服务
/etc/init.d/supervisord start
5. 检查
[root@linux-node02 bonline ]# supervisorctl status
bonline RUNNING pid 31595, uptime 14:35:07
# 已经正常运行了,走到这里就表示supervisor就可以管理uwsgi服务不用在手动杀死进程启动uwsgi操作也避免了写shell脚本的麻烦!
# 该文章只是作为本人的回忆笔记,参考性看个人因素!
centos 6.x 部署uwsgi+flask项目的更多相关文章
- 使用Nginx+Uwsgi部署Python Flask项目
第一次用Flask做Web(也是第一次用Python做Web),在部署的时候遇到了不少问题,现在将过程就下来,供在这方面也有疑惑的人参考.(PS:使用Apache+mod_wsgi部署模式的可以参考另 ...
- 【Centos】【Python】【Flask】阿里云上部署一个 flask 项目
1. 安装 python3 和 pip3 参考:http://www.cnblogs.com/mqxs/p/8692870.html 2.安装 lnmpa 集成开发环境 参考:http://www.c ...
- [傻瓜式一步到位] 阿里云服务器Centos上部署一个Flask项目
网络上关于flask部署Centos的教程有挺多,不过也很杂乱. 在我第一次将flask上传到centos服务器中遇到了不少问题,也费了挺大的劲. 在参考了一些教程,并综合了几个教程之后才将flask ...
- CentOS 傻瓜式部署uWSGI + nginx + flask
交代背景 这篇帖子是为了提供我自己的July Novel站点的小说数据支撑.解决分布式部署爬虫程序的繁琐过程,由于本人对shell编程并不熟悉,故而先逐步记录操作步骤,通过以下操作达到节省时间的方式. ...
- CentOS下 Django部署 uWSGI+Django(一)
由于新冠疫情的缘故,公司要求员工停薪休假,赋闲在家的时候还是决定做点正事,学学习. 本人Linux入门水平,Python入门水平,所以在网上找的那些python部署的帖子,看的是云里雾里的,也没有达到 ...
- linux部署的flask项目配置static
环境: Python2.7 flask nginx linux的系统是Ubantu Python:我的是linux已经有的. flask:pip install flask nginx:sudo ap ...
- CentOS下 Django部署 nginx+uWSGI+Django(二)
该篇内容承接CentOS下 Django部署 uWSGI+Django(一),细节流程可参考此篇内容. 1. 当前系统 CentOS Linux release 7.6.1810 Python 2.7 ...
- nginx+uwsgi+flask+supervisor 项目部署
环境 - Linux: Ubuntu 16.04 - uWSGI 2.0.18 - Flask 1.0.2 - supervisor 3.2.0 - nginx/1.8.1 首先区分几个概念 WSGI ...
- CentOS 下部署Nginx+Gunicorn+Supervisor部署Flask项目
原本之前有一部分东西是在Windows Server,但是由于Gunicorn不支持Windows部署起来颇为麻烦.最近转战CentOS,折腾一段时间,终于简单部署成功.CentOS新手,作为一个总结 ...
随机推荐
- 清除.svn文件(windows & linux)
如何清除文件夹中的.svn信息 1:来由 当需要在某个svn版本控制下添加某个包时, 常常是在另一个版本控制下sync过来, 但这是这个包是在别的版本控制下, 每个目录下都有版本控制文件.svn, 如 ...
- P1783 二分并查集写法
并查集 + 二分 我是 并查集 + 二分 做的QVQ 思路:两两枚举点之间的距离,sort排序,使距离有序.二分答案,每次判断是否符合条件,然后缩小查询范围,直到满足题目要求(保留2位小数精度就为 0 ...
- 《剑指offer》面试题28:字符串的排列(牛客网版本) java
题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 输入描述: 输 ...
- vue+element 切换正式和测试环境
1.package.json { "name": "element-starter", "description": "A Vue ...
- IOS使用mkdir创建目录
在IOS真机上可以创建目录的位置只有两个Documents和Caches,如果直接在NSHomeDirectory()上创建目录,会失败,返回的errno含义为操作被禁止. 获取Caches中的一个目 ...
- 科学计算三维可视化---Mlab基础(鼠标选取交互操作)
一:鼠标选取介绍 二:选取红色小球分析 相关方法:科学计算三维可视化---Mlab基础(基于Numpy数组的绘图函数) 1.小球场景初始化建立 import numpy as np from maya ...
- study later
二分图匹配.左偏树.替罪羊树 四边形不等式优化 http://txhwind.blog.163.com/blog/static/203524179201242021458422/ http://www ...
- 通过网络仓库建立本地的yum仓库
[root@kazihuo ~]# yum -y install createrepo yum-utils [root@kazihuo ~]# yum -y install https://mirro ...
- nodejs使用记录
安装 下载64or32的安装程序,狂点下一步,无脑安装.然后检查一下: npm 使用npm -v命令检查npm是否可用 然后我们就可以使用npm了,npm语法如下: npm install <M ...
- ASP.NET中常用输出JS脚本的类(来自于周公博客)
using System; using System.Collections.Generic; using System.Text; using System.Web; using System.We ...