适用日期:2026-07-15
适用系统:Alibaba Cloud Linux、Anolis OS、CentOS、Ubuntu 等 Linux 服务器
当前项目目录:D:\SalesCRM
目标:实施人员拿到这份文档后,可以把当前本地 CRM 项目部署到阿里云 Linux ECS,并能通过公网访问。
当前 CRM 是一个 Node.js 服务:
outputs/sales_crm_full_demo.htmlwork/crm_full_server.jsdata/crm_full_data.json8090npm start 或 node work/crm_full_server.js当前版本仍使用 JSON 文件保存数据。可以先用于内部测试上线;正式长期使用前,建议迁移到 MySQL。
实施前请准备:
ECS 公网 IP:
服务器账号:root 或有 sudo 权限的账号
登录方式:密码 / SSH 密钥
操作系统:Alibaba Cloud Linux / Anolis OS / CentOS / Ubuntu
在阿里云 ECS 控制台安全组放行:
22 SSH 远程登录
80 HTTP 访问
443 HTTPS 访问,后续绑定证书后使用
8090 测试期可临时放行,正式建议只通过 80/443 访问
正式使用建议:
80/4438090 只在服务器本机监听或安全组不放行在 Windows 本地确认最新目录:
D:\SalesCRM
上线前先备份数据:
cd /d D:\SalesCRM
powershell -ExecutionPolicy Bypass -File deploy\backup_data.ps1
然后把整个目录压缩成:
SalesCRM.zip
压缩包必须包含:
package.json
work\crm_full_server.js
outputs\sales_crm_full_demo.html
data\crm_full_data.json
deploy\
docs\
推荐部署目录:
/opt/sales-crm
可以用以下任意方式上传:
示例 scp:
scp SalesCRM.zip root@服务器公网IP:/opt/
登录服务器:
ssh root@服务器公网IP
解压:
cd /opt
mkdir -p /opt/sales-crm
unzip SalesCRM.zip -d /opt/sales-crm
如果压缩包里多包了一层 SalesCRM 目录,请调整:
mv /opt/sales-crm/SalesCRM/* /opt/sales-crm/
确认文件:
ls -la /opt/sales-crm
ls -la /opt/sales-crm/work
ls -la /opt/sales-crm/data
进入项目目录:
cd /opt/sales-crm
先检查是否已有 Node:
node -v
npm -v
如果没有 Node,执行项目自带安装脚本:
bash deploy/install_node_alicloud_linux.sh
要求:
Node.js >= 18
如果系统仓库安装的 Node 版本太低,需要改用 NodeSource 或 nvm 安装 Node 18+。
在服务器上执行:
cd /opt/sales-crm
npm start
看到类似输出:
Full CRM demo is running at http://127.0.0.1:8090/
另开一个 SSH 窗口测试:
curl http://127.0.0.1:8090/
如果返回 HTML 内容,说明服务本机正常。
如果安全组临时开放了 8090,浏览器访问:
http://服务器公网IP:8090/
为了让服务断开 SSH 后仍然运行,并且服务器重启后自动启动,使用 systemd。
复制服务文件:
cp /opt/sales-crm/deploy/sales-crm.service /etc/systemd/system/sales-crm.service
重新加载 systemd:
systemctl daemon-reload
启动:
systemctl start sales-crm
设置开机自启:
systemctl enable sales-crm
查看状态:
systemctl status sales-crm
查看日志:
journalctl -u sales-crm -f
常用命令:
systemctl restart sales-crm
systemctl stop sales-crm
systemctl status sales-crm
正式建议用 Nginx 对外提供 80 端口访问,再转发到本地 8090。
安装 Nginx:
Alibaba Cloud Linux / CentOS / Anolis:
yum install -y nginx
如果系统使用 dnf:
dnf install -y nginx
Ubuntu:
apt update
apt install -y nginx
复制配置:
cp /opt/sales-crm/deploy/nginx_sales_crm.conf /etc/nginx/conf.d/sales-crm.conf
测试配置:
nginx -t
启动 Nginx:
systemctl start nginx
systemctl enable nginx
systemctl reload nginx
浏览器访问:
http://服务器公网IP/
如果能打开登录页,Nginx 转发成功。
不同 Linux 系统可能启用 firewalld。
查看状态:
systemctl status firewalld
如果启用,需要放行 HTTP:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
测试期如需放行 8090:
firewall-cmd --permanent --add-port=8090/tcp
firewall-cmd --reload
注意:阿里云安全组和服务器系统防火墙都要允许,公网才能访问。
当前最重要的数据文件:
/opt/sales-crm/data/crm_full_data.json
手动备份:
cd /opt/sales-crm
bash deploy/backup_data_linux.sh
备份会生成到:
/opt/sales-crm/backups/
建议每天备份一次。可以添加定时任务:
crontab -e
加入:
0 2 * * * cd /opt/sales-crm && bash deploy/backup_data_linux.sh >> /opt/sales-crm/backups/backup.log 2>&1
表示每天凌晨 2 点备份。
以后本地改完代码,再更新服务器:
D:\SalesCRM\data\crm_full_data.jsoncd /opt/sales-crm
bash deploy/backup_data_linux.sh
systemctl restart sales-crm
systemctl status sales-crm
curl http://127.0.0.1:8090/
部署完成后逐项验收:
admin / 123456 能登录上线测试通过后,马上处理:
admin 默认密码检查:
systemctl status sales-crm
curl http://127.0.0.1:8090/
systemctl status nginx
nginx -t
再检查阿里云安全组是否开放 80 或 8090。
检查数据文件是否有写入权限:
ls -l /opt/sales-crm/data
如果服务用 root 运行,一般不会有权限问题。后续如果改成普通用户,需要给该用户 data 目录写权限。
执行:
systemctl enable sales-crm
systemctl status sales-crm
查看:
ss -lntp | grep 8090
停止旧服务或修改端口。
当前版本适合内部测试和早期试用。正式长期生产建议继续升级: