我们的服务端使用python写的,用nginx做反向代理。
常规情况下,更新服务是要把服务关掉然后在开启一个新的节点。
如果这时候有请求进来,客户端会收到 502 服务器挂掉的情况。
我们怎么样才能然客户端无感知呢。
利用nginx的特性我们可以做到更新服务器,客户端无感知。
1、先开启新版本的服务
2、更改nginx的 upstream
添加新服务的地址,让nginx同时代理新旧服务。
3、将旧服务的地址从 upstream
里移除
4、等旧服务处理完请求后,关闭旧服务
到此,我们更新了服务器,而客户端无感知。