在微信小程序生态里,很多人误以为只有具备SSI(Server Side Includes)功能的云服务器才能安装、运行小程序。其实,整个部署过程主要是围绕 Node.js、Nginx 或 Apache 之类的服务做静态文件发布与动态代理,SSI 更多是老旧技术的引用方式,现代的云服务器一般都可以通过配置反向代理或者自定义路由来实现同样的效果。先别急着把服务器砸掉,咱们一步步拆开来看看。
SSI,全称Server Side Includes,是一种早期的Web动点技术,利用在HTML里插入特殊注释,服务器边渲染页面边把段落合成,对于传统的WAMP/LAMP环境并不算必需。它最大的用途是把公共头部、尾部等代码拆分到外部文件里,减少维护成本。小程序的前端是使用WXML+WXSS+JS渲染而成,和传统的静态HTML本质不同,so 本身就没必要使用 SSI。听说有人在跑云服务器搭卸载小程序时查看系统日志时看到 “SSI not found”,这时不要慌,真正的门槛是服务器是否支持 Node 环境、如何处理 HTTPS 与域名映射。
那么从技术层面上讲,最核心的依赖是:1)操作系统支持 apt/yum 安装 Node.js,2)云服务器具备公网 IP 或通过绑定域名映射至对应子域,3)资源足够,一般一台 2G RAM、1 vCPU 的轻量型即可跑小程序的后端 API。只要满足这几条,SSI 并非部署小程序的必要条件。你可以把服务器当做一个普通的静态文件服务器,把前端小程序包直接上传到根目录,然后用 Nginx 通过 location / plus proxy_pass 指令把接口代理到 Node.js 后端,完成后端+前端的捏合。
接下来说说部署的具体步骤,先在 Linux 服务器上安装 Node.js(推荐 16.x 或者 18.x 版本):
```bash
curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
apt-get install -y nodejs
```
然后把你本地的微信小程序项目打包(通过微信开发者工具)得到 dist 或 miniapp 目录,直接上传到服务器的 /var/www/html 之下。接着在 Nginx 配置中加入以下片段:
```nginx
server {
listen 80;
server_name beijiao.com;
location / {
root /var/www/html;
try_files $uri $uri/ /index.html; # 走静态文件
}
location /api {
proxy_pass http://127.0.0.1:3000; # 你的 Node 后端
}
}
```
改完之后重启 Nginx,便能初步访问到小程序 web