腾讯云部署指南(Tencent Cloud Deployment)

腾讯云轻量应用服务器部署完整实践指南

适用场景:腾讯云轻量服务器 + 一个域名 + 多项目部署

学习目标

  • 掌握服务器环境配置
  • 掌握 Nginx 多项目配置
  • 掌握 HTTPS 证书申请
  • 掌握 Node.js 应用部署

📋 目录


一、服务器与域名准备

1.1 服务器配置

推荐配置

  • 系统:Ubuntu 20.04 或 CentOS 7/8
  • 配置:2 核 4G 内存
  • 端口:需要开放以下端口
    • 22 - SSH
    • 80 - HTTP
    • 443 - HTTPS

端口开放: 在腾讯云控制台 → 安全组 → 入站规则中添加以上端口。


1.2 域名配置

域名示例muliminty.site

DNS 解析配置: 在腾讯云域名控制台 → DNS 解析中配置:

主机记录记录类型记录值说明
@A服务器公网IP主域名
cvA服务器公网IP子域名:cv.muliminty.site
noteA服务器公网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 -y

2.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 -t

2.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 -v

2.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 nginx

4.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-run

5.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 startup

6.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 新增项目部署步骤

  1. 创建项目目录

    sudo mkdir -p /var/www/newproject.site
  2. 上传项目文件

    # 使用 SCP、Git 或 FTP 上传
  3. 配置 DNS 解析

    • 在域名控制台添加新的 A 记录
  4. 创建 Nginx 配置

    # Ubuntu
    sudo nano /etc/nginx/sites-available/newproject.conf
     
    # CentOS
    sudo nano /etc/nginx/conf.d/newproject.conf
  5. 启用配置

    # Ubuntu
    sudo ln -s /etc/nginx/sites-available/newproject.conf /etc/nginx/sites-enabled/
     
    # 测试并重载
    sudo nginx -t && sudo systemctl reload nginx
  6. 申请 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 --reload

2. 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/nginx

PM2 监控

# 监控应用
pm2 monit
 
# 查看详细信息
pm2 show note
 
# 设置日志轮转
pm2 install pm2-logrotate

📚 相关资源

官方文档

相关链接


🎯 学习检查点

完成部署后,你应该能够:

  • ✅ 在云服务器上配置 Nginx
  • ✅ 配置多个子域名项目
  • ✅ 申请和配置 HTTPS 证书
  • ✅ 部署静态项目
  • ✅ 部署 Node.js 应用(使用 PM2)
  • ✅ 排查常见的部署问题
  • ✅ 进行基本的性能优化和安全加固

最后更新:2025
适用平台:腾讯云轻量应用服务器


服务端 部署 腾讯云 nginx pm2 https