很多朋友第一次部署小程序的时候,往往会觉得无从下手——域名怎么搞?证书是什么?服务器选多大的?这些问题看似简单,但真要一个个落实下来,还是挺让人头疼的。这篇文章就来把整个流程捋清楚,把踩过的坑和经验都分享出来。


背景

小程序的技术架构

在聊准备工作之前,咱们先搞清楚小程序到底是怎么跑起来的。小程序的运行其实分成了两个部分:

前端部分:运行在微信客户端里,负责页面展示和用户交互。这部分代码需要上传到微信公众平台,由微信来管理和分发。

后端部分:运行在你自己的服务器上,负责业务逻辑处理、数据存储、文件管理等。这部分就是我们今天要重点讨论的——怎么把后端服务部署起来。

┌─────────────┐         ┌─────────────┐         ┌─────────────┐
│   用户手机   │ ──────► │  微信服务器   │ ──────► │  你的服务器   │
│  (微信客户端) │         │ (分发前端代码) │         │ (运行后端API) │
└─────────────┘         └─────────────┘         └─────────────┘

为什么需要这些准备工作

小程序的后端服务不是随便找个地方就能跑的。微信对服务器有严格的要求:

  1. 必须是已备案的域名——不能用 IP 地址直接访问
  2. 必须使用 HTTPS——不支持 HTTP 明文传输
  3. 域名需要在后台配置——只有配置过的域名才能被小程序访问

这些要求看起来是限制,实际上是在保护用户数据安全。理解了这一点,你就明白为什么要做那么多准备工作了。


问题

新手常见困惑

在实际项目中,我见过不少开发者踩过这些坑:

域名相关问题

  • “我买了域名,为什么小程序还是访问不了?”——因为没有备案
  • “域名备案要多久?能不能加急?”——通常 7~20 个工作日,不能加急
  • “我用别人的域名行不行?”——不行,域名主体需要和小程序主体一致

证书相关问题

  • “证书是什么?为什么要花钱买?”——HTTPS 加密需要证书,有免费的选择
  • “证书装好了,浏览器还是提示不安全?”——可能是证书链不完整
  • “证书过期了会怎样?”——用户打开小程序会看到安全警告,体验很差

服务器相关问题

  • “服务器买多大的合适?”——取决于你的业务规模和用户量
  • “为什么我的接口访问这么慢?”——可能是服务器配置太低,或者没有用 CDN
  • “服务器被攻击了怎么办?”——需要配置安全组、防火墙、WAF 等防护措施

数据库相关问题

  • “用什么数据库比较好?”——MySQL 是最通用的选择,Redis 用来做缓存
  • “数据库要不要买云数据库?”——如果预算允许,云数据库省心很多
  • “数据丢了怎么办?”——一定要配置自动备份,并定期演练恢复

时间成本预估

很多人低估了准备工作的时间成本。根据我的经验,一个完整的部署准备流程大概需要:

环节 耗时 备注
账号注册 1~2 小时 企业账号需要准备材料
域名注册 30 分钟 找个好记的名字就行
ICP 备案 7~20 个工作日 最耗时的环节
服务器购买 10 分钟 选择配置后直接下单
环境配置 2~4 小时 看你对 Linux 的熟悉程度
证书申请 30 分钟~1 天 免费证书很快,付费证书需要验证
整体联调 2~4 小时 遇到问题可能会更久

建议:在开发的同时就开始准备域名和备案,这样可以节省很多等待时间。


方案

整体规划思路

部署小程序的准备工作可以分成几个阶段来做:

第一阶段:基础准备(开发前)

  • 注册小程序账号,获取 AppID
  • 注册域名,提交 ICP 备案
  • 购买云服务器

第二阶段:环境搭建(开发中)

  • 配置服务器环境
  • 申请 SSL 证书
  • 配置域名解析

第三阶段:部署上线(开发完成后)

  • 部署后端代码
  • 配置小程序合法域名
  • 提交审核发布

第四阶段:运维保障(上线后)

  • 配置监控告警
  • 配置自动备份
  • 性能优化

技术选型建议

根据不同场景,我给出几种推荐方案:

方案一:微信云开发(适合小型项目/个人项目)

  • 优点:免服务器、免域名备案、开箱即用
  • 缺点:有配额限制、不适合复杂业务
  • 成本:免费额度 + 按量计费

