(1/3)从零开始,手搓一台与微信小程序交互的排队叫号机:概述与思路
项目需要,在门店摆一台排队叫号一体机,类似银行、医院、办证大厅、餐厅的那种。
这个没什么特别,本质是台一体式机身的触摸显示屏+热敏打印机。网上有很多成品的产品,价格一般在 3000 - 5000 之间。
需求特殊之处是要求和项目的小程序结合。是个会员制收费服务。要求排队取号的时候就从顾客的小程序账号上相应的计费,然后才吐出排队小票。
理了一下整个排队取票+叫号的业务流程和结构如下:
项目需要,在门店摆一台排队叫号一体机,类似银行、医院、办证大厅、餐厅的那种。
这个没什么特别,本质是台一体式机身的触摸显示屏+热敏打印机。网上有很多成品的产品,价格一般在 3000 - 5000 之间。
需求特殊之处是要求和项目的小程序结合。是个会员制收费服务。要求排队取号的时候就从顾客的小程序账号上相应的计费,然后才吐出排队小票。
理了一下整个排队取票+叫号的业务流程和结构如下:
随着版本迭代和 Conway
更新的上线,对运行节点的配置要求也水涨船高,目前为止 9.1.1 的配置要求是
Minimum System Requirements
- An Intel or AMD x86 processor with two or more cores, at 1.6GHz or faster (2GHz or faster for a stake pool or relay)
- Or, for MacOS, an Apple Silicon (M1, M2 or M3) processor
- 24GB of RAM
- 200GB of free storage (250GB recommended for future growth)
就内存和存储空间这两项,租用云服务器涨配置直接等同于加钱。
实施本地化部署部分节点后,变成一次性投入相对还好点。我这从最早期运营下来的节点,SSD从一开始 120G 升级到 256G,最近又因为空间不足又迫切需要升级到 512G 甚至 1T。
作为经典配置 1(block producer) + 2 (relay) + 1(test + cold wallet)
4个节点4台设备内存独立配置没有办法,但硬盘空间是否可以融合共享达到进一步节省成本的目的呢。
分析和试验了一下,还真可以!
一台ubuntu的主板的电源模块故障了。因为硬盘内的资料和环境重新部署太繁琐了,取巧想把硬盘挪到另一台机器上继续用。
以上是事情的背景。
买不到同型号的准系统了,买了个同系的接近的型号(还是用相代的cpu和ram)可以把旧机器上的零件拆过去用。
一切都顺利,本地操作时系统能启用。
直到尝试联网和SSH远程管理的时候发现没网。网线插上了后面水晶头的两个灯,绿灯常亮,橙色灯有规律的每秒短亮一次。
跟着网上查到的对 eth0
一通操作,无用
尝试重启网络服务,无效
netplan --debug apply
报 enp3s0 not found
,大概猜到它的意思,说这个网络设备(网卡)没找到
列出网络设备
ip link
有 lo
和 eno1
, 前者忽略,后者有 MAC ADDRESS,我猜就是网卡了。
把/etc/netplan/ 里的 yaml 配置文件 的 enp3s0
改成了 eno1
,在重启网络。
成了!
正常安装的ubuntu不会遇到这样的情况,因为在安装的时候会自动生成正确名称默认的 netplan 配置文件
这次是更换了硬件,所以设备名称变动了配置没有赋给新网卡,所以导致配置无效。
因为阿里云和腾讯云调整了免费SSL证书政策从1年有效期改成90日。寻找替代方案,看到cloudflare提供15年的证书,但条件是要使用它们家的DNS/CDN服务。验证是在dns过程中接管的。
跟着别人分享的教程一步步操作下来,证书是申请好配置到位了。同时也出现了标题的问题。请求PHP的响应正确,但如果是静态资源 例如加载 js html css png之类浏览器就会报错 301 提示重定向次数过多。
网上搜了一圈基本在说的是 http强制绑定https,当用户访问http时自动重定向到https的情况,设置在nginx conf 的http的 server{} 部分。这显然和我的项目情况不同,我只配置了443 ssl服务。我并不需要约束http。也没有往nginx的方向去想。
以为是cloudflare这种形式的ssl的问题,一直在CF的设置上去研究。
最后实在被搞烦了...决定弃坑,部署个脚本在服务端每90日自动续签ssl。
发现还是一样的问题,php正常打开,html 提示重定向次数过多
脑子被轰了...回头检查 nginx 的 vhost 配置文件。在 443 server{} 的最底部发现这段东西
location / {
return 301 https://$host$request_uri;
}
搞什么飞机... 为什么lnmp会生成这样奇怪的配置。已经是443了还自己跳转给自己
注释之后...问题消除
实际是通用的日志分卷服务,备忘用于 nginx的情况
nginx开启了日志,保存路径在 /home/wwwlogs/access.log
。
需要对定期日志分卷和打包,避免无人值守下把有限的磁盘空间给占满