小弟不才,所求大神。
之前是开源的 php 程序,如果代码升级,操作都是进入后台,打开关闭网站,然后 ftp 上传代码,再打开网站。 网站有一定数量的会员访问。
后来自己用 flask 重写了代码, nginx+gunicorn+flask 部署,代码用 git 拉取, 现在更新网站方式: 代码用 git 拉取,然后 pstree -ap|grep gunicorn kill -HUP PID
感觉很怪异,特来问问大家有什么好方式?谢谢
1 alasou 2020-08-10 11:00:41 +08:00 fabric |
![]() | 2 singerll 2020-08-10 11:08:39 +08:00 via Android docker 编排 |
![]() | 3 sidegem 2020-08-10 11:20:01 +08:00 supervisor |
![]() | 4 jenlors 2020-08-10 11:28:21 +08:00 docker-compose 或者 supervisor |
![]() | 5 bonfy 2020-08-10 11:38:30 +08:00 看上去你需要的就是个 Jenkins 当然再改个 docker 部署也行 |
![]() | 6 precisi0nux 2020-08-10 11:42:12 +08:00 via iPhone k8s |
![]() | 7 qilishasha 2020-08-10 11:47:39 +08:00 我们的运维一般 nginx 做端口映射同时跑几套程序,切端口能达到毫秒级来达到更新的目的,但是 session 会掉(没有很完美的办法)。代码更新一般是 ssh 直接复制粘贴。 |
![]() | 8 wangyzj 2020-08-10 12:00:30 +08:00 照着 devops 流程走一遭 |
9 zsen 2020-08-10 12:11:51 +08:00 alias |
10 sxfscool 2020-08-10 12:23:04 +08:00 @qilishasha redis token 不行么 |
![]() | 11 feiniu 2020-08-10 14:19:39 +08:00 502 Bad Gateway 打开你这个帖子 ,连续五次 502.。。。。。。。。。。。。。。 |
![]() | 12 no1xsyzy 2020-08-10 14:23:26 +08:00 @qilishasha #7 Flask 的 session 实现不是类似(还是就是?) jwt 么? 我开发用的那个整个关掉再开也没掉 session |
![]() | 13 no1xsyzy 2020-08-10 14:26:57 +08:00 总之需要个编配方式 不通过手动,而是某个外层监控装置去监控它的运行 systemd 不常用但也可以 |
![]() | 14 tomczhen 2020-08-10 14:30:44 +08:00 via Android client side session 不会有问题,只要 session 密钥不变,flask 默认使用这种方式。server side session 如果只是内存 /文件保存,通过多个实例切换的话,就需要持久化到 db 。 |
15 suchbear 2020-08-10 14:39:14 +08:00 哈哈哈哈,跟我一样用 git 来更新 |
16 chenqh 2020-08-10 14:47:54 +08:00 ansible+supervisor |
![]() | 18 no1xsyzy 2020-08-11 09:32:29 +08:00 @lixuda #17 你(为了图方便而)用了怪异的方式启动,那自然是怪异的更新方式 不知道你在寻求什么?甚至这是否真的方便还两说。 |
![]() | 20 huichao 2020-12-19 14:02:26 +08:00 1. 用 python 写个 github (比如你用的是 GitHub,gitlab 也可以)的 webhook,用 fabric 写命令自动部署,用 Nginx 也可以做到无宕机 2. 找个 serverless 的服务器,部署无宕机 |