flask运行环境搭建(nginx+gunicorn)
系统:CentOS7.2(阿里云ESC) 1。python版本,使用的是默认的python2.7(或者先安装python3) 2。安装nginx,yum install -y nginx 3。安装virtualenv,yum install -y python-virtualenv 4。创建虚拟环境,virtualenv venv (venv为虚拟环境名称,可自行加上目录) 5。激活虚拟环境,source venv /bin/activate 6。在虚拟环境中安装gunicorn和flask,(venv) $ pipinstall gunicorn (venv) $ pip install flask 7。在目录/var/www中创建文件flask.py from flask import Flask def create_app():
app = Flask(__name__)
return app app = create_app() if __name__ == '__main__':
app.run() @app.route('/')
def index():
return '<html>Hello world!</html>' 8。配置nginx,vim /etc/nginx/nginx.conf
头部:user root(ubuntu)
记得设置权限chmod 777
添加配置 server{
listen 80;
server_name 域名;
root /root/www/xxxx; location / {
proxy_pass http://域名:801;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
} service nginx restart
9。启动gunicorn(在py目录)
gunicorn -w 4 -b 0.0.0.0:801 flask:app
3.安装supervisor
这里退出py3的虚拟环境,直接使用自带的py2.75的来安装
pip install supervisor
echo_supervisord_conf > /etc/supervisord.conf #重定向配置文件到制定目录
(chmod+x 是给以执行权限 绿色 -x未去除权限 灰色)
chmod +x /etc/supervisord.conf
改一下最后的配置文件导入
[include]
files = /etc/supervisor/*.conf
在/etc/supervisor创建flask.conf
[program:wsgi]
directory = /usr/local/flask_cmdb ;命令执行目录
command = /usr/local/ENV_CMDB/bin/python3 /usr/local/ENV_CMDB/bin/gunicorn -w 4 -b 127.0.0.1:5000 manager:app
autostart = true ;默认随supervisord自动启动,默认true
startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true ;程序异常退出后自动重启
startretries = 3 ; 启动失败自动重试次数,默认是 3
redirect_stderr = true ;重定向错误
stdout_logfile = /var/log/flask_supervisor.log ;这里日志需要手动创建否则无法启动
这里重点的地方是command,运行gunicorn 是在virtualenv的虚拟目录下执行
---------------------
查看gunicorn 进程
pstree -ap|grep gunicorn
结束主进程
kill -9 pid 如果需要gevent可以安装gevent携程
Pycharm生成requirement.txt
生成requirement文件:pip freeze > requirements.txt
根据requirement文件安装依赖库:pip install -r requirement.txt
Supervisor重新加载配置启动新的进程
一、添加好配置文件后
二、更新新的配置到supervisord
supervisorctl update
三、重新启动配置中的所有程序
supervisorctl reload
四、启动某个进程(program_name=你配置中写的程序名称)
supervisorctl start program_name
五、查看正在守候的进程
supervisorctl
六、停止某一进程 (program_name=你配置中写的程序名称)
pervisorctl stop program_name
七、重启某一进程 (program_name=你配置中写的程序名称)
supervisorctl restart program_name
八、停止全部进程
supervisorctl stop all
注意:显示用stop停止掉的进程,用reload或者update都不会自动重启。
https://www.jianshu.com/p/f8735b039c67?from=groupmessage
https://www.jianshu.com/p/40caabd91827
https://blog.csdn.net/qq850482461/article/details/78893710
flask运行环境搭建(nginx+gunicorn)的更多相关文章
- 【nginx,apache】thinkphp ,laravel,yii2开发运行环境搭建
缘由 经常会有人问xx框架怎么配置运行环境,这里我就给贴出吉祥三宝(Yii2,Laravel5,Thinkphp5 )的Nginx和Apache的配置,供大家参考 Nginx Yii2 server ...
- win7下docker环境搭建nginx+php-fpm+easyswoole+lavarel+mysql开发环境
win7环境基础在上一篇win7下docker环境搭建nginx+php-fpm+easyswoole开发环境中已经详细叙述搭建完成 本篇文章将叙述如何在上述基础上搭建laravel开发环境,这个其实 ...
- Hadoop基础教程-运行环境搭建
一.Hadoop是什么 一个分布式系统基础架构,由Apache基金会所开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储. Hadoop实现了一个分布式 ...
- Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程
这篇文章主要介绍了Win2012 R2 IIS8.5+PHP(FastCGI)+MySQL运行环境搭建教程,需要的朋友可以参考下 准备篇 一.环境说明: 操作系统:Windows Server 201 ...
- C / C++ 运行环境搭建教程
C / C++ 运行环境搭建教程 一.实验环境 本机操作系统:Windows 7 64位 虚拟机:VMware Workstation 12 pro 虚拟机操作系统:Linux CentOS 7 二. ...
- 02_Java运行环境搭建
1.Java运行环境搭建,对于初学者来说,主要下载安装jdk即可,windows操作系统再配合记事本,即可进行java程序开发.后续的学习以及工作中需要使用IDE工具进行开发,常用IDE工具是ecli ...
- PHP学习(2)——运行环境搭建
学习PHP首先要搞定PHP的运行环境.PHP的运行环境包括:PHP语言解析器本身以及Apache服务器.MySQL数据库等.因为只是学习嘛,尽快的搭建起来运行环境就好,到后期慢慢懂得多了再去想规范化搭 ...
- Hadoop系列003-Hadoop运行环境搭建
本人微信公众号,欢迎扫码关注! Hadoop运行环境搭建 1.虚拟机网络模式设置为NAT 2.克隆虚拟机 3.修改为静态ip 4. 修改主机名 5.关闭防火墙 1)查看防火墙开机启动状态 chkcon ...
- 自动化测试 Appium之Python运行环境搭建 Part2
Appium之Python运行环境搭建 Part2 by:授客 QQ:1033553122 实践环境 参见 Appium之Python运行环境搭建 Part1 环境部署 1.安装Android SDK ...
随机推荐
- 【Codevs3567】宫廷守卫
Position: http://codevs.cn/problem/3567/ Description 从前有一个王国,这个王国的城堡是一个矩形,被分为M×N个方格.一些方格是墙,而另一些是空地.这 ...
- bag of words in c++
#include <iostream> #include <vector> #include <cstddef> #include <string> # ...
- 05、ListActivity的使用
第一个好处:处理共同的操作,避免代码重复 假设我要写第二个界面我也是需要使用到mapView,那你都要去查找一个mapView.都要获取一个Map的一个地图. 第二个好处:代码规范(方便阅读,真实开发 ...
- Mac 终端执行JavaScript
创建: 2017/09/16 第一步 打开命令 输入alias jsc="/System/Library/Frameworks/JavaScriptCore.framework/ ...
- ural 1017. Staircases(dp)
http://acm.timus.ru/problem.aspx?space=1&num=1017 题意:有n块砖,要求按照严格递增的个数摆放成楼梯,求楼梯的摆放种类数. 思路:状态转移方程: ...
- Akka源码分析-Actor发消息(续)
上一篇博客我们分析道mailbox同时也是一个forkjointask,run方法中,调用了processMailbox处理一定数量的消息,然后最终调用dispatcher的registerForEx ...
- RHEL6.5安装成功ORACLE11GR2之后,编写PROC程序出错解决方法
1. proc: error while loading shared libraries: libclntsh.so.11.1: cannot open shared object file: N ...
- Kafka详解与总结(四)
Kafka消息分发和消费者push.pull机制 1. 消息分发 Producer客户端负责消息的分发 kafka集群中的任何一个broker都可以向producer提供metadata信息,这些me ...
- 在Windows2003安装配置Bitvise SSH Server后,不能使用软件内建立的用户登录!
Google: I can only log in with an administrator account - attempting to log in with a regular accou ...
- 研磨JavaScript系列(二):没有类
object就是对象的类型.在JavaScript中不管多么复杂的数据和代码.都可以组织成object形式的对象. 但JavaScript没有"类"概念. 看下面这段JavaScr ...