Files
OmniRoute/docs/i18n/my/docs/ops/PROXY_GUIDE.md
Diego Rodrigues de Sa e Souza 8feea123bb feat(docs): mirror every docs/ page in all 65 locales (#14106)
* feat(docs): mirror every docs/ page in all 65 locales

Extends the documentation mirrors from the 22-page core set (#13940) to
every Markdown page under docs/: 152 sources x 65 locales = 9,880 mirrors
(6,208 new), language bars rewritten for the full locale list, state
adopted so the blocking drift gate now covers all 152 pages.

run-translation.mjs: an oversized block made only of table rows or list
items (PROVIDER_REFERENCE.md 244-row table, FREE_TIERS.md 71-item list) is
cut at item boundaries and rejoined without a blank line — the single
16-40 KB request outlived the backend socket for verbose scripts. 48
older mirrors whose tables had lost rows were retranslated with --force.

* docs(i18n): refresh mirrors for the sources the base changed since the branch cut

Section-level retranslation of the 29 docs (and README.md) whose source
or mirrors moved on release/v3.8.51 during the run, then state adoption;
the drift gate is green again on the merged tree.
2026-09-18 13:16:46 -03:00

70 KiB

🌐 OmniRoute Proxy Guide (မြန်မာ)

🌐 Languages: 🇺🇸 English · 🇪🇹 am · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW


ပထဝီဝင်ဆိုင်ရာ ပိတ်ပင်မှုများကို ကျော်လွှားပါ၊ သင့်အထောက်အထားကို ကာကွယ်ပါ၊ ထို့ပြင် AI traffic ကို မည်သည့် proxy မှတစ်ဆင့်မဆို စီစဉ်သတ်မှတ်မှု ရှုပ်ထွေးခြင်း လုံးဝမရှိဘဲ လမ်းကြောင်းပေးပို့ပါ။

OmniRoute တွင် upstream AI provider traffic ကို HTTP၊ HTTPS သို့မဟုတ် SOCKS5 proxy များမှတစ်ဆင့် လမ်းကြောင်းပေးပို့နိုင်စေသည့် လုပ်ဆောင်ချက်အပြည့်အစုံပါဝင်သော proxy စီမံခန့်ခွဲမှုစနစ်တစ်ခု ပါရှိသည်။ သင်သည် ပိတ်ပင်ထားသော ဒေသတစ်ခုတွင် ရှိနေသည်ဖြစ်စေ၊ IP လှည့်လည်အသုံးပြုမှု လိုအပ်သည်ဖြစ်စေ၊ မမြင်သာသော fingerprinting ကို အသုံးပြုလိုသည်ဖြစ်စေ — ဤလမ်းညွှန်တွင် အားလုံးကို ဖော်ပြထားသည်။


မာတိကာ


Proxy များကို အဘယ်ကြောင့် အသုံးပြုသင့်သနည်း။

AI provider အများအပြားသည် ပထဝီဝင်ဒေသအလိုက် အသုံးပြုခွင့်ကို ကန့်သတ်ထားသည်။ ရုရှား၊ တရုတ်၊ အီရန်၊ ကျူးဘား၊ တူရကီ နှင့် အခြားနိုင်ငံများရှိ developer များသည် အောက်ပါကဲ့သို့ error များကို ကြုံတွေ့ရသည်-

unsupported_country_region_territory

ပိတ်ပင်ထားသော ဒေသများ၏ ပြင်ပတွင်ပင် proxy များသည် အောက်ပါအခြေအနေများအတွက် အသုံးဝင်သည်-

အသုံးပြုမှုအခြေအနေ ဖော်ပြချက်
ပထဝီဝင်ပိတ်ပင်မှု ကျော်လွှားခြင်း ပိတ်ပင်ထားသော နိုင်ငံများမှ OpenAI၊ Anthropic၊ Codex၊ Copilot တို့ကို အသုံးပြုခြင်း
IP လှည့်လည်အသုံးပြုမှု Rate limit မဖြစ်စေရန် request များကို IP အများအပြားသို့ ဖြန့်ဝေခြင်း
ကိုယ်ရေးလုံခြုံမှု Upstream provider များထံမှ သင့် IP အစစ်ကို ဖုံးကွယ်ခြင်း
စည်းမျဉ်းလိုက်နာမှု သတ်မှတ်ထားသော တရားစီရင်ပိုင်ခွင့်ဒေသများမှတစ်ဆင့် traffic ကို လမ်းကြောင်းပေးပို့ခြင်း
စမ်းသပ်ခြင်း မတူညီသော ဒေသများမှ request များကို အတုယူစမ်းသပ်ခြင်း

တည်ဆောက်ပုံ အနှစ်ချုပ်

┌───────────────────────────────────────────────────────────────┐
│                       OmniRoute Server                        │
│                                                               │
│  ┌─────────────┐    ┌──────────────┐    ┌──────────────────┐  │
│  │ Proxy       │    │ Proxy        │    │ Proxy            │  │
│  │ Registry    │───▶│ Dispatcher   │───▶│ Fetch (undici)   │  │
│  │ (SQLite)    │    │ (cached)     │    │                  │  │
│  └─────────────┘    └──────────────┘    └────────┬─────────┘  │
│         ▲                                        │            │
│         │                                        ▼            │
│  ┌──────┴──────┐                        ┌──────────────────┐  │
│  │ 1proxy Sync │                        │ Upstream         │  │
│  │ (free pool) │                        │ Provider API     │  │
│  └─────────────┘                        └──────────────────┘  │
└───────────────────────────────────────────────────────────────┘

အဓိက အစိတ်အပိုင်းများ

အစိတ်အပိုင်း ဖိုင် အခန်းကဏ္ဍ
Proxy Registry src/lib/db/proxies.ts Proxy entry များနှင့် scope assignment များအတွက် CRUD
Proxy Dispatcher open-sse/utils/proxyDispatcher.ts Caching ဖြင့် undici ProxyAgent/SOCKS dispatcher များကို ဖန်တီးပေးသည်
Proxy Fetch open-sse/utils/proxyFetch.ts Proxy dispatcher ထည့်သွင်းမှုဖြင့် fetch() ကို wrapper ပြုလုပ်ပေးသည်
Settings Route src/app/api/settings/proxy/route.ts အဟောင်း proxy config API (GET/PUT/DELETE)
Management Route src/app/api/v1/management/proxies/route.ts Registry CRUD API (GET/POST/PATCH/DELETE)
1proxy DB src/lib/db/oneproxy.ts အခမဲ့ proxy marketplace အတွက် အမြဲတမ်းသိမ်းဆည်းမှု

အဆင့် 4 ဆင့်ပါ Proxy စနစ်

OmniRoute သည် သီးခြားလွတ်လပ်သော နယ်ပယ်လေးခု တွင် proxy သတ်မှတ်ခြင်းကို ပံ့ပိုးပေးပြီး ဦးစားပေးအစီအစဉ်အတိုင်း ဖြေရှင်းရွေးချယ်ပါသည်-

ဦးစားပေး ဖြေရှင်းရွေးချယ်မှု အစီအစဉ် (အမြင့်ဆုံး → အနိမ့်ဆုံး)-

  1. 🔵 အကောင့်/ချိတ်ဆက်မှု Proxy  →  API key / OAuth ချိတ်ဆက်မှုတစ်ခုစီအလိုက်
  2. 🟡 Provider Proxy            →  provider တစ်ခုစီအလိုက် (ဥပမာ၊ OpenAI traffic အားလုံး)
  3. 🟠 Combo Proxy               →  combo/routing configuration တစ်ခုစီအလိုက်
  4. 🟢 Global Proxy              →  traffic အားလုံး၊ provider အားလုံး

ဖြေရှင်းရွေးချယ်ပုံ

OmniRoute က upstream provider တစ်ခုထံ request ပေးပို့သည့်အခါ အဆင့်တစ်ခုချင်းစီကို အစဉ်လိုက် စစ်ဆေးသည့် resolveProxyForConnectionFromRegistry() ကို ခေါ်ဆိုပါသည်-

  1. အကောင့်အဆင့် — ဤသီးခြား connection ID အတွက် proxy သတ်မှတ်ထားပါသလား။
  2. Provider အဆင့် — ဤ provider (ဥပမာ၊ openai) အတွက် proxy သတ်မှတ်ထားပါသလား။
  3. Global အဆင့် — global proxy ကို သတ်မှတ်ထားပါသလား။
  4. Proxy မရှိ — Provider ထံ တိုက်ရိုက်ချိတ်ဆက်ပါသည်။

ပထမဆုံး ကိုက်ညီမှုကို အသုံးပြုပါသည်။ ထို့ကြောင့် global proxy တစ်ခုကို အရန်အဖြစ် သတ်မှတ်ထားနိုင်သော်လည်း သီးခြား provider များ သို့မဟုတ် ချိတ်ဆက်မှုများအတွက် အစားထိုးသတ်မှတ်နိုင်ပါသည်။

Proxy မှတစ်ဆင့် ပေးပို့သည့်အရာများ

Traffic အမျိုးအစား Proxy အသုံးပြုသလား။ မှတ်ချက်များ
Chat completions ✅ /v1/chat/completions request အားလုံး
Embeddings ✅ /v1/embeddings
ပုံထုတ်လုပ်ခြင်း ✅ /v1/images/generations
အသံ (TTS/STT) ✅ /v1/audio/*
OAuth token လဲလှယ်ခြင်း ✅ unsupported_country_region_territory ကို ဖြေရှင်းပေးသည်
ချိတ်ဆက်မှု စမ်းသပ်မှုများ ✅ "ချိတ်ဆက်မှုကို စမ်းသပ်ရန်" ခလုတ်သည် proxy ကို အသုံးပြုသည်
Token ပြန်လည်ရယူခြင်း ✅ နောက်ခံ OAuth သက်တမ်းတိုးခြင်း
Model ချိန်ကိုက်ခြင်း ✅ Model စာရင်းပြုစုခြင်းနှင့် ရှာဖွေဖော်ထုတ်ခြင်း

Proxy Registry (CRUD)

Proxy registry သည် သင့် proxy အားလုံးကို သိမ်းဆည်းထားသည့် SQLite table (proxy_registry) တစ်ခုဖြစ်သည်။ Proxy တစ်ခုစီတွင် အောက်ပါအချက်များ ပါဝင်သည်-

Field Type ဖော်ပြချက်
id UUID တစ်ခုတည်းသာရှိသော သတ်မှတ်အမှတ်
name String လူဖတ်ရှုနားလည်နိုင်သော အညွှန်း
type String Protocol: http, https, socks5
host String Proxy hostname သို့မဟုတ် IP
port Integer Port နံပါတ်
username String အထောက်အထားစိစစ်ရေး username (သိမ်းဆည်းထားစဉ် စာဝှက်ထားသည်)
password String အထောက်အထားစိစစ်ရေး password (သိမ်းဆည်းထားစဉ် စာဝှက်ထားသည်)
region String ပထဝီဝင်ဒေသ အညွှန်း
notes String လွတ်လပ်စွာရေးသားနိုင်သော မှတ်စုများ
status String active သို့မဟုတ် inactive
source String manual သို့မဟုတ် oneproxy

Proxy တစ်ခု ဖန်တီးခြင်း

Dashboard မှတစ်ဆင့်-

  1. Settings → Proxy သို့ သွားပါ
  2. Add Proxy ကို နှိပ်ပါ
  3. type၊ host၊ port နှင့် ရွေးချယ်ထည့်သွင်းနိုင်သော အထောက်အထားစိစစ်ရေး credentials များကို ဖြည့်ပါ
  4. သိမ်းဆည်းပါ

API မှတစ်ဆင့်-

curl -X POST http://localhost:20128/api/v1/management/proxies \
  -H "Content-Type: application/json" \
  -d '{
    "name": "US Proxy",
    "type": "http",
    "host": "proxy.example.com",
    "port": 8080,
    "username": "user",
    "password": "pass",
    "region": "US"
  }'

Proxy တစ်ခုကို အပ်ဒိတ်လုပ်ခြင်း

curl -X PATCH http://localhost:20128/api/v1/management/proxies \
  -H "Content-Type: application/json" \
  -d '{
    "id": "proxy-uuid-here",
    "host": "new-proxy.example.com",
    "port": 9090
  }'

မှတ်ချက်- တန်ဖိုးပါသော အစားထိုး credentials များကို သင်က အတိအလင်း မပေးပို့သရွေ့ လက်ရှိ credentials များကို ဆက်လက်ထိန်းသိမ်းထားပါသည်။ username/password အတွက် string အလွတ်များကို ပေးပို့ပါက သိမ်းဆည်းထားသော တန်ဖိုးများကို ဆက်လက်ထိန်းသိမ်းထားမည်ဖြစ်သည်။

Proxy တစ်ခုကို ဖျက်ခြင်း

# Proxy ကို မည်သည့်နယ်ပယ်တွင်မဆို သတ်မှတ်ထားပါက မအောင်မြင်ပါ
curl -X DELETE "http://localhost:20128/api/v1/management/proxies?id=proxy-uuid"

# အတင်းအကျပ်ဖျက်ခြင်း (သတ်မှတ်ချိတ်ဆက်ထားမှုများကိုလည်း ဖယ်ရှားသည်)
curl -X DELETE "http://localhost:20128/api/v1/management/proxies?id=proxy-uuid&force=1"

Proxy များကို စာရင်းပြုစုခြင်း

curl "http://localhost:20128/api/v1/management/proxies?limit=50&offset=0"

နယ်ပယ်များတွင် Proxy များ သတ်မှတ်ခြင်း

# Global နယ်ပယ်တွင် သတ်မှတ်ပါ
curl -X PUT http://localhost:20128/api/settings/proxy \
  -H "Content-Type: application/json" \
  -d '{"level": "global", "proxy": {"type":"http","host":"proxy.example.com","port":8080}}'

# သီးခြား provider တစ်ခုတွင် သတ်မှတ်ပါ
curl -X PUT http://localhost:20128/api/settings/proxy \
  -H "Content-Type: application/json" \
  -d '{"level": "provider", "id": "openai", "proxy": {"type":"socks5","host":"socks.example.com","port":1080}}'

# သီးခြား connection/key တစ်ခုတွင် သတ်မှတ်ပါ
curl -X PUT http://localhost:20128/api/settings/proxy \
  -H "Content-Type: application/json" \
  -d '{"level": "key", "id": "connection-uuid", "proxy": {"type":"http","host":"key-proxy.com","port":3128}}'

ထိရောက်အသုံးပြုမည့် Proxy ကို ဖြေရှင်းရွေးချယ်ခြင်း

သတ်မှတ်ထားသော ချိတ်ဆက်မှုတစ်ခုအတွက် မည်သည့် proxy ကို အသုံးပြုမည်ဖြစ်ကြောင်း စစ်ဆေးပါ-

curl "http://localhost:20128/api/settings/proxy?resolve=connection-uuid"

ဖြေရှင်းရွေးချယ်ထားသော proxy ကို ၎င်း၏ အဆင့် (account, provider, သို့မဟုတ် global) နှင့် source တို့နှင့်အတူ ပြန်ပေးပါသည်။

အစုလိုက် သတ်မှတ်ခြင်း

Proxy တစ်ခုကို provider သို့မဟုတ် ချိတ်ဆက်မှု အများအပြားတွင် တစ်ပြိုင်နက် သတ်မှတ်ပါ-

curl -X POST http://localhost:20128/api/v1/management/proxies/bulk-assign \
  -H "Content-Type: application/json" \
  -d '{
    "scope": "provider",
    "scopeIds": ["openai", "anthropic", "codex"],
    "proxyId": "proxy-uuid"
  }'

တင်သွင်းခြင်း/ထုတ်ယူခြင်း

Proxy များကို Backup/Restore စနစ်တွင် ထည့်သွင်းထားပါသည်။ သင့် OmniRoute configuration ကို ထုတ်ယူသည့်အခါ-

  1. Dashboard → Settings → Backup သို့ သွားပါ
  2. Export ကို နှိပ်ပါ — proxy registry နှင့် သတ်မှတ်ချိတ်ဆက်ထားမှုများ ပါဝင်သည်
  3. ပြန်လည်ထည့်သွင်းရန် Import ကို နှိပ်ပြီး backup file ကို upload လုပ်ပါ

Proxy registry သည် host+port ဖြင့် upsert လုပ်ခြင်း ကိုလည်း ပံ့ပိုးပါသည် — ရှိပြီးသား proxy နှင့် host၊ port တူညီသော proxy တစ်ခုကို import လုပ်ပါက ထပ်တူတစ်ခုအသစ် ဖန်တီးမည့်အစား ရှိပြီးသား proxy ကို အပ်ဒိတ်လုပ်ပါသည်။

အဟောင်းစနစ်မှ ပြောင်းရွှေ့ခြင်း

ဗားရှင်းအဟောင်း (registry မတိုင်မီ) တွင် proxy များကို သတ်မှတ်ပြင်ဆင်ထားခဲ့ပါက OmniRoute သည် ၎င်းတို့ကို အလိုအလျောက် ပြောင်းရွှေ့ပေးသည်-

အဟောင်း key_value သိုလှောင်မှု → proxy_registry + proxy_assignments

အဆင့်မြှင့်ပြီးနောက် ပထမဆုံး စတင်ချိန်တွင် ဤလုပ်ဆောင်ချက်သည် တစ်ကြိမ်သာ ဖြစ်ပေါ်သည်။ ထပ်မံလုပ်ဆောင်ရန် migrateLegacyProxyConfigToRegistry({ force: true }) ကို အသုံးပြုပါ။


1proxy အခမဲ့ Proxy စျေးကွက်

🆕 @oyi77 မှ ပါဝင်ပံ့ပိုးထားသည် — PR #1847 (Issue #1788)

OmniRoute သည် ကမ္ဘာတစ်ဝန်းမှ အခမဲ့ဖြစ်ပြီး စစ်ဆေးအတည်ပြုထားသော proxy ရာပေါင်းများစွာ ကို အသုံးပြုနိုင်ရန် 1proxy ကွန်မြူနတီပလက်ဖောင်းနှင့် ပေါင်းစပ်ထားသည်။ ကိုယ်ပိုင် proxy အခြေခံအဆောက်အအုံမရှိသော အသုံးပြုသူများအတွက် အထူးသင့်လျော်သည်။

အလုပ်လုပ်ပုံ

┌─────────────┐   တစ်ပြေးညီလုပ်ရန်   ┌─────────────────┐   အလှည့်ကျသုံးရန်   ┌────────────┐
│  1proxy API │ ──────────────────▶ │  proxy_registry  │ ────────────────▶ │ Provider   │
│  (ပြင်ပ)    │  proxy 500 အထိ      │  source=oneproxy │ အရည်အသွေးအလိုက်   │ API        │
└─────────────┘                     └─────────────────┘                  └────────────┘
  1. တစ်ပြေးညီလုပ်ခြင်း — OmniRoute သည် 1proxy API မှ စစ်ဆေးအတည်ပြုထားသော proxy များကို ရယူသည်
  2. သိမ်းဆည်းခြင်း — Proxy များကို source = 'oneproxy' ဖြင့် တူညီသော proxy_registry ဇယားထဲတွင် သိမ်းဆည်းသည်
  3. စစ်ထုတ်ခြင်း — Protocol၊ နိုင်ငံနှင့် အရည်အသွေးရမှတ်တို့အလိုက် စစ်ထုတ်သည်
  4. အလှည့်ကျအသုံးပြုခြင်း — အရည်အသွေးအလိုက်၊ ကျပန်း သို့မဟုတ် အစဉ်လိုက် နည်းဗျူဟာများကို အသုံးပြုပြီး အကောင်းဆုံး proxy ကို ရွေးချယ်သည်
  5. အလိုအလျောက် အဆင့်လျှော့ခြင်း — မအောင်မြင်သော proxy များ၏ အရည်အသွေးရမှတ်ကို လျှော့ချပြီး သတ်မှတ်ချက်အောက်ရောက်ပါက → အသုံးမပြုနိုင်ဟု အမှတ်အသားပြုသည်

Proxy များကို တစ်ပြေးညီလုပ်ခြင်း

Dashboard မှတစ်ဆင့်:

  1. Settings → 1proxy တက်ဘ်သို့ သွားပါ
  2. "Sync Now" ကို နှိပ်ပါ
  3. စာရင်းအင်းများဖြစ်သည့် proxy စုစုပေါင်း၊ အသုံးပြုနိုင်သည့် အရေအတွက်၊ ပျမ်းမျှအရည်အသွေးနှင့် နိုင်ငံအလိုက်ခွဲခြမ်းချက်တို့ကို ကြည့်ရှုပါ

API မှတစ်ဆင့်:

# တစ်ပြေးညီလုပ်ခြင်းကို စတင်ရန်
curl -X POST http://localhost:20128/api/settings/oneproxy \
  -H "Content-Type: application/json" \
  -d '{}'

# တုံ့ပြန်ချက်:
# { "success": true, "added": 127, "updated": 45, "failed": 2, "total": 172 }

Proxy များကို စစ်ထုတ်ခြင်း

# Protocol အလိုက် စစ်ထုတ်ရန်
curl "http://localhost:20128/api/settings/oneproxy?protocol=socks5"

# နိုင်ငံအလိုက် စစ်ထုတ်ရန်
curl "http://localhost:20128/api/settings/oneproxy?countryCode=US"

# အနိမ့်ဆုံး အရည်အသွေးရမှတ်အလိုက် စစ်ထုတ်ရန်
curl "http://localhost:20128/api/settings/oneproxy?minQuality=80"

# စစ်ထုတ်မှုများကို ပေါင်းစပ်ရန်
curl "http://localhost:20128/api/settings/oneproxy?protocol=http&countryCode=DE&minQuality=70"

Proxy အရည်အသွေးရမှတ်များ

1proxy proxy တစ်ခုစီတွင် အောက်ပါ metadata များ ပါဝင်သည်-

အကွက် ဖော်ပြချက်
qualityScore 1proxy စစ်ဆေးအတည်ပြုမှုမှ 0-100 အဆင့်သတ်မှတ်ချက်
latencyMs တိုင်းတာထားသော ကွန်ရက်တုံ့ပြန်ကြာချိန်
anonymity transparent၊ anonymous သို့မဟုတ် elite
googleAccess Proxy သည် Google ဝန်ဆောင်မှုများကို အသုံးပြုနိုင်ခြင်း ရှိ၊ မရှိ
countryCode စာလုံးနှစ်လုံးပါ ISO နိုင်ငံကုဒ်
lastValidated နောက်ဆုံးစစ်ဆေးအတည်ပြုခဲ့သည့် အချိန်မှတ်တမ်း

အရည်အသွေးရမှတ်များကို အခြေအနေအလိုက် အလိုအလျောက် ချိန်ညှိသည်-

  • မအောင်မြင်သော request များ သည် ရမှတ်ကို 10 မှတ် လျှော့ချသည်
  • ရမှတ် ≤10 သို့ ကျဆင်းပါက → proxy ကို inactive အဖြစ် အမှတ်အသားပြုသည်
  • အသုံးမပြုနိုင်သော proxy များကို အလှည့်ကျရွေးချယ်မှုမှ ဖယ်ထုတ်ထားသည်

အလှည့်ကျအသုံးပြုမှု နည်းဗျူဟာများ

# အရည်အသွေးအလိုက် အလှည့်ကျအသုံးပြုရန် (အကောင်းဆုံး proxy ကို ဦးစွာသုံးမည်) — မူလသတ်မှတ်ချက်
curl -X POST http://localhost:20128/api/settings/oneproxy/rotate \
  -H "Content-Type: application/json" \
  -d '{"strategy": "quality"}'

# ကျပန်း အလှည့်ကျအသုံးပြုရန်
curl -X POST http://localhost:20128/api/settings/oneproxy/rotate \
  -d '{"strategy": "random"}'

# အစဉ်လိုက်အသုံးပြုရန် (မကြာသေးမီက အနည်းဆုံး စစ်ဆေးအတည်ပြုထားသည့် proxy ကို ဦးစွာသုံးမည်)
curl -X POST http://localhost:20128/api/settings/oneproxy/rotate \
  -d '{"strategy": "sequential"}'

Circuit Breaker

1proxy တစ်ပြေးညီလုပ်ခြင်းတွင် အသင့်ပါဝင်သော circuit breaker တစ်ခု ရှိသည်-

  • တစ်ပြေးညီလုပ်မှု 5 ကြိမ်ဆက်တိုက် မအောင်မြင်ပြီးနောက် ထပ်မံတစ်ပြေးညီလုပ်ရန် ကြိုးပမ်းမှုများကို ပိတ်ဆို့ထားမည်
  • resetOneproxyCircuitBreaker() ဖြင့် ပြန်လည်သတ်မှတ်ပါ သို့မဟုတ် server ကို ပြန်လည်စတင်ပါ
  • တစ်ပြေးညီလုပ်မှု အခြေအနေကို GET /api/settings/oneproxy?action=status တွင် ရရှိနိုင်သည်

1proxy Proxy များကို ရှင်းလင်းခြင်း

# 1proxy proxy တစ်ခုတည်းကို ဖျက်ရန်
curl -X DELETE "http://localhost:20128/api/settings/oneproxy?id=proxy-uuid"

# 1proxy proxy အားလုံးကို ရှင်းလင်းရန် (ကိုယ်တိုင်ထည့်ထားသော proxy များကို မထိခိုက်ပါ)
curl -X DELETE "http://localhost:20128/api/settings/oneproxy?clearAll=1"

ရှာဖွေဖော်ထုတ်မှု တားဆီးခြင်းနှင့် ခြေရာဖျောက်ခြင်း

OmniRoute သည် traffic ကို proxy မှတစ်ဆင့် လမ်းကြောင်းပြောင်းပေးရုံသာမက traffic ကို တရားဝင်အသုံးပြုမှုကဲ့သို့ မြင်ရအောင်လည်း ပြုလုပ်ပေးသည်-

TLS Fingerprint အတုယူခြင်း

Browser မဟုတ်သော TLS handshake များကို အမှတ်အသားပြုသည့် bot ရှာဖွေရေးစနစ်များကို ကျော်လွှားနိုင်ရန် browser ကဲ့သို့သော TLS fingerprint များ ဖန်တီးဖို့ wreq-js ကို အသုံးပြုသည်။

CLI Fingerprint ကိုက်ညီအောင် ပြုလုပ်ခြင်း

CLI Fingerprint Toggle (Settings → Security) သည် မူရင်း CLI binary များ (Claude Code၊ Codex စသည်) ၏ တိကျသော signature နှင့် ကိုက်ညီစေရန် HTTP header များနှင့် JSON body field များကို အစီအစဉ်ပြန်စီပေးသည်။ ၎င်းသည် proxy ၏ အပေါ်ထပ်တွင် လုပ်ဆောင်သည်-

သင့် IP (ပိတ်ဆို့ခံထားရ) → Proxy IP (US) → Provider API
                            + TLS အတုယူမှု
                            + CLI fingerprint

သင်သည် IP ဖုံးကွယ်ခြင်း နှင့် request စစ်မှန်မှု နှစ်ခုလုံးကို တစ်ပြိုင်နက် ရရှိမည်ဖြစ်သည်။

Proxy IP ထိန်းသိမ်းခြင်း

Dashboard ရှိ အရောင်ခွဲခြားထားသော badge များက မည်သည့် proxy level အသက်ဝင်နေသည်ကို ပြသသည်-

Badge Level အဓိပ္ပာယ်
🟢 Global Traffic အားလုံးသည် ဤ proxy မှတစ်ဆင့် သွားသည်
🟡 Provider ဤ provider ၏ traffic ကိုသာ proxy ဖြတ်သန်းစေသည်
🔵 Connection ဤသီးခြား key/account သည် ဤ proxy ကို အသုံးပြုသည်

အတည်ပြုစစ်ဆေးနိုင်ရန် badge တွင် resolve လုပ်ထားသော proxy IP ကိုလည်း ပြသသည်။


Upstream Proxy Mode များ

CLIProxyAPI pattern ကို အသုံးပြုသည့် provider များအတွက် OmniRoute သည် upstream proxy mode သုံးမျိုးကို ပံ့ပိုးပေးသည်-

Mode ဖော်ပြချက်
native OmniRoute က proxy routing ကို တိုက်ရိုက်ကိုင်တွယ်သည် (မူလသတ်မှတ်ချက်)
cliproxyapi ပြင်ပ CLIProxyAPI instance တစ်ခုထံ လွှဲအပ်သည်
fallback native ကို ဦးစွာ စမ်းသပ်ပြီး မအောင်မြင်ပါက CLIProxyAPI သို့ ပြောင်းသုံးသည်

Provider တစ်ခုချင်းစီအလိုက် စီစဉ်သတ်မှတ်ပါ-

curl -X PUT "http://localhost:20128/api/upstream-proxy/openai" \
  -H "Content-Type: application/json" \
  -d '{"mode": "native", "enabled": true}'

Dashboard UI

Settings → Proxy Tab

  • Traffic အားလုံးအတွက် တစ်ကြိမ်တည်း သတ်မှတ်နိုင်သည့် Global proxy စီစဉ်သတ်မှတ်မှု
  • Provider တစ်ခုချင်းစီအလိုက် proxy အစားထိုးသတ်မှတ်ချက်များ
  • Connection တစ်ခုချင်းစီအလိုက် proxy ချိတ်ဆက်သတ်မှတ်မှုများ
  • စီစဉ်သတ်မှတ်ထားသော proxy မှတစ်ဆင့် Connection စမ်းသပ်မှု
  • အသက်ဝင်နေသော proxy level ကို ပြသသည့် အရောင်ခွဲခြားထားသော badge များ

Settings → 1proxy Tab

  • အခမဲ့ proxy များ ရယူရန် Sync Now ခလုတ်
  • အခြေအနေကတ်များ- စုစုပေါင်း၊ အသက်ဝင်မှု၊ ပျမ်းမျှအရည်အသွေး၊ နောက်ဆုံး Sync
  • Filter များ- Protocol၊ Country Code၊ အနည်းဆုံးအရည်အသွေး
  • Host၊ protocol၊ နိုင်ငံ၊ အရည်အသွေးရမှတ်၊ latency၊ anonymity နှင့် Google ဝင်ရောက်နိုင်မှုတို့ပါဝင်သော Proxy ဇယား
  • အောင်မြင်မှု/မအောင်မြင်မှု ခြေရာခံခြင်းနှင့် ဆက်တိုက်မအောင်မြင်သည့် အကြိမ်အရေအတွက်ပါဝင်သော Sync အခြေအနေ panel
  • 1proxy entry အားလုံးကို ဖယ်ရှားရန် Clear All

API ကိုးကားချက်

Proxy Settings API

Method Endpoint ဖော်ပြချက်
GET /api/settings/proxy Proxy config အပြည့်အစုံကို ရယူရန်
GET /api/settings/proxy?level=global Global proxy ကို ရယူရန်
GET /api/settings/proxy?level=provider&id=openai Provider proxy ကို ရယူရန်
GET /api/settings/proxy?resolve=connectionId အကျိုးသက်ရောက်မည့် proxy ကို resolve လုပ်ရန်
PUT /api/settings/proxy Proxy config ကို အပ်ဒိတ်လုပ်ရန်
DELETE /api/settings/proxy?level=provider&id=openai သတ်မှတ်ထားသော level ရှိ proxy ကို ဖယ်ရှားရန်

Proxy Registry API

Method Endpoint ဖော်ပြချက်
GET /api/v1/management/proxies Proxy အားလုံးကို စာရင်းပြုစုရန်
GET /api/v1/management/proxies?id=uuid ID ဖြင့် proxy ရယူရန်
GET /api/v1/management/proxies?id=uuid&where_used=1 Proxy ချိတ်ဆက်သတ်မှတ်မှုများကို ရယူရန်
POST /api/v1/management/proxies Proxy ဖန်တီးရန်
PATCH /api/v1/management/proxies Proxy ကို အပ်ဒိတ်လုပ်ရန်
DELETE /api/v1/management/proxies?id=uuid Proxy ကို ဖျက်ရန်
DELETE /api/v1/management/proxies?id=uuid&force=1 အတင်းအကျပ် ဖျက်ရန်
POST /api/v1/management/proxies/bulk-assign အစုလိုက် ချိတ်ဆက်သတ်မှတ်ရန်
GET /api/v1/management/proxies/assignments ချိတ်ဆက်သတ်မှတ်မှုများကို စာရင်းပြုစုရန်
GET /api/v1/management/proxies/health Proxy ကျန်းမာရေး အခြေအနေစာရင်းများ

Tunnels API

Traffic ကို proxy မှတစ်ဆင့် အပြင်ဘက်သို့ လမ်းကြောင်းပို့ခြင်းအစား သင့် OmniRoute instance ကို အများသုံးအင်တာနက်သို့ ဖွင့်ပေးရန် (Cloudflare/ngrok/Tailscale) TUNNELS_GUIDE.md ကို ကြည့်ပါ။ Tunnel REST API သည် /api/tunnels/{cloudflared,ngrok,tailscale}/* အောက်တွင် ရှိပြီး အထက်တွင် မှတ်တမ်းတင်ထားသော outbound proxy chain နှင့် သီးခြားလွတ်လပ်စွာ အလုပ်လုပ်သည်။

1proxy API

Method Endpoint ဖော်ပြချက်
GET /api/settings/oneproxy 1proxy proxy များကို စာရင်းပြုစုရန်
GET /api/settings/oneproxy?action=stats အခြေအနေစာရင်း + sync အခြေအနေကို ရယူရန်
GET /api/settings/oneproxy?action=status Sync အခြေအနေကိုသာ ရယူရန်
POST /api/settings/oneproxy Sync စတင်ရန်
POST /api/settings/oneproxy/rotate နောက် proxy သို့ လှည့်ပြောင်းရန်
DELETE /api/settings/oneproxy?id=uuid တစ်ခု ဖျက်ရန်
DELETE /api/settings/oneproxy?clearAll=1 အားလုံးကို ရှင်းလင်းရန်

Upstream Proxy API

Method Endpoint ဖော်ပြချက်
GET /api/upstream-proxy/:providerId Upstream proxy config ကို ရယူရန်
PUT /api/upstream-proxy/:providerId Upstream proxy mode ကို သတ်မှတ်ရန်
DELETE /api/upstream-proxy/:providerId Upstream proxy config ကို ဖယ်ရှားရန်

ပတ်ဝန်းကျင် ကိန်းရှင်များ

ကိန်းရှင် မူလတန်ဖိုး ဖော်ပြချက်
ENABLE_SOCKS5_PROXY true SOCKS5 proxy ပံ့ပိုးမှုကို ဖွင့်ပါ (.env.example တွင် မူလတန်ဖိုးမှာ true ဖြစ်သည်)

ပြဿနာဖြေရှင်းခြင်း

"SOCKS5 proxy ကို ပိတ်ထားသည်"

သင့် .env ဖိုင်တွင် ENABLE_SOCKS5_PROXY=true ဟု သတ်မှတ်ပြီး ပြန်လည်စတင်ပါ။

Proxy မှတစ်ဆင့် ဖြစ်ပေါ်သော "socket hang up" အမှားများ

အလုပ်မလုပ်ဘဲ ရပ်နားနေသော ချိတ်ဆက်မှုများကို ဖြုတ်ချတတ်သည့် ဈေးသက်သာသော proxy များတွင် ဤသည်မှာ ပုံမှန်ဖြစ်သည်။ OmniRoute သည် အောက်ပါနည်းလမ်းများဖြင့် ၎င်းကို ကိုင်တွယ်ထားပြီးဖြစ်သည်-

  • Proxy ချိတ်ဆက်မှုများတွင် keep-alive ကို ပိတ်ခြင်း (keepAliveTimeout: 1)
  • Pipelining ကို ပိတ်ခြင်း (pipelining: 0)
  • ထပ်တလဲလဲ handshake လုပ်ခြင်းကို ရှောင်ရှားရန် dispatcher များကို cache လုပ်ခြင်း

ဆက်လက်ဖြစ်ပေါ်နေပါက အခြား proxy တစ်ခုကို စမ်းသုံးပါ သို့မဟုတ် 1proxy rotation လုပ်ဆောင်ချက်ကို အသုံးပြုပါ။

OAuth အတွင်း "unsupported_country_region_territory" ဖြစ်ပေါ်ခြင်း

OAuth လုပ်ငန်းစဉ်ကို မစတင်မီ proxy ကို ပြင်ဆင်သတ်မှတ်ထားကြောင်း သေချာပါစေ။ OmniRoute သည် OAuth token လဲလှယ်မှုကို ပြင်ဆင်သတ်မှတ်ထားသော proxy မှတစ်ဆင့် လမ်းကြောင်းပေးသည်။ ဦးစွာ global သို့မဟုတ် provider အဆင့် proxy တစ်ခုကို သတ်မှတ်ပြီးနောက် ချိတ်ဆက်ပါ။

Proxy ကို အသုံးမပြုခြင်း

Resolution အစဉ်ကို စစ်ဆေးပါ-

  1. GET /api/settings/proxy?resolve=your-connection-id ဖြင့် အတည်ပြုပါ
  2. Proxy status သည် active ဖြစ်ကြောင်း စစ်ဆေးပါ (inactive မဖြစ်ရ)
  3. Proxy assignment scope သည် သင့်ချိတ်ဆက်မှုနှင့် ကိုက်ညီကြောင်း သေချာပါစေ

1proxy sync မအောင်မြင်ခြင်း

Sync အခြေအနေကို စစ်ဆေးပါ-

curl "http://localhost:20128/api/settings/oneproxy?action=status"

consecutiveFailures >= 5 ဖြစ်ပါက circuit breaker အလုပ်လုပ်သွားပြီဖြစ်သည်။ ပြန်လည်သတ်မှတ်ရန် server ကို restart လုပ်ပါ သို့မဟုတ် ကိုယ်တိုင် reset လုပ်သည်အထိ စောင့်ပါ။


Database Schema

proxy_registry Table

CREATE TABLE proxy_registry (
  id TEXT PRIMARY KEY,
  name TEXT NOT NULL,
  type TEXT NOT NULL DEFAULT 'http',
  host TEXT NOT NULL,
  port INTEGER NOT NULL,
  username TEXT DEFAULT '',
  password TEXT DEFAULT '',
  region TEXT,
  notes TEXT,
  status TEXT DEFAULT 'active',
  source TEXT NOT NULL DEFAULT 'manual',    -- 'manual' သို့မဟုတ် 'oneproxy'
  quality_score INTEGER,                     -- 0-100 (1proxy အတွက်သာ)
  latency_ms INTEGER,                        -- မီလီစက္ကန့် (1proxy အတွက်သာ)
  anonymity TEXT,                            -- transparent/anonymous/elite
  google_access INTEGER DEFAULT 0,           -- Google ကို ဝင်ရောက်နိုင်ပါသလား။ (1proxy)
  last_validated TEXT,                       -- ISO timestamp (1proxy)
  country_code TEXT,                         -- ISO 2-letter code (1proxy)
  created_at TEXT NOT NULL,
  updated_at TEXT NOT NULL
);

proxy_assignments Table

CREATE TABLE proxy_assignments (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  proxy_id TEXT NOT NULL REFERENCES proxy_registry(id),
  scope TEXT NOT NULL,        -- 'global', 'provider', 'account', 'combo'
  scope_id TEXT,              -- provider ID၊ connection ID သို့မဟုတ် combo ID
  created_at TEXT NOT NULL,
  updated_at TEXT NOT NULL,
  UNIQUE(scope, scope_id)
);

Proxy အခြေအနေ စစ်ဆေးခြင်း (v3.8.16+)

OmniRoute ၏ proxy fast-fail ယန္တရား (src/lib/proxyHealth.ts) သည် လျင်မြန်သော TCP ချိတ်ဆက်မှု စစ်ဆေးခြင်းမှတစ်ဆင့် အလုပ်မလုပ်သော proxy များကို <2s အတွင်း ရှာဖွေသိရှိပြီး request တစ်ခုချင်းစီအတွက် ထပ်ဆောင်းလုပ်ဆောင်ရမှုကို ရှောင်ရှားရန် ရလဒ်ကို cache လုပ်ထားသည်။

အလုပ်လုပ်ပုံ

Request ──▶ ProxyHealthCache.get(url)
             │
             ├─ Cache တွင်ရှိပြီး သက်တမ်းရှိသေးပါသလား။  ──▶ cache လုပ်ထားသော status ကို ပြန်ပေး
             │
             └─ Cache တွင်မရှိ / သက်တမ်းလွန်နေပါသလား။  ──▶ host:port သို့ TCP ချိတ်ဆက်
                                          (timeout: FAST_FAIL_TIMEOUT_MS)
                                          ──▶ HEALTH_CACHE_TTL_MS ကြာ cache လုပ်
                                          ──▶ ရလဒ်ကို ပြန်ပေး

ဤယန္တရားမရှိပါက အလုပ်မလုပ်သော proxy တစ်ခုသည် မအောင်မြင်မီ request တိုင်းကို PROXY_TIMEOUT_MS အပြည့် (မူလတန်ဖိုး 30s) ပိတ်ဆို့ထားမည်ဖြစ်သည်။

ချိန်ညှိနိုင်သော ပတ်ဝန်းကျင် ကိန်းရှင်များ

ကိန်းရှင် မူလတန်ဖိုး ရည်ရွယ်ချက်
PROXY_FAST_FAIL_TIMEOUT_MS 2000 အခြေအနေစစ်ဆေးမှုတစ်ခုစီအတွက် TCP ချိတ်ဆက်မှု timeout
PROXY_HEALTH_CACHE_TTL_MS 30000 အခြေအနေရလဒ်ကို cache လုပ်ထားမည့် ကြာချိန်

အကြံပြုထားသော တန်ဖိုးများ-

အသုံးပြုမှုအခြေအနေ Fast-fail timeout Cache TTL အကြောင်းပြချက်
လုပ်ဆောင်မှုပမာဏမြင့်သော API gateway 1500ms 60000ms လျင်မြန်စွာ fail လုပ်ပြီး စစ်ဆေးမှုများ လျှော့ချရန် cache ကို ပိုကြာကြာထားခြင်း
ပထဝီဝင်အလိုက် ဖြန့်ကျက်ထားသော node များ 3000ms 15000ms နှေးသော network များသည် အချိန်ပိုလိုအပ်ပြီး လျင်မြန်စွာ failover လုပ်ရန် cache ကို ပိုတိုတောင်းစွာထားခြင်း
Development / စမ်းသပ်ခြင်း 1000ms 10000ms Local proxy များတွင် လျင်မြန်စွာ ထပ်တလဲလဲ စမ်းသပ်နိုင်ခြင်း
Stealth / ရှာဖွေတွေ့ရှိမှု တားဆီးခြင်း 2500ms 45000ms Rate limit များကို အစပျိုးနိုင်သည့် လျင်မြန်သော probing ကို ရှောင်ရှားခြင်း

Proxy အခြေအနေကို စစ်ဆေးခြင်း

import { getAllProxyHealthStatuses, invalidateProxyHealth } from "omniroute/proxyHealth";

const statuses = getAllProxyHealthStatuses();
for (const s of statuses) {
  console.log(`${s.proxyUrl} → healthy=${s.healthy}, stale=${s.stale}`);
}

// သတ်မှတ်ထားသော proxy တစ်ခုကို အတင်းအကျပ် ပြန်လည်စစ်ဆေးခြင်း
invalidateProxyHealth("http://user:pass@203.0.113.7:8080");

Cache entry သည် HEALTH_CACHE_TTL_MS ကို ကျော်လွန်သွားပြီး နောက် request က စစ်ဆေးမှုအသစ်တစ်ခုကို အစပျိုးမည့်အခါ stale flag သည် true ဖြစ်သည်။

Proxy အမျိုးအစားအလိုက် မူလတန်ဖိုးများ

အခြေအနေစစ်ဆေးမှုသည် URL scheme အပေါ်အခြေခံ၍ သင့်လျော်သော မူလတန်ဖိုးများကို အသုံးပြုသည်-

Scheme မူလ port
http:// 8080
https:// 443
socks5:// / socks5h:// 1080

URL အတွင်းရှိ စိတ်ကြိုက် port များ (http://host:9999) သည် scheme ၏ မူလတန်ဖိုးထက် အမြဲတမ်း ဦးစားပေးခံရသည်။


Proxy ခွဲခြမ်းစိတ်ဖြာမှုနှင့် စောင့်ကြည့်လေ့လာနိုင်မှု

OmniRoute သည် အော်ပရေတာများအနေဖြင့် လမ်းကြောင်းရွေးချယ်မှုပုံစံများ၊ latency ရုတ်တရက်မြင့်တက်မှုများနှင့် ထပ်တလဲလဲဖြစ်ပေါ်သော ချို့ယွင်းမှုများကို ရှာဖွေဖော်ထုတ်နိုင်ရန် proxy တစ်ခုချင်းစီ၏ အသုံးပြုမှုကို ခြေရာခံပါသည်။

ခြေရာခံသည့်အချက်များ

ပြင်ဆင်သတ်မှတ်ထားသော proxy မှတစ်ဆင့် ဖြတ်သန်းသည့် request တိုင်းအတွက် OmniRoute သည် အောက်ပါတို့ကို မှတ်တမ်းတင်ပါသည်-

မက်ထရစ် ဖော်ပြချက်
proxy_url Proxy URL အပြည့်အစုံ (အထောက်အထားအချက်အလက်များကို ဖုံးကွယ်ထားသည်)
provider Upstream provider ID (openai, anthropic စသည်)
latency_ms Proxy handshake အပါအဝင် အသွားအပြန်ကြာချိန်စုစုပေါင်း
connect_ms TCP ချိတ်ဆက်ချိန်သီးသန့်
status Upstream မှ HTTP status code
error Request မအောင်မြင်ပါက error class
timestamp ISO 8601 UTC

ဒေတာကို ရယူခြင်း

# မကြာသေးမီက proxy ဖြစ်ရပ်များ
curl -H "Authorization: Bearer $OMNIROUTE_KEY" \
  "http://localhost:20128/api/usage/proxy-logs?limit=100"

အမှန်တကယ် endpoint သည် /api/usage/proxy-logs ဖြစ်သည် (src/app/api/usage/proxy-logs/route.ts ကို ကြည့်ပါ)။ ဤ endpoint သည် အောက်ပါတို့ကို ပံ့ပိုးသည်-

  • GET /api/usage/proxy-logs — proxy မှတ်တမ်းများကို ရယူရန်
  • DELETE /api/usage/proxy-logs — proxy မှတ်တမ်းအားလုံးကို ရှင်းလင်းရန်

လိုအပ်ပါက စုစည်းထားသော စာရင်းအင်းများကို SQL မှတစ်ဆင့် proxy_logs table ထဲမှ တိုက်ရိုက် query ပြုလုပ်နိုင်သည်။ Dashboard UI တွင် စုစည်းထားသော view များ ပါဝင်နိုင်သည်။

အဖြစ်များသော ပုံစံများ

မတည်ငြိမ်ဘဲ အလုပ်လုပ်လိုက်၊ မလုပ်လိုက်ဖြစ်နေသော proxy ကို ရှာဖွေခြင်း (အောင်မြင်မှုနှင့် မအောင်မြင်မှုတို့ တစ်လှည့်စီဖြစ်ပေါ်ခြင်း)-

SELECT proxy_url,
       COUNT(*) AS total,
       SUM(CASE WHEN status >= 500 THEN 1 ELSE 0 END) AS errors,
       ROUND(100.0 * SUM(CASE WHEN status >= 500 THEN 1 ELSE 0 END) / COUNT(*), 1) AS error_pct
FROM proxy_logs
WHERE timestamp > datetime('now', '-1 hour')
GROUP BY proxy_url
HAVING error_pct > 5
ORDER BY error_pct DESC;

နှေးကွေးသော proxy များကို ရှာဖွေခြင်း (p95 latency > 2s)-

WITH ranked AS (
  SELECT proxy_url, latency_ms,
         PERCENT_RANK() OVER (PARTITION BY proxy_url ORDER BY latency_ms) AS pct
  FROM proxy_logs
  WHERE timestamp > datetime('now', '-24 hour')
)
SELECT proxy_url, latency_ms
FROM ranked
WHERE pct >= 0.95
ORDER BY latency_ms DESC;

Rotation မဟာဗျူဟာ ဆုံးဖြတ်ချက်သစ်ပင်

Scope တစ်ခုတွင် proxy အများအပြားကို သတ်မှတ်ထားသောအခါ OmniRoute သည် request တစ်ခုချင်းစီအတွက် မည်သည့် proxy ကို အသုံးပြုမည်ကို ရွေးချယ်ရန် rotation strategy ကို အသုံးပြုသည်။ မဟာဗျူဟာကို scope အဆင့်တွင် ပြင်ဆင်သတ်မှတ်သည် (global၊ provider တစ်ခုချင်းစီ၊ account တစ်ခုချင်းစီ၊ combo တစ်ခုချင်းစီ)။

အသုံးပြုနိုင်သော မဟာဗျူဟာများ

မဟာဗျူဟာ အသုံးပြုသင့်သည့်အချိန် အပေးအယူ
quality (မူလသတ်မှတ်ချက်) အရည်အသွေးမတူညီသော proxy များပါသည့် production အဆင့်သတ်မှတ်ချက်မြင့်သော proxy များကို ဦးစားပေးသည်၊ အဆင့်နိမ့်သော proxy များ အသုံးပြုခွင့်မရနိုင်ပါ
random Load ဖြန့်ဝေမှု၊ ကိုယ်ရေးလုံခြုံမှု ညီမျှစွာ ဖြန့်ဝေသည်၊ အရည်အသွေး signal များကို လျစ်လျူရှုသည်
sequential Debugging၊ ရလဒ်တူညီစေသော စမ်းသပ်ခြင်း Proxy များကို အစဉ်လိုက် လှည့်ပတ်အသုံးပြုသည်၊ နားလည်စဉ်းစားရန် လွယ်ကူသည်

ဆုံးဖြတ်ချက်သစ်ပင်

                    သင့် proxy များအတွက် အရည်အသွေးရမှတ်များ ရှိပါသလား?
                    │
        ┌───────────┴───────────┐
        │                       │
       ရှိ                     မရှိ
        │                       │
   Proxy အားလုံး၏              │
   အရည်အသွေး အကြမ်းဖျင်း          │
   တူညီပါသလား?                  │
        │                       │
   ┌────┴────┐                  │
   │         │                  │
  တူ       မတူ               အသုံးပြုရန်
   │         │              `random`
   │         │              (ညီမျှစွာ ဖြန့်ဝေခြင်းက
   │         │              အချိန်နှင့်အမျှ အရည်အသွေး
   │         │              ဒေတာကို တည်ဆောက်ပေးသည်)
   │         │
   │    `quality` ကို အသုံးပြုရန်
   │    (အရည်အသွေးမတူညီမှုအတွက်
   │    အသင့်တော်ဆုံး)
   │
`random` ကို အသုံးပြုရန်
(load ကို
ညီမျှစွာ ဖြန့်ဝေရန်)

သင်ကိုယ်တိုင် ထည့်သွင်းထားသော Proxy များအတွက် အလိုအလျောက် Failure Exclusion

1proxy marketplace pool သည် ပျက်ကွက်နေသော proxy များကို အလိုအလျောက် အဆင့်လျှော့ချပေးပြီးဖြစ်သည် (Proxy Quality Scores ကို ကြည့်ပါ)။ Registry ထဲသို့ သင်ကိုယ်တိုင် ထည့်သွင်းထားသော proxy များအတွက်မူ နောက်ခံ health scheduler (src/lib/proxyHealth/scheduler.ts) သည် မည်သည့်အရာကိုမျှ မဖျက်ဘဲ “အလုပ်မလုပ်တော့သော member ကို chain မှ အလိုအလျောက် ဖယ်ထုတ်ခြင်း” လုပ်ဆောင်ချက်ကို အလားတူ ပံ့ပိုးပေးသည်-

# .env — probe ၃ ကြိမ်ဆက်တိုက် မအောင်မြင်ပြီးနောက် proxy ကို ယာယီပိတ်ကာ၊
# probe များကို ပြန်လည်တုံ့ပြန်သည်နှင့် အလိုအလျောက် ပြန်ဖွင့်ပါ။
PROXY_AUTO_DISABLE=true
PROXY_AUTO_REMOVE_AFTER=3

Multi-proxy chain ထဲတွင် ၎င်းအလုပ်လုပ်ပုံ-

  1. Scheduler သည် မှတ်ပုံတင်ထားသော proxy တိုင်းကို PROXY_HEALTH_INTERVAL_MS တိုင်းတွင် probe ပြုလုပ်သည် (ပုံသေ ၁၀ မိနစ်၊ အနည်းဆုံး ၁ မိနစ်)။
  2. ခိုင်လုံသော ပျက်ကွက်မှုများ PROXY_AUTO_REMOVE_AFTER အကြိမ်ဆက်တိုက် ဖြစ်ပွားပြီးနောက် (အမှန်တကယ် ချိတ်ဆက်မှု ပျက်ကွက်ခြင်းဖြစ်ရမည် — timeout သို့မဟုတ် probe target ကိုယ်တိုင်၏ 5xx ကို မည်သည့်အခါမျှ ထည့်မတွက်ပါ၊ Proxy Health Checking ကို ကြည့်ပါ) proxy ၏ status ကို dead ဟု သတ်မှတ်သည်။
  3. dead သည် pool/rotation resolution က အသုံးပြုသော alive-status filter မှ ဖယ်ထုတ်သည့် status များထဲမှ တစ်ခုဖြစ်သောကြောင့် scope တစ်ခု၏ rotation (round-robin / random / sticky / latency — Rotation Strategy Decision Tree ကို ကြည့်ပါ) သည် request အသစ်များထံ အဆိုပါ proxy ကို ချက်ချင်း မပေးတော့ပါ။ Pool ထဲရှိ အခြား proxy များအပေါ် မည်သည့်သက်ရောက်မှုမျှ မရှိသကဲ့သို့ pool တစ်ခုလုံးက direct connection သို့ တိတ်တဆိတ် fallback လုပ်သွားမည်မဟုတ်ပါ — 4-Level Proxy System ၏ fail-closed guard ကို ကြည့်ပါ။
  4. Scheduler သည် dead proxy များကို အလားတူ interval အတိုင်း ဆက်လက် probe ပြုလုပ်သည်။ နောက်တစ်ကြိမ် probe အောင်မြင်ပါက status ကို active သို့ ပြန်ပြောင်းပြီး rotation ထဲသို့ ပြန်လည်ဝင်ရောက်မည် — ကိုယ်တိုင် ပြန်ထည့်ရန် မလိုအပ်ပါ။

ဤလုပ်ဆောင်ချက်ကို တမင်တကာ ကိုယ်တိုင်ဖွင့်သုံးရပြီး အချက်အလက်မပျက်စီးစေသောပုံစံ အဖြစ် ပြုလုပ်ထားသည်။ ပုံသေအားဖြင့် scheduler သည် ပျက်ကွက်မှုများကို ရေတွက်ပြီး log ရေးသားရုံသာ လုပ်သည် (decision.ts ထဲရှိ policy C ကို ကြည့်ပါ)။ ထို့အပြင် PROXY_AUTO_DISABLE သည် row တစ်ခုကို မည်သည့်အခါမျှ မဖျက်ပါ — ယင်းကို သီးခြားဖြစ်ပြီး ပိုမိုပြင်းထန်သော PROXY_AUTO_REMOVE flag က လုပ်ဆောင်သည်။ နှစ်ခုစလုံးကို true ဟု သတ်မှတ်ထားပါက PROXY_AUTO_REMOVE က ဦးစားပေးမည်ဖြစ်သည် (ဖျက်ပစ်တော့မည့် proxy ကို ကြားတွင် ယာယီပိတ်ထားခြင်းသည် အကျိုးမရှိပါ)။ Variable စာရင်းအပြည့်အစုံအတွက် Environment Config အညွှန်းကို ကြည့်ပါ။


📖 ဆက်စပ်စာရွက်စာတမ်းများ-

  • User Guide — ယေဘုယျ setup နှင့် configuration
  • API Reference — API စာရွက်စာတမ်းအပြည့်အစုံ
  • Environment Config — Environment variable အားလုံး