容器编排
1. 基本结构
本系统中的容器编排采用下述结构:
- 使用 docker 部署一个或多个 REST API 服务器实例
- 使用 docker 部署一个 Nginx 实例
- 使用 Nginx 均衡多个 REST API 服务器负载
- 使用 Nginx 作为静态文件服务器
- 使用 docker-compose 作为容器编排工具
2. docker compose
创建一个目录 baoleme
,在该目录下创建配置文件docker-compose.yml
version: '2'
services:
# REST API 容器
api:
image: node:alpine
networks:
- network
volumes:
- /root/baoleme/server:/server
working_dir: /server
command: npm start
# Nginx 容器
proxy:
image: nginx
networks:
- network
volumes:
- /root/baoleme/nginx:/etc/nginx
- /root/baoleme/server/files:/files
ports:
- 443:443
# 直连 不需要暴露端口
links:
- api
# 自定义网络名
networks:
network:
3. Nginx 配置
...
http {
...
# 默认 3 个 REST API 实例
upstream sava {
server baoleme_api_1:8520;
server baoleme_api_2:8520;
server baoleme_api_3:8520;
}
server {
listen 443 ssl;
# 反向代理
location / {
proxy_pass http://sava;
}
# 静态文件服务器
location /files {
alias /files;
}
}
}