近期在安装Docker Swarm集群,考虑到一个个服务都需要进行域名映射实在麻烦,于是开始查找相应的方案,在综合实验Traefik和Docker Flower Proxy后发现都不是特别方便,特别是有些测试的组合容器有多个服务的情况下。还是手工改写nginx可控性更加适合。寻找nginx的动态路由,一般都是通过lua来实现,突然发现一个整合好的,并且有Web管理界面可以使用,Ceryx登场。
Ceryx GitHub
Ceryx Web GitHub
参考两个网站上的脚本,整合了一个在Portainer上使用的yml
version: '2'
services:
ceryx:
image: sourcelair/ceryx:latest
ports:
- 80:80
- 443:443
depends_on:
- redis
environment:
- CERYX_DISABLE_LETS_ENCRYPT=false
- CERYX_DOCKERIZE_EXTRA_ARGS=-no-overwrite
- CERYX_REDIS_HOST=redis
- CERYX_REDIS_PORT=6379
command:
- usr/local/openresty/bin/openresty
- -g
- daemon off;
api:
image: sourcelair/ceryx-api:latest
depends_on:
- redis
- ceryx
environment:
- CERYX_API_HOST=0.0.0.0
- CERYX_API_HOSTNAME=localhost
- CERYX_API_PORT=5555
- CERYX_DEBUG=false
- CERYX_REDIS_HOST=redis
- CERYX_REDIS_PORT=6379
redis:
image: redis:3.2.11-alpine
web:
image: paris/ceryx-web:latest
depends_on:
- redis
- ceryx
- api
ports:
- 5000:5000
environment:
- CERYX_API_HOST=http://api:5555
networks:
default:
attachable: true
driver: overlay
name: ceryx
然后通过页面管理即可