centos+flask+uwsgi+nginx+supervisor部署小结
来源:互联网 发布:3d效果图软件 代码 编辑:程序博客网 时间:2024/05/17 06:58
0x00 head
以前喜欢用ubuntu,但实际部署项目实验室还是要求用centos,只好再搭一遍,中途遇到了不少的坑,做个笔记以备之后查询,不想再去翻那一堆书签了,乱七八糟的,还是自己总结的东西看着舒服。
0x01 安装pip和easy_install
安装easy_install
wget -q http://peak.telecommunity.com/dist/ez_setup.pypython ez_setup.py
安装pip
先安装依赖:
yum groupinstall "Development tools"yum install zlib zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel
wget --no-check-certificate https://github.com/pypa/pip/archive/1.5.5.tar.gztar zvxf 1.5.5.tar.gz cd pip-1.5.5/python setup.py install
0x02 安装uwsgi
pip install uwsgi
在项目的根目录下创建配置文件:
vim config.ini
填写以下内容:
[uwsgi]socket = 127.0.0.1:8001 //启动程序时所使用的地址和端口chdir = /home/www/ //你的项目目录wsgi-file = manage.py //flask程序的启动文件callable = app //程序内启用的application变量名processes = 2 //处理器个数threads = 4 //线程个数stats = 127.0.0.1:9191 //获取uwsgi统计信息的服务地址
关于wsgi在web服务中的作用,请看这里:python wsgi 简介
启动服务:
uwsgi config.ini
0x03 安装nginx
配置源并安装:
yum install yum-fastestmirroryum install nginx
查看nginx应用的配置文件:
nginx -t
我们需要改动配置文件的地方如下(注意是需要改动的地方,其余的地方按你的需要去改):
server { listen 80; server_name www.test.com; # nginx在只有一个server的时候会忽略这个选项,所以随便填吧 access_log /logs/python.flask.access.log; # 日志位置 location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8001; uwsgi_param UWSGI_PYHOME /usr/bin/python; # 指向虚拟环境目录(我没用虚拟环境,写的直接是python程序的位置) uwsgi_param UWSGI_CHDIR /usr/apps/python/your_pro; # 指向网站根目录 uwsgi_param UWSGI_SCRIPT manage:app; # 指定启动程序 }
其余的按需修改吧。
在开启uwsgi后,继续开启nginx,基础的配置就OK了。
0x04 安装Supervisor
经过以上的配置,其实你的网站已经可以正常访问了,速度嗖嗖的。但有很多时候会有意外情况,uwsgi 挂了怎么办?这个时候就需要一个进程守护的程序来帮助你重新启动它。
Supervisor是一个进程管理工具,通俗点就是帮你监控某个进程,如果发现它挂了,立马把它续起来。
安装:
pip install supervisor
生成配置文件:
cd /usr/bin/./echo_supervisord_config > /etc/supervisord.conf
接下来修改配置文件,在配置文件中;
是注释符,去掉前面的分号:
[program:project_name] # project_name为项目名称command = uwsgi --ini /home/flask/config.ini # 把启动uwsgi的命令写在这,将config.ini的路径替换为绝对路径stopsignal=QUITautostart=trueautorestart=truestdout_logfile=/var/log/uwsgi/supervisor_flask.log # 运行日志stderr_logfile=/var/log/uwsgi/supervisor_flask_err.log # 错误日志
启动:
supervisord -c /etc/supervisord.conf
之后先查看 uwsgi 的进程:
ps aux | grep uwsgi
kill掉它,之后再ps一下看进程起来没有:
killall uwsgi
完。
最后放上一张美美的截图,界面用的妹子UI:
参考文档:
http://www.tuicool.com/articles/Ejm2u2
http://www.cnblogs.com/dspace/archive/2016/07/06/5647587.html
https://segmentfault.com/a/1190000004294634
1 0
- centos+flask+uwsgi+nginx+supervisor部署小结
- Flask:Nginx + uWSGI + Supervisor 服务器部署
- Nginx+uwsgi+supervisor在Ubuntu上部署flask应用
- Flask项目部署文档(ubantu+nginx+uwsgi+supervisor)
- rest/flask/nginx/uwsgi/supervisor
- Nginx+uwsgi+Flask部署
- Nginx+uwsgi+flask部署
- Nginx+uwsgi+flask部署
- flask部署-Ubuntu下使用nginx+uwsgi+supervisor部署flask应用
- flask部署-Ubuntu下使用nginx+uwsgi+supervisor部署flask应用
- flask部署-Ubuntu下使用nginx+uwsgi+supervisor部署flask应用
- nginx + uwsgi + flask + supervisor 框架介绍
- 阿里云CentOS、Nginx、uWSGI、Flask部署简易博客
- Flask+uWSGI+Nginx部署过程
- Flask+uWSGI+Nginx部署过程
- nginx+uwsgi部署flask应用
- uwsgi+nginx+flask简单部署
- nginx + uWSGI + flask应用部署
- sublime 安装插件
- HDU4515小Q系列故事——世界上最遥远的距离
- 单链表面试题(一)
- 二分图 【dfs】+【vector】
- [机房练习赛4.4] area 扫描线
- centos+flask+uwsgi+nginx+supervisor部署小结
- C++作业4
- WiFi驱动(4)SDIO驱动SDIO卡的扫描
- 111. Minimum Depth of Binary Tree
- XMPP之添加好友请求报文
- js 小记
- eclipse快捷键
- XMPP之登录报文
- 死锁四个必要条件及死锁的预防、检测、避免、解除