方案二:传统云服务器(适合大多数项目)

  • 优点:灵活、可控、适合各种业务
  • 缺点:需要自己运维
  • 成本:服务器 + 数据库 + CDN + 其他服务

方案三:Serverless 架构(适合流量波动大的项目)

  • 优点:按需付费、自动扩缩容
  • 缺点:冷启动延迟、调试不便
  • 成本:按调用次数计费

成本控制策略

对于初创项目,我建议这样控制成本:

  1. 从最小配置开始:2 核 4G 的服务器足够支撑 1000 以内的日活用户
  2. 善用免费资源:Let’s Encrypt 免费证书、云厂商免费额度
  3. 按需扩容:等业务增长后再升级配置,不要一开始就买高配
  4. 选择合适的云厂商:腾讯云和微信生态结合更好,阿里云性价比更高

实现

一、账号与资质准备

1.1 小程序账号注册

注册小程序账号是第一步,也是最基础的一步。

注册地址:https://mp.weixin.qq.com

账号类型选择

类型 适合谁 需要的材料 能力差异
个人 个人开发者 身份证、手机号 接口权限较少,不能用微信支付
企业 公司、团队 营业执照、法人身份证 接口权限完整
政府 政府机关 组织机构代码证 有专属能力
媒体 媒体机构 媒体资质证明 有专属能力

我的建议:如果是做正经的商业项目,建议直接注册企业账号。个人账号虽然注册简单,但接口权限受限,后面再升级会比较麻烦。

1.2 AppID 获取

注册完账号后,需要获取 AppID,这是小程序的唯一标识。

获取路径:微信公众平台 → 开发管理 → 开发设置

需要保存的信息

  • AppID:小程序的唯一标识,开发时需要用到
  • AppSecret:密钥,非常重要,不要泄露给他人

注意事项

  • AppSecret 只在生成时显示一次,一定要保存好
  • 如果泄露了,可以重置,但需要重新配置所有使用它的地方
  • 建议使用环境变量存储,不要硬编码在代码里
1.3 开发者配置

为了让团队成员能够协作开发,需要配置开发者权限。

配置路径:微信公众平台 → 成员管理

角色说明

  • 项目负责人:拥有所有权限
  • 开发者:可以开发、调试、上传代码
  • 体验者:可以使用体验版
  • 观察者:只能查看,不能操作

二、域名准备

2.1 域名注册

域名是用户访问你服务的地址,选择一个好的域名很重要。

域名注册商推荐

  • 阿里云(万网):国内最大的域名注册商
  • 腾讯云:和微信生态结合更好
  • 华为云:安全合规能力强

域名选择建议

  • 尽量选择 .com 域名,用户认知度最高
  • 域名要简短好记,避免使用连字符
  • 如果是企业项目,建议使用品牌名作为域名

价格参考

  • .com 域名:约 100 元/年
  • .cn 域名:约 100 元/年
  • .net 域名:约 100 元/年
2.2 ICP 备案

这是最耗时的环节,一定要提前准备。

备案流程

  1. 在云厂商备案系统提交备案申请
  2. 填写主体信息(企业/个人信息)
  3. 填写网站信息(域名、网站名称等)
  4. 上传证件材料
  5. 进行人脸核验
  6. 等待审核(初审 1~3 个工作日,管局审核 7~20 个工作日)

备案材料清单

企业备案:

  • 营业执照副本(彩色扫描件)
  • 法人身份证(正反面)
  • 网站负责人身份证(正反面)
  • 核验单(云厂商提供模板)
  • 域名证书(域名注册商提供)

个人备案:

  • 身份证(正反面)
  • 核验单
  • 域名证书

常见问题

  • 备案期间域名不能访问:正常,等备案通过后再配置
  • 备案被驳回:根据驳回原因修改后重新提交
  • 备案需要当面核验:部分省份需要,云厂商会安排
2.3 域名解析配置

备案通过后,需要配置域名解析,把域名指向你的服务器。

解析记录类型

类型 用途 示例
A 记录 把域名指向一个 IP 地址 api.example.com → 123.45.67.89
CNAME 记录 把域名指向另一个域名 www.example.com → example.com
MX 记录 邮件服务器配置 邮件服务需要

