腾讯云部署指南(Tencent Cloud Deployment)
腾讯云轻量应用服务器部署完整实践指南
适用场景:腾讯云轻量服务器 + 一个域名 + 多项目部署
学习目标:
- 掌握服务器环境配置
- 掌握 Nginx 多项目配置
- 掌握 HTTPS 证书申请
- 掌握 Node.js 应用部署
📋 目录
一、服务器与域名准备
1.1 服务器配置
推荐配置:
- 系统:Ubuntu 20.04 或 CentOS 7/8
- 配置:2 核 4G 内存
- 端口:需要开放以下端口
22- SSH80- HTTP443- HTTPS
端口开放: 在腾讯云控制台 → 安全组 → 入站规则中添加以上端口。
1.2 域名配置
域名示例:muliminty.site
DNS 解析配置: 在腾讯云域名控制台 → DNS 解析中配置:
| 主机记录 | 记录类型 | 记录值 | 说明 |
|---|---|---|---|
| @ | A | 服务器公网IP | 主域名 |
| cv | A | 服务器公网IP | 子域名:cv.muliminty.site |
| note | A | 服务器公网IP | 子域名:note.muliminty.site |
注意:DNS 解析生效可能需要几分钟到几个小时,可以使用
ping命令检查解析是否生效。
验证 DNS 解析:
# 检查域名解析
ping muliminty.site
ping cv.muliminty.site
ping note.muliminty.site二、服务器环境准备
2.1 系统更新
# Ubuntu
sudo apt update && sudo apt upgrade -y
# CentOS
sudo yum update -y2.2 安装 Nginx
# Ubuntu
sudo apt install nginx -y
# CentOS
sudo yum install epel-release -y
sudo yum install nginx -y启动并设置开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx验证安装:
# 检查 Nginx 版本
nginx -v
# 检查配置文件语法
sudo nginx -t2.3 安装 Node.js(可选)
如果项目中有 Node.js 应用,推荐使用 nvm 安装:
# 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
# 重新加载 shell 配置
source ~/.bashrc
# 安装 Node.js LTS 版本
nvm install --lts
nvm use --lts
# 验证安装
node -v
npm -v2.4 安装 PM2(Node.js 进程管理)
# 全局安装 PM2
npm install pm2 -g
# 验证安装
pm2 -v
# 设置 PM2 开机自启(可选)
pm2 startup
pm2 save三、项目目录结构
3.1 创建项目目录
在服务器上创建统一的项目目录:
# 创建项目目录
sudo mkdir -p /var/www/muliminty.site
sudo mkdir -p /var/www/cv.muliminty.site
sudo mkdir -p /var/www/note.muliminty.site
# 设置目录权限(根据实际情况调整)
sudo chown -R $USER:$USER /var/www/*目录说明:
/var/www/muliminty.site→ 主站项目/var/www/cv.muliminty.site→ 个人简历项目/var/www/note.muliminty.site→ 笔记系统项目
3.2 上传项目文件
方式一:使用 SCP 上传
# 从本地上传到服务器
scp -r ./project/* user@your-server-ip:/var/www/muliminty.site/方式二:使用 Git 克隆
# SSH 到服务器后执行
cd /var/www/muliminty.site
git clone https://github.com/your-username/your-repo.git .方式三:使用 FTP/SFTP 工具
- 使用 FileZilla、WinSCP 等工具上传文件
四、Nginx 配置详解
4.1 Nginx 配置文件位置
不同系统的配置文件位置:
| 系统 | 主配置文件 | 虚拟主机配置目录 | 说明 |
|---|---|---|---|
| Ubuntu | /etc/nginx/nginx.conf | /etc/nginx/sites-available//etc/nginx/sites-enabled/ | 使用 sites-available 管理所有站点,sites-enabled 通过软链接启用 |
| CentOS | /etc/nginx/nginx.conf | /etc/nginx/conf.d/ | 每个站点单独 *.conf 文件,自动加载 |
4.2 Ubuntu 配置示例
创建配置文件
sudo nano /etc/nginx/sites-available/muliminty.conf配置内容
# 主站 muliminty.site
server {
listen 80;
server_name muliminty.site www.muliminty.site;
root /var/www/muliminty.site;
index index.html index.htm;
# 日志配置
access_log /var/log/nginx/muliminty.access.log;
error_log /var/log/nginx/muliminty.error.log;
location / {
try_files $uri $uri/ /index.html;
}
# 静态资源缓存
location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}
# cv.muliminty.site
server {
listen 80;
server_name cv.muliminty.site;
root /var/www/cv.muliminty.site;
index index.html index.htm;
access_log /var/log/nginx/cv.access.log;
error_log /var/log/nginx/cv.error.log;
location / {
try_files $uri $uri/ /index.html;
}
}
# note.muliminty.site(静态项目)
server {
listen 80;
server_name note.muliminty.site;
root /var/www/note.muliminty.site;
index index.html index.htm;
access_log /var/log/nginx/note.access.log;
error_log /var/log/nginx/note.error.log;
location / {
try_files $uri $uri/ /index.html;
}
}启用站点
# 创建软链接启用站点
sudo ln -s /etc/nginx/sites-available/muliminty.conf /etc/nginx/sites-enabled/
# 测试配置文件语法
sudo nginx -t
# 重新加载 Nginx
sudo systemctl reload nginx4.3 CentOS 配置示例
创建配置文件
sudo nano /etc/nginx/conf.d/muliminty.conf配置内容与 Ubuntu 相同,无需软链接,Nginx 会自动加载 /etc/nginx/conf.d/*.conf。
4.4 验证配置
# 测试配置文件语法
sudo nginx -t
# 重新加载配置
sudo systemctl reload nginx
# 查看 Nginx 状态
sudo systemctl status nginx
# 查看配置的站点
sudo nginx -T | grep server_name五、HTTPS 证书申请
5.1 使用 Let’s Encrypt 免费证书
安装 Certbot
# Ubuntu
sudo apt install certbot python3-certbot-nginx -y
# CentOS
sudo yum install certbot python3-certbot-nginx -y申请证书
方式一:批量申请多个域名证书
sudo certbot --nginx -d muliminty.site -d www.muliminty.site -d cv.muliminty.site -d note.muliminty.site方式二:逐个申请单域名证书
sudo certbot --nginx -d muliminty.site
sudo certbot --nginx -d cv.muliminty.site
sudo certbot --nginx -d note.muliminty.site证书自动续期
Let’s Encrypt 证书有效期为 90 天,Certbot 会自动配置续期任务:
# 检查自动续期任务
sudo systemctl status certbot.timer
# 手动测试续期
sudo certbot renew --dry-run5.2 配置 HTTP 自动跳转 HTTPS
Certbot 会自动修改 Nginx 配置,添加 HTTPS 配置和 HTTP 跳转。如果需要手动配置:
# HTTP 自动跳转到 HTTPS
server {
listen 80;
server_name muliminty.site www.muliminty.site;
return 301 https://$server_name$request_uri;
}
# HTTPS 配置
server {
listen 443 ssl http2;
server_name muliminty.site www.muliminty.site;
ssl_certificate /etc/letsencrypt/live/muliminty.site/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/muliminty.site/privkey.pem;
root /var/www/muliminty.site;
index index.html index.htm;
location / {
try_files $uri $uri/ /index.html;
}
}六、Node.js 应用部署
6.1 反向代理配置
如果 note 项目是 Node.js 服务,运行在 3000 端口:
server {
listen 80;
server_name note.muliminty.site;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
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;
proxy_cache_bypass $http_upgrade;
}
}6.2 使用 PM2 启动 Node.js 应用
# 进入项目目录
cd /var/www/note.muliminty.site
# 安装依赖
npm install
# 使用 PM2 启动应用
pm2 start index.js --name note
# 或者使用 PM2 配置文件
pm2 start ecosystem.config.js
# 查看应用状态
pm2 status
# 查看日志
pm2 logs note
# 保存 PM2 进程列表
pm2 save
# 设置 PM2 开机自启(首次需要执行)
pm2 startup6.3 PM2 常用命令
# 启动应用
pm2 start app.js --name myapp
# 停止应用
pm2 stop myapp
# 重启应用
pm2 restart myapp
# 删除应用
pm2 delete myapp
# 查看所有应用
pm2 list
# 查看日志
pm2 logs myapp
# 监控应用
pm2 monit
# 保存进程列表
pm2 save七、部署检查清单
✅ 部署前检查
- 服务器端口已开放(22、80、443)
- 域名 DNS 解析已配置
- 服务器环境已准备(Nginx、Node.js)
- 项目文件已上传到服务器
✅ 部署后检查
- Nginx 配置文件语法正确(
nginx -t) - Nginx 服务正常运行(
systemctl status nginx) - 所有域名可以正常访问
- HTTPS 证书已申请并配置
- HTTP 自动跳转到 HTTPS
- Node.js 应用正常运行(如果适用)
- PM2 进程管理正常(如果适用)
- 日志文件正常生成
八、常见问题排查
8.1 Nginx 相关
问题 1:Nginx 无法启动
# 检查配置文件语法
sudo nginx -t
# 查看错误日志
sudo tail -f /var/log/nginx/error.log
# 查看 Nginx 状态
sudo systemctl status nginx问题 2:403 Forbidden 错误
# 检查目录权限
ls -la /var/www/
# 检查 Nginx 用户权限
sudo chown -R www-data:www-data /var/www/muliminty.site
sudo chmod -R 755 /var/www/muliminty.site问题 3:502 Bad Gateway 错误
- 检查后端服务是否正常运行
- 检查反向代理配置是否正确
- 检查端口是否被占用
8.2 域名和证书相关
问题 1:域名无法访问
# 检查 DNS 解析
ping muliminty.site
nslookup muliminty.site
# 检查 Nginx 配置
sudo nginx -T | grep server_name问题 2:HTTPS 证书申请失败
- 确保域名解析已生效
- 确保 80 端口已开放
- 检查防火墙设置
8.3 Node.js 应用相关
问题 1:PM2 应用无法启动
# 查看错误日志
pm2 logs note
# 检查 Node.js 版本
node -v
# 检查依赖安装
cd /var/www/note.muliminty.site
npm install问题 2:应用启动后无法访问
- 检查应用监听的端口
- 检查防火墙设置
- 检查 Nginx 反向代理配置
九、扩展与优化
9.1 新增项目部署步骤
-
创建项目目录
sudo mkdir -p /var/www/newproject.site -
上传项目文件
# 使用 SCP、Git 或 FTP 上传 -
配置 DNS 解析
- 在域名控制台添加新的 A 记录
-
创建 Nginx 配置
# Ubuntu sudo nano /etc/nginx/sites-available/newproject.conf # CentOS sudo nano /etc/nginx/conf.d/newproject.conf -
启用配置
# Ubuntu sudo ln -s /etc/nginx/sites-available/newproject.conf /etc/nginx/sites-enabled/ # 测试并重载 sudo nginx -t && sudo systemctl reload nginx -
申请 HTTPS(可选)
sudo certbot --nginx -d newproject.site
9.2 性能优化建议
Nginx 性能优化
# 在 nginx.conf 中添加
worker_processes auto;
worker_connections 1024;
# Gzip 压缩
gzip on;
gzip_vary on;
gzip_min_length 1024;
gzip_types text/plain text/css text/xml text/javascript application/javascript application/json;静态资源缓存
location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff|woff2|ttf|eot)$ {
expires 1y;
add_header Cache-Control "public, immutable";
access_log off;
}9.3 安全加固
1. 防火墙配置
# 使用 UFW(Ubuntu)
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
# 使用 firewalld(CentOS)
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload2. SSH 安全配置
# 编辑 SSH 配置
sudo nano /etc/ssh/sshd_config
# 建议修改:
# - 禁用 root 登录
# - 修改 SSH 端口
# - 使用密钥认证3. Nginx 安全头部
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;9.4 监控与日志
日志管理
# 查看访问日志
sudo tail -f /var/log/nginx/access.log
# 查看错误日志
sudo tail -f /var/log/nginx/error.log
# 日志轮转配置(自动)
# Ubuntu: /etc/logrotate.d/nginx
# CentOS: /etc/logrotate.d/nginxPM2 监控
# 监控应用
pm2 monit
# 查看详细信息
pm2 show note
# 设置日志轮转
pm2 install pm2-logrotate📚 相关资源
官方文档
相关链接
- Nginx 知识体系 — Nginx 完整配置指南
- 服务端知识体系 — 服务端完整知识体系
- 部署与发布 — 前端部署方案
🎯 学习检查点
完成部署后,你应该能够:
- ✅ 在云服务器上配置 Nginx
- ✅ 配置多个子域名项目
- ✅ 申请和配置 HTTPS 证书
- ✅ 部署静态项目
- ✅ 部署 Node.js 应用(使用 PM2)
- ✅ 排查常见的部署问题
- ✅ 进行基本的性能优化和安全加固
最后更新:2025
适用平台:腾讯云轻量应用服务器