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

319 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 懂云项目部署指南
## 📋 目录
- [静态导出部署](#静态导出部署)
- [Docker部署](#docker部署)
- [云服务器部署](#云服务器部署)
- [域名和SSL配置](#域名和ssl配置)
- [性能优化](#性能优化)
## 🚀 静态导出部署
### 1. 本地构建
```bash
# 构建静态文件
npm run build:static
# 或使用部署脚本
chmod +x deploy.sh
./deploy.sh production
```
### 2. 上传到服务器
```bash
# 方案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推荐
```bash
# 构建并启动
docker-compose up -d --build
# 查看日志
docker-compose logs -f
# 停止服务
docker-compose down
```
### 2. 使用单独的Docker命令
```bash
# 构建镜像
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部署
```bash
# 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部署
```bash
# 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部署
```bash
# 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
```bash
# 安装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配置
```nginx
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配置
```bash
# 阿里云CDN
# 1. 开通CDN服务
# 2. 添加加速域名
# 3. 配置源站
# 4. 配置缓存规则
# 腾讯云CDN
# 1. 登录腾讯云控制台
# 2. 开通CDN服务
# 3. 添加域名
# 4. 配置CNAME
```
### 2. 服务器优化
```bash
# 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. 监控设置
```bash
# 安装监控工具
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相关
```bash
# 查看容器状态
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相关
```bash
# 检查配置
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. 网站无法访问
```bash
# 检查端口是否开放
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证书问题
```bash
# 检查证书有效期
openssl x509 -in /etc/letsencrypt/live/your-domain.com/cert.pem -text -noout
# 手动续期
sudo certbot renew --dry-run
# 查看证书状态
sudo certbot certificates
```
### 3. 性能问题
```bash
# 查看服务器负载
top
htop
uptime
# 查看磁盘使用
df -h
du -sh /var/www/html/
# 查看内存使用
free -h
```
## 📞 技术支持
如果在部署过程中遇到问题,可以:
1. 查看项目日志文件
2. 检查服务器系统日志
3. 联系技术支持团队
---
**部署完成后记得:**
- ✅ 测试网站所有功能
- ✅ 配置SSL证书
- ✅ 设置CDN加速
- ✅ 配置网站监控
- ✅ 备份重要数据