version: '3.8' services: # Web 应用示例 webapp: image: nginx:alpine networks: - traefik-public configs: - source: webapp-html target: /usr/share/nginx/html/index.html deploy: replicas: 2 labels: - traefik.enable=true - traefik.http.routers.webapp.rule=Host(`app.local`) - traefik.http.routers.webapp.entrypoints=web - traefik.http.services.webapp.loadbalancer.server.port=80 update_config: parallelism: 1 delay: 10s restart_policy: condition: on-failure # API 服务示例 api: image: httpd:alpine networks: - traefik-public configs: - source: api-html target: /usr/local/apache2/htdocs/index.html deploy: replicas: 2 labels: - traefik.enable=true - traefik.http.routers.api.rule=Host(`api.local`) - traefik.http.routers.api.entrypoints=web - traefik.http.services.api.loadbalancer.server.port=80 # 添加路径前缀 - traefik.http.routers.api-path.rule=Host(`app.local`) && PathPrefix(`/api`) - traefik.http.routers.api-path.entrypoints=web - traefik.http.routers.api-path.service=api update_config: parallelism: 1 delay: 10s restart_policy: condition: on-failure # 监控服务示例 monitor: image: nginx:alpine networks: - traefik-public configs: - source: monitor-html target: /usr/share/nginx/html/index.html deploy: replicas: 1 labels: - traefik.enable=true - traefik.http.routers.monitor.rule=Host(`monitor.local`) - traefik.http.routers.monitor.entrypoints=web - traefik.http.services.monitor.loadbalancer.server.port=80 # 添加基本认证 (可选) - traefik.http.routers.monitor.middlewares=auth - traefik.http.middlewares.auth.basicauth.users=admin:$$2y$$10$$DLKjKQKQKQKQKQKQKQKQKe restart_policy: condition: on-failure networks: traefik-public: external: true configs: webapp-html: content: |
服务: webapp
访问地址: http://app.local
负载均衡: Traefik + Docker Swarm
时间:
这是通过 Traefik 路由的 Web 应用示例。
服务: api
访问地址: http://api.local
路径路由: http://app.local/api
负载均衡: Traefik + Docker Swarm
时间:
这是通过 Traefik 路由的 API 服务示例。
服务: monitor
访问地址: http://monitor.local
认证: 基本认证保护
负载均衡: Traefik + Docker Swarm
时间:
这是通过 Traefik 路由的监控服务示例。