39 lines
1.3 KiB
YAML
39 lines
1.3 KiB
YAML
# 公网提取 API 使用 X-API-Key;成功后代理立即 EXTRACTED。
|
||
version: 1
|
||
security: {requireProtectionOnPublicListen: true}
|
||
distribution:
|
||
enabled: true
|
||
listen: 0.0.0.0:8081
|
||
auth:
|
||
mode: apiKey
|
||
header: X-API-Key
|
||
token: "${DISTRIBUTION_API_KEY}"
|
||
clientIdentification: {mode: authenticatedClient}
|
||
limits: {requestsPerMinute: 6000, requestsPerMinutePerClient: 300}
|
||
extraction:
|
||
fulfillment: partial
|
||
maxCountPerRequest: 100
|
||
minRemainingTTL: 45s
|
||
maxHealthCheckAge: 10s
|
||
reserveForGateway: 0
|
||
routing:
|
||
- name: public-extract
|
||
enabled: true
|
||
purpose: extract
|
||
match: {hostRegex: '.*'}
|
||
upstreams: [provider-a]
|
||
strategy: {type: random}
|
||
onUnavailable: {action: reject}
|
||
upstreams:
|
||
provider-a:
|
||
enabled: true
|
||
exposure: [extract]
|
||
provider: {billingMode: fetch, protocols: [http]}
|
||
api: {url: https://provider-a.example/proxies, method: GET, auth: {type: none}, template: '{{.}}'}
|
||
proxyAuth: {type: response}
|
||
pool: {maxSize: 1000}
|
||
capacity: {maxConcurrencyPerProxy: 1}
|
||
lifecycle: {ttl: 3m, allocationSafetyMargin: 30s}
|
||
fetch: {requestInterval: 1s, timeout: 3s, maxAttempts: 3, maxInFlight: 1, maxTotal: 100000}
|
||
check: {interval: 15s, jitter: 20, maxInFlight: 200, timeout: 2s, maxAttempts: 2, maxConsecutiveFailures: 3}
|