配置步骤

  1. 登录域名注册商的控制台
  2. 找到域名解析设置
  3. 添加 A 记录,主机记录填 api(或其他子域名),记录值填服务器 IP
  4. 保存后等待解析生效(通常几分钟到几小时)

TTL 设置建议

  • 测试环境:设置较短的 TTL(如 600 秒),方便快速切换
  • 生产环境:设置较长的 TTL(如 3600 秒),减少 DNS 查询

三、SSL 证书配置

3.1 证书类型选择

SSL 证书用于实现 HTTPS 加密传输,小程序强制要求使用 HTTPS。

证书类型对比

类型 验证方式 价格区间 申请时间 推荐品牌 适合场景
DV(域名验证型) 验证域名所有权 免费 ~ ¥500/年 几分钟 ~ 1 小时 Let’s Encrypt(免费)、DigiCert、GeoTrust、Sectigo、腾讯云/阿里云免费证书 个人项目、测试环境、一般业务
OV(组织验证型) 验证组织真实性 ¥1000 ~ ¥5000/年 1~3 个工作日 DigiCert、GeoTrust、Sectigo、GlobalSign、Thawte 企业官网、一般业务、企业小程序
EV(扩展验证型) 严格验证组织 ¥3000 ~ ¥15000/年 3~7 个工作日 DigiCert、GeoTrust、GlobalSign、Symantec 金融、电商、政务、高安全需求

各品牌特点

  • Let’s Encrypt:完全免费,自动化程度高,但需要 90 天续期一次,适合技术团队自行管理
  • DigiCert:全球最大的 CA 机构之一,品牌认可度高,适合大中型企业
  • GeoTrust:性价比高,国内市场接受度好,适合中小企业
  • Sectigo(原 Comodo):价格实惠,证书类型丰富,适合预算有限的企业
  • GlobalSign:老牌 CA 机构,国际认可度高,适合有国际业务的企业
  • 腾讯云/阿里云免费证书:申请简单,与云平台集成好,适合快速上手

我的建议

  • 个人项目或测试环境:直接用 Let’s Encrypt 或云厂商免费证书,省心省钱
  • 企业一般业务:选择 DV 证书即可,推荐 DigiCert 或 GeoTrust 的 DV 证书
  • 企业正式项目:建议选择 OV 证书,提升用户信任度
  • 金融、电商等高安全需求:选择 EV 证书,浏览器会显示绿色地址栏
3.2 免费证书申请

Let’s Encrypt

  • 完全免费,90 天有效期,可自动续期
  • 申请工具:Certbot、acme.sh
  • 适合有一定技术基础的开发者

云厂商免费证书

  • 腾讯云、阿里云都提供免费 DV 证书
  • 申请流程简单,在控制台操作即可
  • 通常 1 年有效期,到期需要重新申请

申请流程(以 Let’s Encrypt 为例)

# 安装 certbot
sudo apt install certbot

# 申请证书(standalone 模式)
sudo certbot certonly --standalone -d api.example.com

# 证书文件位置
/etc/letsencrypt/live/api.example.com/
├── fullchain.pem  # 证书链
├── privkey.pem    # 私钥
├── cert.pem       # 证书
└── chain.pem      # 中间证书
3.3 证书部署

证书申请下来后,需要部署到 Web 服务器上。

Nginx 配置示例

