我在工作中维护一个托管在云平台上的 Web 应用程序。
我希望使用这种工作流程。
- 在实时站点运行时,准备一个与生产环境相同的新环境,只是在其上运行新代码。
- 测试一段时间,如果发现不错,就将生产切换到新服务器,但保留旧服务器。
- 如果客户端遇到问题,其想法是快速切换回原始服务器。
- 如果新服务器很好,最终将删除旧服务器,并在下次部署时重新开始该过程。
涉及多个服务器实例,配置方式复杂,但它们都由应用程序/Web 服务器作为前端。因此切换仅涉及指向新的前端服务器。
实现这一目标的最佳方法是什么?
我正在考虑使用 HAProxy,但所有示例都是有关故障转移或负载平衡的,我只是想将其用作手动“开关”以在服务器之间快速切换。
我还希望代理能够执行 SSL 终止,并且它必须处理 websocket。
答案1
您可以使用 Apache 作为反向代理。它可执行 SSL 终止,还可代理 2.4 及更高版本的 websocket。
在最简单的版本中(没有任何负载平衡,因为您说流量“全部由应用程序/ Web 服务器前端”),您只需添加使用此配置:
ProxyPass "/" "http://server_IP/"
ProxyPassReverse "/" "http://server_IP/"
要更改目的地,只需更改 IP 以指向其他服务器并重新加载 apache。
更多信息可以在这里找到: