封装自动生成 traefik 代理配置的 nodejs 插件代码

This commit is contained in:
编码猿
2025-09-23 00:59:56 +08:00
parent bfe5f57378
commit 135839d6e2
27 changed files with 33463 additions and 12085 deletions

View File

@@ -0,0 +1,61 @@
const path = require("path");
module.exports = {
filePath: path.join(__dirname, '../../dynamic.yml'),
nacosApi: {
baseUrl: 'http://192.168.31.101:8848/nacos/v1/ns',
apiList: {
instanceInfo: '/instance/list',
serviceList: '/service/list',
}
},
nacosConfig: {
nameSpace: 'public',
},
// 每隔五秒检查一下最新配置
check_time: 10000,
// traefik 通用中间件配置
traefikConfig: {
middlewaresStr: ['compress', 'ipWhiteList', 'rateLimit', 'retries'],
middlewaresConfig: {
// 限流中间件(独立配置,关键修复)
rateLimit: {
rateLimit: {
average: 100,
burst: 200,
period: '1s',
sourceCriterion: {
ipStrategy: {depth: 2}
}
}
},
// 压缩中间件
compress: {
compress: {
excludedContentTypes: ['text/event-stream'],
minResponseBodyBytes: 1024
}
},
// IP白名单中间件示例允许本地和192.168.31网段)
ipWhiteList: {
ipWhiteList: {
sourceRange: ['127.0.0.1/32', '192.168.31.0/24']
}
},
// // 重定向中间件HTTP→HTTPS
// redirectToHttps: {
// redirectScheme: {
// scheme: 'https',
// permanent: true
// }
// },
// 重试中间件(关键修复:将重试配置移到这里)
retries: {
retry: {
attempts: 3,
initialInterval: '200ms'
}
}
}
}
}