在腾讯云轻量应用服务器上部署小程序时,为了确保小程序前端能够正常访问后端服务,需要正确配置安全组规则(即防火墙规则),以允许外部请求通过特定端口访问你的服务器。
以下是常见的安全组规则配置建议:
✅ 1. 开放 HTTP/HTTPS 端口(必须)
小程序通常通过 HTTPS 访问后端 API,因此你的服务器需要运行 Web 服务(如 Nginx、Node.js、Apache 等),并开放以下端口:
| 协议 | 端口 | 说明 |
|---|---|---|
| TCP | 80 | HTTP 流量,用于域名访问或 Let’s Encrypt 自动申请 SSL 证书 |
| TCP | 443 | HTTPS 流量,小程序正式环境必须使用 HTTPS |
⚠️ 小程序要求所有网络请求必须使用 HTTPS 协议(除本地调试外),所以 443 端口是必须的。
✅ 2. 开放自定义后端服务端口(按需)
如果你的后端服务运行在非标准端口(如 Node.js 服务跑在 3000、8080 等),需要额外开放这些端口:
| 协议 | 端口 | 示例说明 |
|---|---|---|
| TCP | 3000 | Node.js 后端服务 |
| TCP | 8080 | Java/Spring Boot 服务 |
| TCP | 9000 | 可能用于管理后台或文件服务 |
🔒 建议:生产环境尽量通过 Nginx 反向X_X到 80/443,避免直接暴露非标准端口。
✅ 3. 允许 SSH 远程登录(建议限制 IP)
用于远程管理服务器:
| 协议 | 端口 | 源 IP | 说明 |
|---|---|---|---|
| TCP | 22 | 你的公网 IP 或 0.0.0.0/0 |
建议只允许你自己的 IP 访问以提高安全性 |
🛡️ 安全建议:不要对所有人开放 22 端口,防止暴力破解。
✅ 4. 数据库或其他内部服务(不建议开放)
- MySQL(3306)、Redis(6379)等不应直接对外开放。
- 如需访问,建议通过内网、SSH 隧道或腾讯云私有网络(VPC)连接。
✅ 5. ICMP 规则(可选)
允许 ping 测试服务器连通性:
| 协议 | 端口 | 说明 |
|---|---|---|
| ICMP | – | 允许 ping 探测(便于调试) |
可根据安全策略决定是否开启。
📌 腾讯云轻量服务器安全组配置步骤
- 登录 腾讯云控制台
- 进入「轻量应用服务器」控制台
- 找到你的实例 → 点击「防火墙」→ 「编辑防火墙规则」
- 添加以下规则(方向:入站 / Inbound):
| 协议类型 | 端口 | 源 IP | 备注 |
|---|---|---|---|
| TCP | 80 | 0.0.0.0/0 | 允许 HTTP 访问 |
| TCP | 443 | 0.0.0.0/0 | 允许 HTTPS 访问 |
| TCP | 22 | 你的IP/32 | 仅允许你自己的 IP 登录 SSH |
| TCP | 3000 | 0.0.0.0/0 | 若需直接访问后端服务(建议用 Nginx X_X替代) |
| ICMP | 全部 | 0.0.0.0/0 | 可选,允许 ping |
✅ 最佳实践建议
-
使用 Nginx + HTTPS
将后端服务(如 3000 端口)通过 Nginx 反向X_X到 443,统一使用域名和 HTTPS。 -
绑定域名并配置 SSL 证书
使用免费的 Let’s Encrypt 证书(可通过 Certbot 或 Nginx 配置)。 -
最小化开放端口
只开放必要的端口,提升安全性。 -
定期检查安全组规则
避免遗留不必要的开放规则。
🧩 小程序合法域名配置(补充)
除了服务器安全组,还需在微信公众平台中配置:
- 登录 小程序管理后台
- 设置 → 开发设置 → 服务器域名
- 将你的 HTTPS 接口域名添加到
request合法域名列表中
例如:
https://api.yourdomain.com
总结:推荐的安全组规则清单
| 协议 | 端口 | 源地址 | 用途 |
|---|---|---|---|
| TCP | 80 | 0.0.0.0/0 | HTTP 重定向或证书申请 |
| TCP | 443 | 0.0.0.0/0 | 小程序 API 请求(HTTPS) |
| TCP | 22 | 你的IP/32 | 安全的 SSH 登录 |
| ICMP | 全部 | 0.0.0.0/0 | 可选,用于 ping 测试 |
如有使用 WebSocket,还需开放对应端口(如 wss:// 一般也走 443)。
如需更高级安全策略,可结合腾讯云 VPC、WAF、DDoS 防护等服务。
如你提供具体的技术栈(如 Node.js + MySQL + Nginx),我可以给出更精确的配置示例。
云小栈