容器编排

1. 基本结构

本系统中的容器编排采用下述结构:

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;
    }
  }
}