AwsLinker/DEPLOYMENT.md
2025-09-16 17:19:58 +08:00

5.9 KiB
Raw Blame History

懂云项目部署指南

📋 目录

🚀 静态导出部署

1. 本地构建

# 构建静态文件
npm run build:static

# 或使用部署脚本
chmod +x deploy.sh
./deploy.sh production

2. 上传到服务器

# 方案1使用rsync推荐
rsync -avz --delete out/ user@your-server:/var/www/html/

# 方案2使用scp
scp -r out/* user@your-server:/var/www/html/

# 方案3打包上传
tar -czf dongyun-static.tar.gz out
scp dongyun-static.tar.gz user@your-server:~/
ssh user@your-server "cd /var/www/html && tar -xzf ~/dongyun-static.tar.gz --strip-components=1"

🐳 Docker部署

1. 使用Docker Compose推荐

# 构建并启动
docker-compose up -d --build

# 查看日志
docker-compose logs -f

# 停止服务
docker-compose down

2. 使用单独的Docker命令

# 构建镜像
docker build -t dongyun-static .

# 运行容器
docker run -d \
  --name dongyun-web \
  -p 80:80 \
  -v $(pwd)/logs:/var/log/nginx \
  --restart unless-stopped \
  dongyun-static

# 查看运行状态
docker ps
docker logs dongyun-web

☁️ 云服务器部署

阿里云ECS部署

# 1. 连接服务器
ssh root@your-aliyun-server

# 2. 安装Docker
curl -fsSL https://get.docker.com | bash
systemctl start docker
systemctl enable docker

# 3. 上传项目文件
scp -r ./* root@your-aliyun-server:~/dongyun/

# 4. 在服务器上构建部署
cd ~/dongyun
docker-compose up -d --build

腾讯云CVM部署

# 1. 安装Nginx
sudo apt update
sudo apt install nginx -y

# 2. 上传静态文件
rsync -avz out/ root@your-tencent-server:/var/www/html/

# 3. 配置Nginx
sudo cp nginx.conf /etc/nginx/nginx.conf
sudo nginx -t
sudo systemctl reload nginx

AWS EC2部署

# 1. 使用Amazon Linux 2
sudo yum update -y
sudo amazon-linux-extras install docker -y
sudo service docker start
sudo usermod -a -G docker ec2-user

# 2. 安装Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# 3. 部署项目
git clone your-repo
cd dongyun
docker-compose up -d --build

🌐 域名和SSL配置

1. 域名解析

A记录: @ -> 你的服务器IP
A记录: www -> 你的服务器IP

2. 免费SSL证书Let's Encrypt

# 安装certbot
sudo apt install certbot python3-certbot-nginx -y

# 申请证书
sudo certbot --nginx -d your-domain.com -d www.your-domain.com

# 自动续期
sudo crontab -e
# 添加0 12 * * * /usr/bin/certbot renew --quiet

3. Nginx HTTPS配置

server {
    listen 443 ssl http2;
    server_name your-domain.com www.your-domain.com;
    
    ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
    
    # SSL配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers off;
    
    # 其他配置...
}

# HTTP重定向到HTTPS
server {
    listen 80;
    server_name your-domain.com www.your-domain.com;
    return 301 https://$server_name$request_uri;
}

性能优化

1. CDN配置

# 阿里云CDN
# 1. 开通CDN服务
# 2. 添加加速域名
# 3. 配置源站
# 4. 配置缓存规则

# 腾讯云CDN
# 1. 登录腾讯云控制台
# 2. 开通CDN服务
# 3. 添加域名
# 4. 配置CNAME

2. 服务器优化

# 1. 调整Nginx worker进程数
worker_processes auto;

# 2. 优化文件描述符限制
echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf

# 3. 启用HTTP/2
# 在nginx配置中添加 http2
listen 443 ssl http2;

3. 监控设置

# 安装监控工具
sudo apt install htop iotop nethogs -y

# 设置日志轮转
sudo logrotate -d /etc/logrotate.d/nginx

# 监控脚本
cat > monitor.sh << 'EOF'
#!/bin/bash
# 检查网站可用性
curl -f http://your-domain.com/ > /dev/null 2>&1
if [ $? -ne 0 ]; then
    echo "网站不可访问,请检查服务状态" | mail -s "网站告警" admin@your-domain.com
fi
EOF

# 添加到crontab
echo "*/5 * * * * /path/to/monitor.sh" | crontab -

🔧 常用命令

Docker相关

# 查看容器状态
docker ps -a

# 查看日志
docker logs -f dongyun-web

# 进入容器
docker exec -it dongyun-web sh

# 重启容器
docker restart dongyun-web

# 更新部署
docker-compose down
docker-compose up -d --build

Nginx相关

# 检查配置
sudo nginx -t

# 重载配置
sudo nginx -s reload

# 重启服务
sudo systemctl restart nginx

# 查看状态
sudo systemctl status nginx

# 查看日志
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log

🚨 故障排除

1. 网站无法访问

# 检查端口是否开放
netstat -tlnp | grep :80
netstat -tlnp | grep :443

# 检查防火墙
sudo ufw status
sudo firewall-cmd --list-all

# 检查DNS解析
nslookup your-domain.com
dig your-domain.com

2. SSL证书问题

# 检查证书有效期
openssl x509 -in /etc/letsencrypt/live/your-domain.com/cert.pem -text -noout

# 手动续期
sudo certbot renew --dry-run

# 查看证书状态
sudo certbot certificates

3. 性能问题

# 查看服务器负载
top
htop
uptime

# 查看磁盘使用
df -h
du -sh /var/www/html/

# 查看内存使用
free -h

📞 技术支持

如果在部署过程中遇到问题,可以:

  1. 查看项目日志文件
  2. 检查服务器系统日志
  3. 联系技术支持团队

部署完成后记得:

  • 测试网站所有功能
  • 配置SSL证书
  • 设置CDN加速
  • 配置网站监控
  • 备份重要数据