各位大佬,现在项目是使用 nohup 来启动的,每次更新时 都要拉新代码,重启。
问了 GPT 可以用 Gunicorn 方式不停服务更新
这种有没有坑呢??
![]() |
1
gaobh 3 天前
负载均衡也行,更新的时候路由到其他节点上
|
![]() |
2
so1n 3 天前 ![]() gunicorn 就支持不停服务更新,他再有坑也没有你的 nohup 多...
|
3
dcsuibian 3 天前 ![]() Nginx+蓝绿部署就行了
简单来说就是你原来的进程不停,新起一个进程,更新 Nginx 配置文件,nginx -s reload 就行。如果当前有请求正在处理的话,Nginx 会维持旧的连接,但是会把新的请求导向新的地方。 具体来说:现在旧的服务的端口是 9527 ,新的是 9528 。在/etc/nginx/conf.d/中有两个文件,9527.conf 和 9528.conf.bak ,分别导向两个服务。只要重命名一下文件,然后 reload nginx 就行。下次再需要更新就反过来。 其实基本原理都差不多,k8s 也是类似的做法。 问题也是有的,首先有状态服务(数据库)还是不能随便变的。 其次就是长连接还是有问题,比如 WebSocket 。所以最好不要一更新完就把旧的给 kill 了。 |
![]() |
4
w292614191 2 天前
借楼问问 docker 怎么弄,先跑一个新的容器?然后等一会 stop 旧的?
|