feat(config): Consul ACL token 支持 + 8520 端口
- Program.cs 加 Consul:Token 配置(ACL 开启后 api 必须带 token) - 默认端口改 8520(非标准,配合安全组+ACL 三重防护) - token 通过环境变量注入(compose Consul__Token),不进代码
This commit is contained in:
parent
f43e35a4b1
commit
2f32b74687
@ -13,12 +13,20 @@ builder.Configuration.AddJsonFile("appsettings.Secrets.json", optional: true, re
|
||||
// 加载顺序决定优先级:后注册的覆盖先注册的,故 Consul 在 Secrets 之后。
|
||||
// 鸡生蛋问题:Consul 地址本身用环境变量 Consul__Host 注入(compose 配置),
|
||||
// 默认回退到 middleware 公网地址。Consul 不可用时 Optional=true 回退本地 json,不阻断启动。
|
||||
var consulHost = builder.Configuration["Consul:Host"] ?? "http://43.134.235.58:8500";
|
||||
var consulHost = builder.Configuration["Consul:Host"] ?? "http://43.134.235.58:8520";
|
||||
var consulToken = builder.Configuration["Consul:Token"] ?? "";
|
||||
builder.Configuration.AddConsul(
|
||||
"buildflow/",
|
||||
options =>
|
||||
{
|
||||
options.ConsulConfigurationOptions = co => co.Address = new Uri(consulHost);
|
||||
options.ConsulConfigurationOptions = co =>
|
||||
{
|
||||
co.Address = new Uri(consulHost);
|
||||
// ACL token:Consul 开启了 ACL(default deny),api 必须带专用 token 才能读写 KV
|
||||
// token 通过环境变量 Consul:Token 注入(compose),不进代码/镜像
|
||||
if (!string.IsNullOrEmpty(consulToken))
|
||||
co.Token = consulToken;
|
||||
};
|
||||
options.Optional = true; // Consul 不可用不阻断启动,回退本地 appsettings
|
||||
options.ReloadOnChange = true; // KV 变更自动刷新 IConfiguration(热重载基础)
|
||||
options.OnLoadException = ex => ex.Ignore = true; // 容错:Consul 抖动不影响应用
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user