阿里云服务器购买
- 需要超过 3 个月才能作为域名备案的关联服务器实例。
- 99 元/年的 2核 2G 3M 最低配云服,作为网络穿透服务器,为内网服务器作公网出口。
- 安全组放开 80 端口及其它所需端口,默认公网 IP 的 80 端口不封禁。
域名选购
- 帐号实名认证
- 持有者信息模板认证
- 域名解析配置,默认添加 @ 和 www,其它按需要添加
- 域名未备案前,无法提供解析
域名 ICP 备案
- ICP 备案,个人持有者,认证网站,信息描述不能包含商业性质,不能有用户交互,只能提供信息,名称需避开商业关键字
- 备案通过后,域名解析开通,80端口也同时开通。
FreeSSL 免费 SSL 证书申请
- 需验证是域名持有者在申请证书,验证方式有三种, Email、DNS、FileUpload
DNS 方式最简单,在域名解析中添加 txt 类型的记录,键、值按其给定设置即可,证书签发前会偿试去解析域名的此条记录是否存在,以确认持有关系成立。 - 证书分单域名证书、单域名通配符证书、多域名证书,证书签发绑定域名校验规则不同
- 证书分公有 CA 和私有 CA,公有 CA根证书多数已被各浏览器内置,私有 CA 签发证书只能自用,自签证书制作出来的就是私有 CA签发证书,自已用工具签发。
- 微信小程序环境中需要公有 CA 签发的 SSL 证书才能校验通过,因其已内置公有 CA 根证书,尚不知如何给微信添加私有 CA证书,微信好像没有提供浏览器相关信任机制功能。
本地服务器上配置服务证书
- Apache、Nginx、Tomcat 等均有相关证书格式下载和配置方式
- SpringBoot 根据内置 Tomcat 或其它服务器进行配置
- 更改监听端口 443,以使用 https 来请求证书保护下的 Web 服务
- 如果是 FileUpload 方式的证书校验方式,建议下载安装 Nginx ,简单方便
本地服务器建立到云服的 SSH 隧道
ssh -fNg -o TCPKeepAlive=yes -R SSH服务器监听转发端口:127.0.0.1:本地服务监听端口 root@SSH服务器IP
- -L 本机端口
- -R 服务端口
- -f 后台启用,可以在本机直接执行命令,无需另开新终端
- -N 不打开远程shell,处于等待状态,不跳到远程主机,还在主机上,只是搭好了隧道,桥搭好,不ssh上去
- -g 启用网关功能
- -fNg 以上三个参数组合,输入密码登录成功后,即可断开链接关闭控制台退出,转发隧道依然保持。可以在 linux 下使用 autossh 来检查保障隧道稳定有效,或者其它方式及时重建。
- -o TCPKeepAlive=yes 保持 ssh 连接始终活跃,避免超时断连
- 本地服务器选用 Windows 还是 CentOS Linux,并不影响使用
- 本地 SSH 保持长链接参数配置:c:\Users\Administrator.ssh\config
ServerAliveInterval 60 - 服务器保持连接的参数配置:vi /etc/ssh/sshd_config
TCPKeepAlive yes
ClientAliveInterval 60
ClientAliveCountMax 5 - 默认端口转发只监听 127.0.0.1 限制去除:vi /etc/ssh/sshd_config
GatewayPorts yes - 可能用到的维护命令:
# 重启 sshd 服务 systemctl restart sshd.service# 查询监听端口的进程 id netstat -lnp | grep ssh服务器监听的转发端口# 杀掉进程 kill -9 进程 id
- 测试转发的远程端口需要分步调测,先确保公网可达,再确保服务任意地址监听中,最后是本地服务开启并监听指定端口,最后验证隧道畅通
微信小程序相关
- 微信小程序发布在微信公众平台,只有微信中能拉取列表并点击加载打开小程序界面(不算废话,这是微信代码的活)
- 微信小程序中发出的网络请求地址,必须在白名单中,需要自已配置,配置会验证有效性(这才是你的活)
- 以上地址必须是 https 开头,且必须是公有 CA 签发证书保护下可验证的(此处是关键)
- wx.login 登录后的 session 码,向微信公众平台发起换 key 和 openid ,需要通过业务服务器完成,因为,白名单中不允许添加微信公众平台地址,因为换码所需参数为私密,禁止在前端暴露
- 换码地址没有限制,任何公网都可以请求到
- 换码地址如下:
https://api.weixin.qq.com/sns/jscode2session?appid=appid&secret=secret&js_code=js_code&grant_type=authorization_code
appid - 在小程序管理后台可查
secret - 在小程序管理后台可重新生成,生成后需拷贝出来储存备用,不可查,只能重生成
js_code - 这就是 wx.login 返回的会话码
grant_type=authorization_code - 授权类型暂时只需这样填 -
微信小程序配置式开发很简化开发流程,界面采用弹性布局
-
弹性布局这里有一套视频讲得很清楚且简单:https://www.bilibili.com/video/BV1N54y1i7dG?vd_source=4c75035aef788050a3a75bbc7057bf06
-
微信小程序也可使用 uniapp 来开发,这里有一套入门视频,最新 vue3 内容,也很简单,只是需要反复看磨脑子:https://www.bilibili.com/video/BV1Fi421Y7a3?p=23&vd_source=4c75035aef788050a3a75bbc7057bf06
万事俱备,只欠东风:业务模型
- 业务疏理用 XMind 画脑图
- 流程和交互的推演、设计、打磨,用 Axure
- 附几张手机外壳底图,使设计更具逼真效果
- 拼出个小程序工具条在导航栏上
- Axure 的概要图层管理组织过程,就是网页布局分块的过程,设计功能不白下
- 区块化组织Axure中元素的组合:
顶部:标题栏、导航栏
底部:TabBar
中间:内容区,靠顶是滑动标签,也可以是滑动工具栏,标签切换页,工具栏就只按条件更新内容。 - 区块化组合后,在概要中鼠标移到指定区块,都能完整预览该区块功能,为后续添加演示交互事件提供了很大便利。