server {
    listen 443 ssl;
    server_name api.example.com;

    ssl_certificate /etc/nginx/ssl/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/privkey.pem;
    
    # SSL 优化配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_prefer_server_ciphers on;
    ssl_session_timeout 10m;
    ssl_session_cache shared:SSL:10m;
    
    # 强制 HTTPS 跳转
    add_header Strict-Transport-Security "max-age=31536000" always;
    
    location / {
        proxy_pass http://localhost:3000;  # 转发到后端服务
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

# HTTP 跳转 HTTPS
server {
    listen 80;
    server_name api.example.com;
    return 301 https://$server_name$request_uri;
}

证书续期配置

# Let's Encrypt 自动续期(crontab)
0 0 1 * * certbot renew --quiet && systemctl reload nginx

四、服务器准备

4.1 服务器选型

云厂商选择

厂商 产品 特点 适合场景
腾讯云 CVM 与微信生态结合好 微信相关项目首选
阿里云 ECS 生态完善,文档丰富 通用场景
华为云 ECS 安全合规能力强 政企项目
AWS EC2 全球节点 国际化项目

配置选择建议

业务规模 CPU 内存 系统盘 带宽 月费用参考
开发测试 1核 2GB 40GB SSD 1Mbps ¥50~100
小型业务 2核 4GB 50GB SSD 3Mbps ¥200~400
中型业务 4核 8GB 100GB SSD 5Mbps ¥500~1000
大型业务 8核+ 16GB+ 200GB+ SSD 10Mbps+ ¥1500+

我的建议

  • 开发测试阶段:1 核 2G 就够了,省钱
  • 正式上线:至少 2 核 4G,保证稳定性
  • 带宽:前期可以小一些,后面根据流量情况升级
4.2 操作系统选择

Linux 发行版推荐

发行版 版本 支持周期 特点 适合谁
Ubuntu 22.04 LTS / 24.04 LTS 5 年标准支持 软件包丰富,社区活跃,文档多 新手推荐、通用场景
Rocky Linux 9.x 支持到 2032 年 CentOS 替代品,RHEL 兼容,稳定可靠 企业生产环境、有经验的运维
AlmaLinux 9.x 支持到 2032 年 CentOS 替代品,RHEL 兼容,社区驱动 企业生产环境
Debian 12 (Bookworm) 支持到 2028 年 轻量、稳定、安全 追求简洁稳定的开发者

版本选择说明

Ubuntu

  • Ubuntu 24.04 LTS(Noble Numbat):2024 年 4 月发布,支持到 2029 年,最新长期支持版本,推荐新项目使用
  • Ubuntu 22.04 LTS(Jammy Jellyfish):2022 年 4 月发布,支持到 2027 年,成熟稳定,生态完善
  • ⚠️ Ubuntu 20.04 LTS 将于 2025 年 4 月结束标准支持,不建议新项目使用

CentOS 替代方案

  • ⚠️ CentOS 7 已于 2024 年 6 月 30 日结束生命周期(EOL),不再提供安全更新
  • ⚠️ CentOS 8 已于 2021 年 12 月 31 日停止维护
  • Rocky Linux:由 CentOS 创始人发起,完全兼容 RHEL,是 CentOS 的最佳替代品
  • AlmaLinux:由 CloudLinux 公司发起,同样兼容 RHEL,社区活跃

Debian

  • Debian 12(Bookworm):2023 年 6 月发布,当前稳定版本,支持到 2028 年
  • 以稳定性和安全性著称,软件包经过严格测试
  • 适合对系统稳定性要求高的生产环境

我的建议

  • 新手/快速上手:推荐 Ubuntu 24.04 LTS,文档最多,遇到问题容易找到解决方案
  • 企业生产环境:推荐 Rocky Linux 9 或 AlmaLinux 9,稳定可靠,长期支持
  • 追求稳定简洁:推荐 Debian 12,系统干净,安全可靠
  • 云服务器:各大云厂商都提供上述系统的镜像,安装方便

特别提醒:避免使用已停止维护的系统版本(如 CentOS 7、Ubuntu 18.04),这些系统不再接收安全补丁,存在安全风险。

4.3 环境配置

服务器买好后,需要配置运行环境。

基础环境安装(以 Ubuntu + Node.js 为例)

# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装 Node.js
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs

# 安装 Nginx
sudo apt install -y nginx

# 安装 PM2(Node.js 进程管理)
sudo npm install -g pm2

# 安装 Git
sudo apt install -y git

# 安装其他常用工具
sudo apt install -y curl wget vim htop

安全加固配置

# 1. 修改 SSH 端口
sudo vim /etc/ssh/sshd_config
# 修改 Port 22 为其他端口,如 Port 2222

# 2. 禁用 root 远程登录
# 设置 PermitRootLogin no

# 3. 配置防火墙
sudo ufw enable
sudo ufw allow 2222/tcp  # SSH 端口
sudo ufw allow 80/tcp    # HTTP
sudo ufw allow 443/tcp   # HTTPS

# 4. 安装 fail2ban 防暴力破解
sudo apt install -y fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
4.4 Nginx 配置

Nginx 作为反向代理和静态资源服务器,是部署小程序后端的标配。

完整的 Nginx 配置

# /etc/nginx/sites-available/api.example.com

# 上游服务器配置
upstream backend {
    server 127.0.0.1:3000;
    keepalive 32;
}

# HTTP 跳转 HTTPS
server {
    listen 80;
    server_name api.example.com;
    return 301 https://$server_name$request_uri;
}

# HTTPS 主配置
server {
    listen 443 ssl http2;
    server_name api.example.com;

    # SSL 证书配置
    ssl_certificate /etc/nginx/ssl/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_prefer_server_ciphers on;

    # 日志配置
    access_log /var/log/nginx/api.example.com.access.log;
    error_log /var/log/nginx/api.example.com.error.log;

    # 请求大小限制(小程序图片上传需要)
    client_max_body_size 10m;

    # API 转发
    location /api/ {
        proxy_pass http://backend;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_cache_bypass $http_upgrade;
        
        # 超时设置
        proxy_connect_timeout 60s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
    }

    # 静态资源
    location /static/ {
        alias /var/www/static/;
        expires 30d;
        add_header Cache-Control "public, immutable";
    }

    # 健康检查
    location /health {
        access_log off;
        return 200 "OK";
        add_header Content-Type text/plain;
    }
}

启用配置

sudo ln -s /etc/nginx/sites-available/api.example.com /etc/nginx/sites-enabled/
sudo nginx -t  # 测试配置
sudo systemctl reload nginx

五、数据库准备

5.1 数据库选型

常用数据库对比

数据库 类型 特点 适合场景
MySQL 关系型 最流行,生态完善 通用业务数据
PostgreSQL 关系型 功能强大,支持复杂查询 复杂业务、地理数据
MongoDB 文档型 灵活,Schema-free 内容管理、用户画像
Redis 键值型 高性能,支持多种数据结构 缓存、会话、排行榜

我的建议

  • 主数据库:MySQL 8.0 或 PostgreSQL 14+
  • 缓存数据库:Redis 6.0+
  • 如果是简单项目,只用 MySQL 也够了
5.2 数据库部署

自建数据库(以 MySQL 为例)

# 安装 MySQL
sudo apt install -y mysql-server

# 安全配置
sudo mysql_secure_installation

# 创建数据库和用户
sudo mysql -u root -p
-- 创建数据库
CREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 创建用户并授权
CREATE USER 'myapp_user'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON myapp.* TO 'myapp_user'@'localhost';
FLUSH PRIVILEGES;

MySQL 配置优化

# /etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]
# 基础配置
bind-address = 127.0.0.1
port = 3306

# 字符集
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

# InnoDB 配置
innodb_buffer_pool_size = 1G  # 建议设置为内存的 50%~70%
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

# 连接配置
max_connections = 200
wait_timeout = 600
interactive_timeout = 600

# 慢查询日志
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2

使用云数据库

如果预算允许,强烈建议使用云数据库。优点是:

  • 自动备份
  • 自动扩容
  • 高可用(主从架构)
  • 运维省心

云数据库价格参考(以腾讯云 MySQL 为例):

  • 1 核 1GB,50GB 存储:约 ¥100/月
  • 2 核 4GB,100GB 存储:约 ¥400/月
  • 4 核 8GB,200GB 存储:约 ¥800/月
5.3 数据库备份策略

数据是最重要的资产,一定要做好备份。

备份策略建议

  • 每天凌晨全量备份
  • 开启 binlog 实时备份
  • 备份文件保留至少 7 天
  • 定期进行恢复演练

自动备份脚本

#!/bin/bash
# /usr/local/bin/mysql_backup.sh

BACKUP_DIR="/var/backups/mysql"
DATE=$(date +%Y%m%d_%H%M%S)
DB_NAME="myapp"
DB_USER="backup_user"
DB_PASS="backup_password"

# 创建备份目录
mkdir -p $BACKUP_DIR

# 执行备份
mysqldump -u$DB_USER -p$DB_PASS --single-transaction --routines --triggers $DB_NAME | gzip > $BACKUP_DIR/$DB_NAME_$DATE.sql.gz

# 删除 7 天前的备份
find $BACKUP_DIR -name "*.sql.gz" -mtime +7 -delete

echo "Backup completed: $DB_NAME_$DATE.sql.gz"

配置定时任务

# 添加到 crontab
crontab -e

# 每天凌晨 2 点执行备份
0 2 * * * /usr/local/bin/mysql_backup.sh >> /var/log/mysql_backup.log 2>&1

六、网络架构配置

6.1 CDN 配置

CDN(内容分发网络)可以加速静态资源的访问,提升用户体验。

CDN 配置步骤

  1. 开通 CDN 服务(腾讯云/阿里云/CloudFlare)
  2. 添加加速域名
  3. 配置 CNAME 解析
  4. 配置缓存规则
  5. 开启 HTTPS

缓存策略建议

资源类型 缓存时间 说明
HTML 不缓存 动态内容,每次从源站获取
CSS/JS 30 天 使用版本号控制更新
图片 30 天 使用版本号或 hash 控制更新
字体 365 天 很少变更

防盗链配置

# 只允许指定域名访问
*.example.com
*.weixin.qq.com
6.2 负载均衡配置

当单台服务器无法满足业务需求时,需要使用负载均衡。

负载均衡方案

方案 优点 缺点 适合场景
Nginx 负载均衡 免费、灵活 需要自己运维 小型集群
云厂商 SLB 高可用、免运维 收费 中大型业务
DNS 负载均衡 简单、便宜 不够灵活 多机房部署

Nginx 负载均衡配置

upstream backend {
    # 轮询策略
    server 192.168.1.10:3000;
    server 192.168.1.11:3000;
    
    # 加权轮询
    # server 192.168.1.10:3000 weight=3;
    # server 192.168.1.11:3000 weight=1;
    
    # ip_hash 保持会话
    # ip_hash;
    
    keepalive 32;
}

server {
    listen 443 ssl;
    server_name api.example.com;
    
    location / {
        proxy_pass http://backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
6.3 安全防护配置

Web 应用防火墙(WAF)

WAF 可以防护 SQL 注入、XSS 攻击、CC 攻击等。

云厂商 WAF 产品 价格
腾讯云 Web 应用防火墙 ¥980/月起
阿里云 Web 应用防火墙 ¥980/月起
CloudFlare WAF 免费/付费版

DDoS 防护

对于小程序来说,DDoS 防护主要是依靠云厂商的基础防护和高防服务。

防护等级 防护能力 价格
基础防护 5~10Gbps 免费
高防 IP 20~100Gbps ¥3000/月起

我的建议

  • 初期:使用云厂商免费的基础防护 + Nginx 限流
  • 业务增长后:考虑接入 WAF
  • 高安全需求:购买高防服务

七、微信小程序后台配置

7.1 服务器域名配置

这是小程序能够访问你服务器的关键步骤。

配置路径:微信公众平台 → 开发管理 → 开发设置 → 服务器域名

需要配置的域名

类型 用途 示例
request wx.request 请求 https://api.example.com
uploadFile 文件上传 https://api.example.com
downloadFile 文件下载 https://static.example.com
socket WebSocket 通信 wss://ws.example.com

配置规则

  • 域名必须已备案
  • 必须使用 HTTPS
  • 不能带端口号(只能用 443)
  • 不能使用 IP 地址
  • 每种类型最多配置 20 个域名
  • 一个月内最多修改 50 次

常见配置错误

  • 域名没有备案:需要先完成备案
  • 域名没有 SSL 证书:需要先配置 HTTPS
  • 域名格式错误:不要带 https:// 前缀和路径
  • 域名未生效:DNS 解析可能还没生效,等一会再试
7.2 接口权限配置

根据业务需要,开通相应的接口权限。

常用接口权限

权限 用途 是否需要审核
微信支付 在线收款 需要
消息模板 服务通知 需要
客服消息 在线客服 需要
位置服务 获取用户位置 需要
内容安全 文本/图片审核 需要

配置路径:微信公众平台 → 开发管理 → 接口权限

八、部署前检查

8.1 检查清单

在提交审核之前,务必检查以下内容:

账号与资质

  • 小程序账号已注册
  • AppID 和 AppSecret 已获取
  • 小程序类目已选择
  • 如需支付,微信支付商户号已开通

域名与证书

  • 域名已注册
  • 域名已完成 ICP 备案
  • SSL 证书已申请并部署
  • 小程序后台已配置合法域名

服务器与环境

  • 云服务器已购买并初始化
  • 运行环境已安装配置
  • Nginx 已配置并运行
  • 防火墙/安全组已配置
  • 数据库已部署并可连接

网络与安全

  • CDN 已配置(如需)
  • DNS 解析已配置
  • HTTPS 访问正常
  • 接口跨域配置正确
  • 内容安全审核已接入

代码与部署

  • 后端 API 开发完成
  • 后端服务已部署并运行
  • 小程序代码已提审
  • 体验版已测试通过

运维保障

  • 数据库自动备份已配置
  • 服务器监控告警已配置
  • 日志采集已配置
  • 应急预案已制定
8.2 测试验证

API 接口测试

# 测试接口是否可访问
curl https://api.example.com/api/health

# 测试 HTTPS 是否正常
curl -I https://api.example.com

# 测试跨域
curl -H "Origin: https://servicewechat.com" https://api.example.com/api/test

小程序体验版测试

  1. 在微信开发者工具上传代码
  2. 在小程序后台设置体验版
  3. 使用体验版小程序测试所有功能
  4. 检查网络请求是否正常
  5. 检查文件上传下载是否正常

结果

部署成功后的状态

当所有准备工作完成后,你的小程序应该具备以下能力:

  1. 稳定的服务:后端 API 能够正常响应请求
  2. 安全的传输:所有数据通过 HTTPS 加密传输
  3. 快速的访问:静态资源通过 CDN 加速
  4. 可靠的数据:数据库自动备份,数据安全有保障
  5. 完善的监控:能够及时发现和处理问题

费用预估

小型项目(日活 1000 以内)

项目 月费用 年费用
域名 ¥5~10 ¥60~120
SSL 证书 ¥0 ¥0(免费证书)
云服务器 ¥100~200 ¥1200~2400
云数据库 ¥100~200 ¥1200~2400
CDN ¥50~100 ¥600~1200
对象存储 ¥20~50 ¥240~600
合计 ¥275~560 ¥3300~6720

中型项目(日活 10000 以内)

项目 月费用 年费用
域名 ¥5~10 ¥60~120
SSL 证书 ¥0~500 ¥0~6000
云服务器 ¥500~1000 ¥6000~12000
云数据库 ¥400~800 ¥4800~9600
CDN ¥200~500 ¥2400~6000
对象存储 ¥100~200 ¥1200~2400
WAF ¥0~980 ¥0~11760
合计 ¥1205~3990 ¥14460~47880

总结与延伸阅读

核心要点回顾

  1. 提前准备:域名备案是最耗时的环节,一定要提前开始
  2. 安全第一:HTTPS、防火墙、数据备份,一个都不能少
  3. 循序渐进:从最小配置开始,根据业务增长逐步扩容
  4. 善用云服务:云数据库、CDN、对象存储等服务能省很多事
  5. 做好监控:及时发现问题,避免小问题变成大故障

常见问题解答

Q:能不能不备案,直接用海外服务器?
A:技术上可以,但微信小程序要求域名必须备案。如果你用海外服务器,小程序审核可能不通过。

Q:免费证书够用吗?
A:对于大多数项目来说,免费的 DV 证书完全够用。如果你的业务对信任度要求很高(比如金融、电商),可以考虑付费证书。

Q:服务器配置选低了怎么办?
A:云服务器支持在线升级配置,一般几分钟就能完成。所以前期可以选低一些,后面根据实际情况升级。

Q:数据库用自建还是云数据库?
A:如果预算允许,强烈建议用云数据库。自动备份、高可用、运维省心,性价比很高。

延伸阅读资源

官方文档

云厂商文档

推荐教程

  • 《微信小程序开发入门与实践》
  • 《Nginx 高性能 Web 服务器详解》
  • 《MySQL 性能优化》

最后的建议

部署小程序确实需要做不少准备工作,但只要你按照这个清单一步步来,就不会有太大问题。遇到困难的时候,多查文档、多搜索、多问人,大多数问题都能解决。

记住,第一次部署是最难的,等你熟悉了整个流程后,后面再部署就会轻松很多。祝你部署顺利!

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