V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
assad
V2EX  ›  程序员

求 Python WEB 项目正确的部署姿势

  •  
  •   assad · 2016-11-18 17:39:47 +08:00 · 4314 次点击
    这是一个创建于 2687 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前我使用的 Python 直接监听端口
    然后使用 Nginx 反代部署的
    进程管理采用是 supervisor

    大神们都是怎么部署 Python Web 项目的哇

    36 条回复    2016-11-22 21:05:47 +08:00
    assad
        1
    assad  
    OP
       2016-11-18 17:50:45 +08:00
    大神们给传传道吧!!
    isno
        2
    isno  
       2016-11-18 17:57:36 +08:00
    就跟你的一样啊
    50vip
        3
    50vip  
       2016-11-18 17:57:50 +08:00
    gunicorn + greentlet + nginx + supervisor 。基本就是这样的吧~
    tumbzzc
        4
    tumbzzc  
       2016-11-18 18:01:39 +08:00
    flask+gunicorn+nginx+supervisor
    你缺的是 gunicorn
    soasme
        5
    soasme  
       2016-11-18 18:05:55 +08:00
    nginx 反向代理到 gunicorn 起的进程, gunicorn 起进程的时候使用 gevent 模式,管理 gunicorn 进程用 supervisor
    可以看看这款工具: https://github.com/liwushuo/fapistrano
    dsg001
        6
    dsg001  
       2016-11-18 18:11:27 +08:00
    木有类似 lnmp 的一键安装脚本不爽
    shellbye
        7
    shellbye  
       2016-11-18 19:10:44 +08:00
    uwsgi 你值得拥有
    akinoniku
        8
    akinoniku  
       2016-11-18 19:38:09 +08:00
    扔 docker ,配合 nginx-proxy 食用
    cheetah
        9
    cheetah  
       2016-11-18 19:41:30 +08:00
    gunicorn
    coreki
        10
    coreki  
       2016-11-18 19:46:10 +08:00 via iPhone
    完全一样
    66450146
        11
    66450146  
       2016-11-18 19:59:30 +08:00
    inroading
        12
    inroading  
       2016-11-18 20:17:33 +08:00
    发现 PHP 流行不是没有道理的, lnmp 一键脚本辣么简单
    xavierskip
        13
    xavierskip  
       2016-11-18 20:22:41 +08:00
    nginx  反向代理到 gunicorn 这个 wsgi server
    loading
        14
    loading  
       2016-11-18 20:23:47 +08:00 via Android
    因为这个,我转投 golang ……
    tumbzzc
        15
    tumbzzc  
       2016-11-18 20:43:37 +08:00
    @loading 如果真的因为这个,我觉得你也太没毅力了
    loading
        16
    loading  
       2016-11-18 20:44:09 +08:00 via Android
    loading
        17
    loading  
       2016-11-18 20:44:48 +08:00 via Android
    @tumbzzc 部署问题是原因之一。
    hugo775128583
        18
    hugo775128583  
       2016-11-18 20:53:19 +08:00 via Android
    @tumbzzc 为什么我这么回答面试官,面试官总是一脸不满意(╥﹏╥)
    tumbzzc
        19
    tumbzzc  
       2016-11-18 21:16:36 +08:00
    @hugo775128583
    我只是自己玩玩,稳定性不错了,但是谁知道他们公司是不是觉得有更成熟的方案
    jimzhong
        20
    jimzhong  
       2016-11-18 21:38:00 +08:00
    gunicorn+nginx
    assad
        21
    assad  
    OP
       2016-11-18 22:11:09 +08:00
    @tumbzzc 我也是这样想知道的
    assad
        22
    assad  
    OP
       2016-11-18 22:29:31 +08:00
    @loading Go 的部署,我觉得也面临和 Python 一样的,监听端口,然后反代
    ipconfiger
        23
    ipconfiger  
       2016-11-18 22:32:10 +08:00
    gunicorn 用 meinheld 的 worker 比 greenlet 的还快
    guyskk
        25
    guyskk  
       2016-11-18 23:20:29 +08:00 via Android
    gunicorn + gevent + docker ,前端用 nginx 单独部署
    eoo
        26
    eoo  
       2016-11-18 23:26:17 +08:00 via Android
    发现 PHP 流行不是没有道理的, lnmp 一键脚本辣么简单
    daiv
        27
    daiv  
       2016-11-19 00:32:41 +08:00
    @shellbye 同感 uwsgi 用的爽
    billlee
        28
    billlee  
       2016-11-19 00:41:33 +08:00
    @assad 也许 go 可以不反代?
    ryd994
        29
    ryd994  
       2016-11-19 00:51:08 +08:00 via Android
    @soasme 有 Nginx 反代的话, gunicorn 应该不用加 gevent
    长连接由 Nginx 来处理
    stargazer
        30
    stargazer  
       2016-11-19 16:01:43 +08:00
    gunicorn 或者 uwsgi
    GPU
        31
    GPU  
       2016-11-19 16:08:52 +08:00
    Nginx + uWSGI

    就这两个就可以 ,走 socket 的。
    chipmuck
        32
    chipmuck  
       2016-11-19 20:34:58 +08:00
    screen? (手动滑稽
    qwer1234asdf
        33
    qwer1234asdf  
       2016-11-19 21:33:49 +08:00
    nginx+uwsgi+python
    linuxchild
        34
    linuxchild  
       2016-11-20 17:45:23 +08:00 via iPhone
    nginx uwsgi supervisor
    assad
        35
    assad  
    OP
       2016-11-21 12:05:20 +08:00
    看来大家基本上都是这样的部署,有没有更 NB 的娃
    dtfm
        36
    dtfm  
       2016-11-22 21:05:47 +08:00
    刚刚 Get 到一个办法,简单粗暴
    用 Ngrok 把本地端口暴露到公网,直接访问,一行命令搞定,适合短期使用
    详见: https://www.ngrok.cc/
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4958 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 09:39 · PVG 17:39 · LAX 02:39 · JFK 05:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.