云服务器、宝塔、域名和 HTTPS
本文把一台新云服务器部署为可通过域名访问的 SurveyKing 服务。应用安装部分采用宝塔面板 Docker 部署,这里重点说明网络、域名和 HTTPS。
推荐配置
| 项目 | 建议 |
|---|---|
| 操作系统 | 64 位 Ubuntu、Debian、CentOS Stream 或兼容发行版 |
| CPU / 内存 | 至少 2 核 / 4 GB |
| 磁盘 | 至少 20 GB,并按附件量预留空间 |
| 架构 | amd64 或 arm64 |
| 域名 | 已备案域名(中国大陆服务器按服务商要求办理) |
1. 安装并保护宝塔面板
从宝塔官网复制与服务器系统匹配的安装命令。安装完成后:
- 修改默认面板入口和管理员密码;
- 在云安全组中只允许可信 IP 访问 SSH 和宝塔面板端口;
- 安装 Nginx 与 Docker 管理器;
- 定期安装系统和面板安全更新。
不要把数据库端口 3306 暴露给公网。
2. 部署 SurveyKing
按照宝塔面板 Docker 部署,先在 Docker 应用商店安装 MySQL,再搜索并安装卷王问卷。
初始化阶段可以临时放行 TCP 1991:
http://服务器公网 IP:1991/setup
首次访问会自动进入初始化页面。宝塔 Docker 部署会自动读取 MySQL 连接信息,测试连接成功并完成初始化后,再继续配置域名。
3. 解析域名
在域名服务商处添加 A 记录:
| 主机记录 | 记录类型 | 记录值 |
|---|---|---|
例如 wj | A | 服务器公网 IPv4 |
等待解析生效后,可以用 nslookup 你的域名 检查返回地址是否与服务器一致。
4. 创建站点并反向代理
在宝塔“网站”中创建站点,域名填写刚才解析的域名。站点本身不需要 PHP,然后添加反向代理:
目标 URL:http://127.0.0.1:1991
发送域名:$host
确认 http://你的域名 能打开 SurveyKing 后,在宝塔 SSL 页面申请 Let's Encrypt 证书,并开启强制 HTTPS。
二维码、公开链接和邮件中的地址应使用最终的 HTTPS 域名,不能使用 localhost、127.0.0.1 或 Docker 服务名。
5. 收紧防火墙
域名和 HTTPS 验证成功后:
- 云安全组和宝塔防火墙只对公网开放
80、443; - 关闭公网
1991,让 Nginx 通过127.0.0.1:1991访问应用; 3306不对公网开放;- SSH 和宝塔面板端口仅允许可信 IP。
如果同一台服务器还有其他服务,请按实际端口逐项核对,不要一次放开大范围端口。
6. 备份和监控
至少同时准备:
- SurveyKing“系统管理 → 系统设置 → 数据备份”导出的 ZIP;
/www/wwwroot/surveyking/config;/www/wwwroot/surveyking/files;/www/wwwroot/surveyking/mysql/data;.env和docker-compose.yml。
备份应同步到服务器之外。磁盘使用率、容器状态、Nginx 证书到期时间和数据库备份失败都建议设置告警。