V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
fox0001

golang 写的 Web 服务,大家是如何部署的?

  •  
  •   fox0001 · Nov 2, 2019 via Android · 9303 views
    This topic created in 2369 days ago, the information mentioned may be changed or developed.
    这周初学 golang,写了个小小的 Web 服务,用来给其他朋友更新二级域名与 IP 绑定。在 Debian 上,跑是能跑起来,但是没找到比较好的部署方式。就想请教大家一般是怎么部署的?
    Supplement 1  ·  Nov 2, 2019
    感谢各位回复,应该选择 systemd 部署了。只是以前一直用 init 那套,需要学习一下
    Supplement 2  ·  Nov 13, 2019
    用 systemd 跑了几天,效果不错,再次感谢各位
    30 replies    2019-11-04 09:45:37 +08:00
    Leigg
        1
    Leigg  
       Nov 2, 2019 via Android
    你把和其他的 web 应用看作一样不就行了,需要负载均衡高并发就加个 nginx,小服务就裸奔完事。
    fox0001
        2
    fox0001  
    OP
       Nov 2, 2019 via Android
    @Leigg #1 我是想做成服务,可以 start、stop、restart,还会崩溃后自动重启的那种
    ke1e
        3
    ke1e  
       Nov 2, 2019 via Android
    docker 化
    yumumu
        4
    yumumu  
       Nov 2, 2019 via iPhone
    @fox0001 supervisor 似乎可以
    fox0001
        5
    fox0001  
    OP
       Nov 2, 2019 via Android
    @yumumu #4 找过资料,有说过用这个的。但这个是为了抛弃 Python3 而用 go 写的小功能,用 supervisor 的话,又要装上 Python3 了…
    fox0001
        6
    fox0001  
    OP
       Nov 2, 2019 via Android
    @ke1e #3 小功能就没必要上 docker 了
    fox0001
        7
    fox0001  
    OP
       Nov 2, 2019 via Android
    @ke1e #3 我的应用场景,用 screen 可代替 docker
    lance86
        8
    lance86  
       Nov 2, 2019 via Android   ❤️ 1
    @fox0001 什么版本的 Debian,用系统自带的进程管理 systemd 就能满足你,不过你要是换操作系统什么的可能默认的进程管理就不是 systemd 了,你还要重新折腾。楼上说的 supervisor 也不错,python 写的工具,倒是可以做到不同系统统一的配置管理模式,额外附送一个 web 端页面。
    lance86
        9
    lance86  
       Nov 2, 2019 via Android   ❤️ 1
    @fox0001 不用额外装 python 3,supervisor 支持 python2,这只是一个进程管理工具,和你用什么语言开发没关系,你 apt install 就直接装了,还不用操心 supervisor 的开机自启。
    fox0001
        10
    fox0001  
    OP
       Nov 2, 2019 via Android
    @lance86 #8 非常感谢!系统是 Debian9。本来一开始用 init 那套东西的,但是脚本没写好。我去了解一下 systemd
    lxml
        11
    lxml  
       Nov 2, 2019 via Android
    stop 接收处理 signal 信号即可,star 就直接跑
    creating2000
        12
    creating2000  
       Nov 2, 2019 via iPhone
    k8s,docker 太重,supervisor 用着不理想,systemd 好像不通用吧,pm2 还得装 node,nohup 太简陋,我也不知道应该用哪个😂
    loading
        13
    loading  
       Nov 2, 2019 via Android
    加到开机启动 systemd,然后重启,doge.
    14v45mJPBYJW8dT7
        14
    14v45mJPBYJW8dT7  
       Nov 2, 2019
    nohup ./
    seers
        15
    seers  
       Nov 2, 2019
    screen
    zjsxwc
        16
    zjsxwc  
       Nov 2, 2019
    直接编译后运行呗,
    要进程保活,可以用这个 golang 写的 supervisord
    https://github.com/ochinchina/supervisord
    darknoll
        17
    darknoll  
       Nov 2, 2019 via Android
    systemd 满足不了你?
    abcbuzhiming
        18
    abcbuzhiming  
       Nov 2, 2019
    golang 生成的程序就一个文件,还需要 docker ?直接丢到目标机器上部署呗,golang 程序变成 linux service 我记得有教程的
    p1gd0g
        19
    p1gd0g  
       Nov 2, 2019
    我司是打包环境打包后交给运维,运维脚本部署。
    服务挂掉自动重启可以用 zabbix。
    zjyl1994
        20
    zjyl1994  
       Nov 2, 2019
    systemd 写一套 service 文件应该够用了?
    ClericPy
        21
    ClericPy  
       Nov 2, 2019
    如果是我自己我肯定就是 systemd 了, 目前用着没任何问题, 套上 nginx 随便跑, 至于说你 debian 太老默认不是 systemd...小服务直接 tmux 丢后台跑着吧, & nohub 什么的, 手写个守护进程也不太费劲
    至少我现在已经不是后台守护进程工具的拥趸了, 没意义...
    PS: 看楼上提的第一次知道有 golang 的 supervisord, 不知道有 web 么, 以及 web 会有中文乱码问题么
    keepeye
        22
    keepeye  
       Nov 2, 2019
    用啥 supervisord,直接 systemd 简单稳定 journalctl 看日志
    RubyJack
        23
    RubyJack  
       Nov 2, 2019
    systemd
    yemoluo
        24
    yemoluo  
       Nov 2, 2019   ❤️ 1
    systemd 就能解决所有问题了,不要给自己累加技术栈
    learningman
        25
    learningman  
       Nov 2, 2019 via Android
    说实话,docker 真的好用
    BlBana
        26
    BlBana  
       Nov 2, 2019 via Android
    emmm,突然想到我之前是 supervisord 启项目,systemd 启 supervisord ... 我好像傻了
    reus
        27
    reus  
       Nov 3, 2019
    不支持 systemd 的环境都是垃圾。
    xmge
        28
    xmge  
       Nov 3, 2019
    nohup 不行吗?
    awhane
        29
    awhane  
       Nov 3, 2019
    systemd,supervisor,docker,都能满足你的需求,一般推荐 docker,然后 docker-compose 了解下。
    qq1340691923
        30
    qq1340691923  
       Nov 4, 2019
    写一个重启脚本,加入开机自启
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4834 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 108ms · UTC 10:01 · PVG 18:01 · LAX 03:01 · JFK 06:01
    ♥ Do have faith in what you're doing.