feat: M3 load balancing + health check (model/render/admin API status/UI)

This commit is contained in:
2026-08-17 17:45:03 +08:00
parent bd3a62a017
commit 467c7124ab
10 changed files with 658 additions and 33 deletions

View File

@ -55,6 +55,24 @@
<label>请求头(JSON) <input v-model="httpHeadersField" placeholder='{"X-Custom":"val"}' /></label>
<label>BasicAuth 用户 <input v-model="basicAuthUserField" placeholder="user" /></label>
<label>BasicAuth 密码 <input v-model="basicAuthPasswordField" type="password" placeholder="pass" /></label>
<div class="adv-sep">负载均衡 (M3)</div>
<label>LB <input v-model="lbGroupField" placeholder="如 web (同组自动负载均衡)" /></label>
<label>组密钥 <input v-model="lbGroupKeyField" placeholder="组内相同" /></label>
<div class="adv-sep">健康检查 (M3)</div>
<label
>类型
<select v-model="healthCheckTypeField">
<option value="">关闭</option>
<option value="tcp">tcp</option>
<option value="http">http</option>
</select>
</label>
<label>HTTP 路径 <input v-model="healthCheckPathField" placeholder="/healthz" /></label>
<label>超时() <input v-model.number="healthCheckTimeoutField" type="number" min="0" placeholder="默认3" /></label>
<label>失败次数 <input v-model.number="healthCheckMaxFailedField" type="number" min="0" placeholder="默认1" /></label>
<label>间隔() <input v-model.number="healthCheckIntervalField" type="number" min="0" placeholder="默认10" /></label>
</div>
</div>
</div>
@ -128,6 +146,13 @@ const subdomainField = field('subdomain')
const hostHeaderRewriteField = field('hostHeaderRewrite')
const basicAuthUserField = field('basicAuthUser')
const basicAuthPasswordField = field('basicAuthPassword')
const lbGroupField = field('lbGroup')
const lbGroupKeyField = field('lbGroupKey')
const healthCheckTypeField = field('healthCheckType')
const healthCheckPathField = field('healthCheckPath')
const healthCheckTimeoutField = field('healthCheckTimeout')
const healthCheckMaxFailedField = field('healthCheckMaxFailed')
const healthCheckIntervalField = field('healthCheckInterval')
// locations is an array shown as JSON in the UI
const locationsField = computed({