封装自动生成 traefik 代理配置的 nodejs 插件代码
This commit is contained in:
61
docker/traefik/src/config/index.js
Normal file
61
docker/traefik/src/config/index.js
Normal 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'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user