微信小程序服务器部署总结

技术路线

一.架构+服务

  1. 由于小程序访问量不大,本身对Python更熟悉,后端代码采用的是Python+flask,部署的时候调整为使用 Flask 作为 Web应用框架,用于构建 HTTP 服务,处理客户端的请求与响应。
  2. 借助 Waitress 作为 WSGI(Web Server Gateway Interface)服务器,负责部署和运行 Flask应用,使其能对外提供网络服务。

二.数据存储与缓存

1.数据库连接方面,使用 pyodbc 来连接数据库(通常用于连接 SQL Server 等数据库),同时结合 DBUtils.PooledDB 实现数据库连接池,提升数据库操作的性能和资源管理效率。
2. 缓存机制采用 Flask-Caching,可用于缓存频繁访问的数据,减轻数据库压力,提高响应速度。 还引入了 Redis,Redis常用于作为高性能的键值对存储数据库,可用于缓存、消息队列等场景,进一步优化数据访问性能。

三.安全与认证

  1. 身份认证和授权使用 JWT(JSON Web Token),通过 jwt 库来生成和验证 token,实现无状态的用户认证,便于在分布式系统中进行用户身份传递和验证。
  2. 加密相关,使用 bcrypt 进行密码哈希处理,增强用户密码的安全性;利用 PyCrypto(Crypto 相关模块) 进行 RSA 加密、签名等操作,保障数据传输和存储的安全性,比如 PKCS1_OAEP 用于 RSA 加密,pss 用于签名等。

四.网络部署

整体采用 “小程序客户端 → 域名(HTTPS)→ Nginx 反向代理 → Flask 后端服务” 架构。

小程序(微信客户端)
↓ HTTPS(443端口) 域名 (DNS解析至公网IP,通过路由器端口转发至Nginx服务器IP)
↓ 反向代理 Nginx服务器(处理SSL、静态资源、请求转发)
↓ TCP(5000端口) Flask后端服务(Python进程,运行在内网服务器)
↓ 数据交互 数据库(SQL Server,通过pyodbc+连接池访问)/ Redis(缓存)

1.域名解析

1.在域名服务商(如阿里云、腾讯云)后台,配置域名 的 A 记录,指向 Nginx 服务器的 公网 IPv4 地址。
2.若域名用于微信小程序,需完成工信部 ICP 备案(微信小程序要求后端域名必须备案),备案主体与小程序主体一致。

2.SSL证书配置
  1. 证书获取与续期

采用 Let’s Encrypt 免费证书(通过 Certbot 自动续期),证书文件存放路径: C:/certbot/live/域名/,包含 3 个核心文件: fullchain.pem:完整证书链(服务器证书 +中间证书,确保客户端信任); privkey.pem:服务器私钥(需保护,仅 Nginx 运行用户可读取);chain.pem:中间证书(配置ssl_trusted_certificate,增强兼容性)。

  1. 自动续期脚本(避免证书过期):

保留前期批处理脚本,关键修改 “仅重启 Nginx + 重载配置”,脚本路径 C:/app/ssl_renew.bat:

> `@echo off
echo [%date% %time%] 开始检查SSL证书续签 >> C:\app\ssl_renew.log
:: 证书续签(仅实际更新时执行钩子)
certbot renew --quiet --renew-hook "echo [%date% %time%] 证书更新,重载Nginx >> C:\app\ssl_renew.log && nginx.exe -s reload"
if %errorlevel% equ 0 (
    echo [%date% %time%] 续签检查完成(无需续签/成功) >> C:\app\ssl_renew.log
) else (
    echo [%date% %time%] 续签失败,错误码:%errorlevel% >> C:\app\ssl_renew.log
)
echo ------------------------------------------------------ >> C:\app\ssl_renew.log`

配置 Windows 任务计划(每周执行 1 次,管理员权限),确保证书自动续期。证书有效期不足1月时,会进行自动续签。

  1. Nginx SSL 配置

在 Nginx 的server块中配置 SSL,确保同时支持 IPv4/IPv6,关键配置如下:

server 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值