caddy docker 搭建xxl-job-admin集群

之前使用spring的quartz方案,使用过程中倒是没有遇到什么太大问题就是有时会莫名出现cron不执行的情况,且不止出现过一次,正好现在没有工作在开源中国看到xxl-job的开源方案,就摸索了几天,文档很精彩,坑还是有的。赶紧放下了我手中的针线活,在此记录。

xxl-job的sql文件: https://gitee.com/xuxueli0323/xxl-job/blob/master/doc/db/tables_xxl_job.sql

xxl-job的Docker仓库:https://hub.docker.com/r/xuxueli/xxl-job-admin

1、首先先在数据库执行xxl-job的sql文件,这是一个单独的databases

2、xxl-job的官方文档中写的启动容器使用以下命令

docker run -e PARAMS=”–spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai” -p 8080:8080 -v /tmp:/data/applogs –name xxl-job-admin -d xuxueli/xxl-job-admin:{指定版本}

上方仅指定了数据源,并没有修改数据库帐号和数据库密码,所以我们修改为

docker run -e PARAMS=”–spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai –spring.datasource.username=root –spring.datasource.password=root” -p 8080:8080 -v /tmp:/data/applogs –name xxl-job-admin -d xuxueli/xxl-job-admin:{指定版本}

如果以上你的配置文件中有其它修改项,比如mail可自行自定义,在此之前还是下载xxl-job的官方源码进行查看。

3、第二步我们使用docker创建了多个容器绑定端口到如:8080、8081、8082、8083

4、使用caddy,caddy的配置文件,查看以下

admin.covermusic.cn {

proxy / 127.0.0.1:8080 127.0.0.1:8081 127.0.0.1:8082 127.0.0.1:8083 {

policy random

header_upstream Host {host}
header_upstream X-Real-IP {remote}
header_upstream X-Forwarded-For {remote}
header_upstream X-Forwarded-Proto {scheme}

}

}

以上的header_upstream一定要加上,切记,切记,不然会有惊喜。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注