美文网首页
flask+gunicorn+supervisor+nginx线

flask+gunicorn+supervisor+nginx线

作者: 豪恩 | 来源:发表于2018-11-14 16:56 被阅读0次

服务器为cenos

工具安装:

  • flask   python 的服务器框架
  • gunicorn   webservice,WSGI 的容器
  • supervisor  进程管理工具
  • nginx   一个高性能的 web 服务器
  1. 在/home/xxhong目录下创建一个目录,起名img2txt,代码都会放到这个目录
  2. 安装python3.6
    yum install python36
  3. 安装 virtualenv
    sudo pip3.6 install virtualenv
  4. 进到img2txt目录,创建虚拟环境
    virtualenv venv
  5. 激活虚拟环境
    source venv/bin/activate
  6. 安装 flask 框架
    pip3.6 install flask
  7. 我们在img2txt目录写个Hello World用来测试,取名hello.py,代码如下
app = Flask(__name__)
@app.route('/')
def hello_world():
    # return render_template('index.html')
    return "Hello World"
if __name__ == '__main__':
    app.run()
  1. 安装 gunicorn
    pip3.6 install gunicorn
    9.测试我们刚才的代码,输入以下命令,然后访问自己服务器的外网ip地址
    gunicorn -w 4 -b 0.0.0.0:8888 hello:app
    可以看到浏览器中显示出Hello World image.png
    参数解析
    此时我们使用8888端口进行访问,-w 表示开启了多少个 worker, -b 表示访问地址。hello 就是 hello.py 的文件名,hello.py 相当于一个库文件被 gunicorn 调用。app 则是 hello.py 里创建的 app,这样 gunicorn 才可以定位 flask 应用。
    想结束 gunicorn 可以通过执行 pkill gunicorn,有时还要找到 pid 才能 kill 掉。这样的操作过于繁琐,所以我们使用另一个神器 supervisor, 用来专门管理系统的进程。
  2. 安装 supervisor
    注意:由于supervisor不支持3.X的python版本,我直接退出虚拟环境使用以下命令安装
    yum install supervisor
    退出虚拟环境的命令是:
    deactivate
  3. 安装完成后直接打开配置文件
    vim /etc/supervisord.conf
  4. 在配置文件中添加当前项目的配置参数
[program:hello]
command=/home/xxhong/img2txt/venv/bin/gunicorn -w4 -b 0.0.0.0:8888 hello:app                         ; supervisor启动命令
directory=/home/xxhong/img2txt     ; 项目的文件夹路径
startsecs=0                                      ; 启动时间
stopwaitsecs=0                                ; 终止等待时间
autostart=false                                 ; 是否自动启动
autorestart=false                              ; 是否自动重启
stdout_logfile=/var/www/server/log/gunicorn.log        ;log 日志
stderr_logfile=var/www/server/log/gunicorn.err  
  1. 测试supervisor

supervisord -c /etc/supervisord.conf
supervisorctl start hello // 这里的hello是program的名字
再补几个常用命令:
supervisorctl status
supervisorctl stop hello
supervisorctl start hello
supervisorctl restart hello
supervisorctl reread
supervisorctl update

如果出现以下错误
Starting supervisor: Error: Another program is already listening on a port that one of our HTTP servers is configured to use.  Shut this program down first before starting supervisord.
For help, use /usr/bin/supervisord -h
解决方法:
先ps -ef | grep supervisord
然后使用kill -s SIGTERM 3999  
杀掉进程中有/usr/bin/python /usr/bin/supervisord的一个  
  1. 安装 nginx

nginx 是一个高性能的 HTTP 和 反向代理服务器,在高并发方面表现非常不错。

安装命令:
yum install nginx

nginx相关命令
service nginx start #启动 nginx 服务
service nginx stop #停止 nginx 服务
service nginx restart #重启 nginx 服务
nginx配置文件
vim /etc/nginx/ nginx.conf

直接在location 下添加如下代码就可以了

location / {
          proxy_pass http://127.0.0.1:8888;
          proxy_set_header Host $host;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       }

教程完毕, 有问题留言

相关文章

  • flask+gunicorn+supervisor+nginx线

    服务器为cenos 工具安装: flask   python 的服务器框架 gunicorn   we...

  • flask+gunicorn+supervisor+nginx环

    裸centos的一些安装部署 1、安装python-pip 2、安装python依赖包: 错误二:error: c...

  • 线线

    在点点的另一边,完全相反的是线线。 他沉稳,内敛,不怎么不讲话,和他聊天必须要很清晰的聊一个话题,如果不是,当下的...

  • 或许你从没注意过,但你买的紫砂壶都有

    紫砂造型常用线型有:口线、腹线、底线、盖板线、堆迭线、阳线、凹线、皮带线、筋囊线、文武线、子母线、偶角线、捏角线、...

  • 时间线,空间线,价值线

    前者应急,后者长存

  • 《线情线缘》

    不记得是第几次重复打开那些个记忆碎片,惊觉前刻还是24号下午,此时25号都过了小半天。好久没熬过夜,彻夜难眠的日子...

  • 压力线 支撑线

    https://zhuanlan.zhihu.com/p/108079238?utm_source=com.and...

  • K线:锤子线

    锤子线的含义:预示着行情开始止跌,横盘或上涨,释放的信号较强烈。 判断特征:1.出现在明显的下跌趋势中 ...

  • 《红线线  蓝线线》

    红线线 兰线线 丝丝缕缕的缠绵 让心与心相牵 命与命相融 在时光里慢慢的成长 一天天变老 不离不弃相依相伴 直到永...

  • 写给王线线

    亲爱的王线线同学,当你看到这篇文章的时候,我已经陪你度过了人生中的第十二个生日。 时间真的太快太快太快了。 我们从...

网友评论

      本文标题:flask+gunicorn+supervisor+nginx线

      本文链接:https://www.haomeiwen.com/subject/jmbjfqtx.html