在阿里云上部署一个静态的 Angular 网站,由于 Angular 应用在构建后生成的是纯静态文件(HTML、CSS、JS),不需要运行时编译或服务端逻辑,因此并不需要复杂的镜像环境。以下是几种推荐的部署方式和对应的“镜像环境”选择建议:
✅ 推荐方案一:使用 OSS + CDN(最推荐)
这是部署静态网站的最佳实践,无需 ECS 或 Docker 镜像。
优势:
- 成本低(按流量/存储计费)
- 提速访问(结合阿里云 CDN)
- 高可用、高并发
- 支持自定义域名和 HTTPS
操作步骤:
- 使用
ng build --prod构建 Angular 项目。 - 将
dist/目录下的文件上传到阿里云 OSS(对象存储)。 - 在 OSS 中开启 静态网站托管 功能。
- (可选)绑定自定义域名并配置 CDN 提速和 SSL 证书。
📌 不需要任何“镜像”,完全静态托管。
✅ 推荐方案二:使用 ECS + Nginx(适合已有服务器或需要自定义控制)
如果你希望使用 ECS 实例来托管,可以选用以下镜像:
推荐镜像:
- 公共镜像:CentOS 7.9 / Alibaba Cloud Linux 3
- 安装轻量级 Web 服务器:Nginx
部署步骤:
- 创建 ECS 实例,选择上述任意 Linux 镜像。
- 安装 Nginx:
sudo yum install nginx -y - 将 Angular 构建后的文件(
dist/your-project-name/*)拷贝到/usr/share/nginx/html。 - 启动 Nginx 并配置防火墙。
- (可选)配置反向、HTTPS(通过 SSL 证书)。
⚠️ 注意:Angular 是单页应用(SPA),需配置 Nginx 支持路由刷新:
location / { root /usr/share/nginx/html; index index.html index.htm; try_files $uri $uri/ /index.html; # 关键:支持 Angular 路由 }
✅ 推荐方案三:使用容器化部署(Docker + 阿里云容器服务 / ECS 自托管)
如果你熟悉 Docker,也可以构建一个轻量镜像。
推荐基础镜像:
# 使用 Nginx 官方镜像作为运行环境
FROM nginx:alpine
COPY dist/your-angular-app /usr/share/nginx/html
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
镜像选择:
nginx:alpine:最小化体积,适合静态网站- 部署平台可选:
- 阿里云 容器服务 Kubernetes 版(ACK)
- 阿里云 弹性容器实例(ECI)
- ECS 上自行运行 Docker
总结:如何选择?
| 场景 | 推荐方案 | 是否需要镜像 |
|---|---|---|
| 简单静态网站,追求低成本高可用 | OSS + CDN | ❌ 不需要 |
| 已有 ECS,想自己管理 | ECS + Nginx | ✅ CentOS / Alibaba Linux |
| 微服务架构或 CI/CD 集成 | Docker + ACK | ✅ nginx:alpine |
最终建议:
对于大多数静态 Angular 网站,首选 OSS + CDN 方案,它简单、快速、便宜且性能优异,无需关心服务器镜像、运维、扩展等问题。
如你坚持使用 ECS,则选择 Alibaba Cloud Linux 3 或 CentOS 7/8 镜像,并安装 Nginx 即可。
如有更多需求(如 SSR 服务端渲染、Node.js API),再考虑更复杂架构。
CLOUD技术笔记