NC 攀岩馆的小程序挂了

作者: | 更新日期:

研究了一下小程序的链路,解决了这个问题。

本文首发于公众号:天空的代码世界,微信号:tiankonguse

零、背景

2023 年 1 月 30 日晚上,海涛(NC 攀岩馆的老板)在微信上向我发送两个字:求救,随后发给我一个小程序。

这个小程序用于 NC 攀岩馆日常的购买门票、月卡、年卡以及会员打卡。

我打开后,发现小程序打不开后,显然是后台服务挂了。

一、初步判断

我问了第一个问题:是否有重启后台服务。
海涛回答说没有。

小程序后台服务部署在腾讯云的一个 CVM 服务器上。
目前还不支持 CVM 服务器重启后自动拉起小程序的服务。

不管是否有重启,我登陆上去看下就知道了。

上去一看,nginx 网关进程、后台服务 java 进程、数据库进程 都正常存在。

啥都先不管,全部重启一把再说。
结果重启后,小程序依旧没有回复正常。

于是我看是从全链路来分析问题到底处在哪里。

二、问题分析

其实 NC 攀岩馆的服务链路比较简单。

我先打开小程序,查看 Nginx 的日志,发现没有访问日志。
因此得出判断:小程序到 Http Nginx 代理中间哪里出问题了。

我打开微信开发者工具,抓小程序向后台请求的包,发现 SSL 连接超时了。
因此得出判断: 负载均衡 CLB 或 SSL 证书出问题了。

打开负载均衡 CLB 页面,发现负载均衡 CLB 实例不见了。

后来我查操作流水,发现负载均衡 CLB 实例在 1 月 28 日被删除了,删除人就是海涛这个超级管理员账户。

于是我猜测是 1 月 28 日欠费自动删除了,于是让海涛查询是否有收到短信通知。

得知确实有欠费后,那问题原因就明确了:负载均衡 CLB 欠费后,实例被自动回收了。

三、解决方案

确认是负载均衡欠费被回收了,那解决方案自然是再买一个负载均衡实例。

购买负载均衡实例后,需要做三个配置。

然后对 DNS 配置、SSL 配置、负载均衡三个模块做相应的配置。

1、DNS 配置

负载均衡实例有一个固定的外网 IP,在 DNS 里把之前的负载均衡实例 IP 替换掉。

2、SSL 配置

腾讯云可以免费申请到有效期为一年的 SSL 证书,申请后,绑定到 购买的负载均衡实例上。

3、负载均衡配置

负载均衡配置是最麻烦的。

配置负载均衡的页面有一个帮助链接,点开是《七层转发域名和 URL 规则说明》的配置文档。

我参考腾讯云的这个《七层转发域名和 URL 规则说明》文档,,配置了监听器、域名规则、URL路径规则。

但是发现最后一步,文档没介绍怎么把流量转发到 CVM 服务器去。

消耗大量时间后,我无意间找到了配置入口,最终才完成配置。

三个配置都完成后,等若干分钟后,小程序就可以正常使用了。

四、最后

这次通过解决 NC攀岩馆的小程序故障,我知道了腾讯云的负载均衡 CLB 以及 SSL 证书是怎么配置的。

其实这里负载均衡 CLB主要是为了解决 SSL 证书问题,毕竟背后只有一个 CVM 服务器。
负载均衡实例每小时扣费 0.2元,一天就是 4.8 元,一年就是 1752 元。
如果自己手动把 SSL 证书安装到 CVM 服务器上,就可以不购买负载均衡 CLB 了。

PS:写这篇文章时,我又看了下《配置 HTTP 监听器》和《配置 HTTPS 监听器》文档手册,发现这里面介绍的有怎么配置 CVM 服务器。

你认为应该直接使用负载均衡CLB 还是应该手动把 SSL 整数部署在 CVM 上呢?

加油,读书人。

《完》

-EOF-

本文公众号:天空的代码世界
个人微信号:tiankonguse
公众号ID:tiankonguse-code

本文首发于公众号:天空的代码世界,微信号:tiankonguse
如果你想留言,可以在微信里面关注公众号进行留言。

关注公众号,接收最新消息

tiankonguse +
穿越