部署云主机(云服务器)项目通常涉及几个关键步骤,虽然不同项目(如 Java、Python、Node.js、PHP 或静态网站)的具体命令不同,但核心流程是一致的。

下面是一份通用、从零开始的部署指南,你可以根据自己的项目类型调整具体命令。
1、购买云主机
- 选择一家云服务商(如阿里云、腾讯云、华为云、AWS、Azure)。
- 选择操作系统:推荐Ubuntu 20.04/22.04 或CentOS 7/8(CentOS 8 已停止维护,Ubuntu 更常用),对于 Windows 项目,选择 Windows Server。
- 选择配置:根据项目规模选择 CPU、内存(如 2核4G 适合小型 Web 应用)。

关键操作:
- 设置密钥对或强密码(建议用密钥对)。
- 在防火墙/安全组中放行需要的端口(见下文)。
2、连接云主机
Windows 用户:使用 Xshell、Putty 或 Windows 自带的 PowerShell。

Mac/Linux 用户:直接使用终端。
命令示例(用你的IP替换你的服务器IP):
ssh root@你的服务器IP - 如果使用密钥登录,记得先chmod 400 你的密钥.pem,然后ssh -i 你的密钥.pem root@你的服务器IP。
根据你的项目类型,安装对应的运行环境。
情况 A:Python/Django/Flask 项目
1. 更新系统包 apt update && apt upgrade -y # Ubuntu/Debian yum update -y # CentOS 2. 安装 Python3 和 pip apt install python3 python3-pip -y 3. 安装虚拟环境(推荐) pip3 install virtualenv 4. 安装项目依赖(假设你已经上传了代码,详见第三阶段) cd /你的项目目录 python3 -m venv venv source venv/bin/activate pip install -r requirements.txt 5. 运行项目(测试) python manage.py runserver 0.0.0.0:8000
情况 B:Node.js/Vue/React 项目
1. 安装 Node.js(使用 nvm 或直接包管理器) curl -fsSL https://deb.nodesource.com/setup_18.x | bash - apt install -y nodejs 验证 node -v npm -v 2. 进入项目目录,安装依赖并构建 cd /你的项目目录 npm install npm run build # 前端项目会生成 dist 文件夹 对于后端(Express/Koa):npm start
情况 C:Java/Spring Boot 项目
1. 安装 JDK apt install openjdk-17-jdk -y java -version 2. 安装 Maven 或 Gradle(可选,或直接上传编译好的 jar/war) apt install maven -y 3. 运行 jar 包 cd /你的项目目录 nohup java -jar myapp.jar > app.log 2>&1 &
情况 D:PHP 项目(如 WordPress、Laravel)
安装 Nginx/Apache + PHP + MySQL apt install nginx php-fpm php-mysql php-common -y 配置 Nginx 站点(指向项目目录) 一般需要修改 /etc/nginx/sites-enabled/default
有几种常见方式:
1、Git 克隆(最推荐)
# 在云主机上直接 Git clone 你的私有仓库
# 需要先在服务器上配置 SSH Key 或使用 HTTP 凭据
git clone 你的仓库地址.git2、SCP 命令(适合小项目、一次性上传)
在本地电脑执行:
scp -r /本地/项目/文件 root@你的服务器IP:/远程/目标目录/3、FTP 工具(FileZilla、WinSCP)
图形化界面,直接拖拽上传,需要云主机安装 FTP 服务(如 vsftpd),或直接使用 SFTP(SSH 自带,默认端口22,在 FileZilla 选择 SFTP 协议)。
直接python app.py 或node app.js 运行后,一旦关闭终端程序就会停止,需要用进程管理工具让它后台常驻。
1. 使用screen 或tmux(简单但不够健壮)
screen -S myapp 然后启动你的项目 按 Ctrl+A 然后按 D 脱离会话 screen -r myapp # 重新连接
2. 使用systemd(推荐,专业)
创建一个服务文件,让项目随系统启动自动运行。
示例:Node.js 项目的 systemd 服务
vim /etc/systemd/system/myapp.service写入:
[Unit]
Description=My Node.js App
After=network.target
[Service]
ExecStart=/usr/bin/node /你的项目目录/app.js
WorkingDirectory=/你的项目目录
Restart=always
User=root
# Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable myapp # 设置开机自启
systemctl start myapp # 启动
systemctl status myapp # 查看状态3. 使用pm2(专为 Node.js 设计,GitHub 开源)
npm install -g pm2 pm2 start app.js --name myapp pm2 save pm2 startup # 配置开机自启
第五阶段:配置域名、反向代理与HTTPS(必做)
项目默认运行在非标准端口(如 3000、8000、8080),我们需要用Nginx 作为反向代理,将来自 80(HTTP)和 443(HTTPS)的请求转发到你的应用端口,Nginx 可以处理静态文件(如图片、CSS、JS),大幅提升性能。
1、安装 Nginx
apt install nginx -y2、配置反向代理
vim /etc/nginx/sites-available/你的域名.conf 写入(假设你的应用跑在127.0.0.1:8000):
server {
listen 80;
server_name 你的域名.com www.你的域名.com;
location / {
proxy_pass http://127.0.0.1:8000;
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;
}
# 可选:如果项目有静态文件目录,让 Nginx 直接响应
location /static/ {
alias /你的项目目录/static/;
}
}启用站点:
ln -s /etc/nginx/sites-available/你的域名.conf /etc/nginx/sites-enabled/
nginx -t # 测试配置是否正确
systemctl restart nginx3、申请 SSL 证书(HTTPS)
强烈建议使用Let‘s Encrypt 的免费证书,使用certbot 一键配置。
apt install certbot python3-certbot-nginx -y
certbot --nginx -d 你的域名.com -d www.你的域名.com按照提示输入邮箱,同意协议,Certbot 会自动修改 Nginx 配置并启用 HTTPS。
非常重要:不要只开放端口,要最小权限。
1、安全组规则(云服务商控制台):
必须放行:22(SSH,建议只允许你当前 IP)、80(HTTP)、443(HTTPS)。
不需要放行:应用的业务端口(如3000、8000、8080、3306),这些只允许 Nginx 通过127.0.0.1(本地回环)访问,外部不应直接访问。
2、云主机内部防火墙(如 UFW):
apt install ufw -y
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable502 Bad Gateway:说明 Nginx 连接不上你的应用,请检查应用是否启动、监听端口是否正确、日志里有无报错。
Connection Refused:应用没启动或防火墙阻止。
查看日志文件:
- 应用日志:tail -f /你的项目目录/app.log
- Nginx 日志:tail -f /var/log/nginx/error.log
- 系统日志:journalctl -u myapp.service
端口被占用:lsof -i :端口号 或netstat -tulpn | grep 端口号。
购买云主机 -> SSH 连接 -> 安装环境(Python/Node/Java/PHP) -> 上传代码(Git/SCP/FTP) -> 创建服务(systemd/pm2/screen) -> 安装 Nginx 并配置反向代理 -> 配置 HTTPS(certbot) -> 配置安全组(仅开22,80,443) -> 测试访问!
如果你能告诉我你的项目具体是什么语言/框架(Django、Vue、Spring Boot、WordPress),我可以给你更精确、可直接复制粘贴的命令行。
文章摘自:https://idc.huochengrm.cn/zj/26525.html
评论