Files
OmniRoute/docs/i18n/or/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

66 KiB
Raw Blame History

🌐 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 · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 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


ଭୌଗୋଳିକ ଅବରୋଧକୁ ଏଡ଼ାନ୍ତୁ, ନିଜ ପରିଚୟକୁ ସୁରକ୍ଷିତ ରଖନ୍ତୁ, ଏବଂ ଯେକୌଣସି proxy ମାଧ୍ୟମରେ AI ଟ୍ରାଫିକ୍କୁ ରୁଟ୍ କରନ୍ତୁ — କୌଣସି configuration ଜଟିଳତା ବିନା।

OmniRoute ଏକ ସମ୍ପୂର୍ଣ୍ଣ ବୈଶିଷ୍ଟ୍ୟଯୁକ୍ତ proxy ପରିଚାଳନା ସିଷ୍ଟମ୍ ଅନ୍ତର୍ଭୁକ୍ତ କରେ, ଯାହା ଆପଣଙ୍କୁ upstream AI provider ଟ୍ରାଫିକ୍କୁ HTTP, HTTPS, କିମ୍ବା SOCKS5 proxy ମାଧ୍ୟମରେ ରୁଟ୍ କରିବାକୁ ଦିଏ। ଆପଣ ଅବରୋଧିତ ଅଞ୍ଚଳରେ ଥାଆନ୍ତୁ, IP rotation ଆବଶ୍ୟକ କରୁଥାଆନ୍ତୁ, କିମ୍ବା ଗୋପନ fingerprinting ଚାହୁଁଥାଆନ୍ତୁ — ଏହି ମାର୍ଗଦର୍ଶିକା ସମସ୍ତ ବିଷୟକୁ ଅନ୍ତର୍ଭୁକ୍ତ କରେ।


ବିଷୟସୂଚୀ


Proxy କାହିଁକି ବ୍ୟବହାର କରିବେ?

ଅନେକ AI provider ଭୌଗୋଳିକ ଅଞ୍ଚଳ ଆଧାରରେ ପ୍ରବେଶକୁ ସୀମିତ କରନ୍ତି। ରୁଷିଆ, ଚୀନ୍, ଇରାନ୍, କ୍ୟୁବା, ତୁର୍କୀ ଏବଂ ଅନ୍ୟାନ୍ୟ ଦେଶର developerମାନେ ଏହିପରି errorର ସମ୍ମୁଖୀନ ହୁଅନ୍ତି:

unsupported_country_region_territory

ଅବରୋଧିତ ଅଞ୍ଚଳ ବାହାରେ ମଧ୍ୟ proxy ନିମ୍ନଲିଖିତ କାର୍ଯ୍ୟଗୁଡ଼ିକ ପାଇଁ ଉପଯୋଗୀ:

ବ୍ୟବହାର କ୍ଷେତ୍ର ବର୍ଣ୍ଣନା
ଭୌଗୋଳିକ ଅବରୋଧ ଏଡ଼ାଇବା ଅବରୋଧିତ ଦେଶଗୁଡ଼ିକରୁ OpenAI, Anthropic, Codex, Copilot ଆକ୍ସେସ୍ କରନ୍ତୁ
IP rotation rate limiting ଏଡ଼ାଇବା ପାଇଁ ଏକାଧିକ IP ମଧ୍ୟରେ request ବଣ୍ଟନ କରନ୍ତୁ
ଗୋପନୀୟତା upstream providerଙ୍କାରୁ ନିଜର ପ୍ରକୃତ IP ଲୁଚାନ୍ତୁ
ଅନୁପାଳନ ନିର୍ଦ୍ଦିଷ୍ଟ ବିଚାରାଧୀନ କ୍ଷେତ୍ର ମାଧ୍ୟମରେ ଟ୍ରାଫିକ୍ ରୁଟ୍ କରନ୍ତୁ
ପରୀକ୍ଷଣ ବିଭିନ୍ନ ଅଞ୍ଚଳରୁ ଆସୁଥିବା requestକୁ ଅନୁକରଣ କରନ୍ତୁ

Architecture ସମୀକ୍ଷା

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

ପ୍ରମୁଖ Component

Component File ଭୂମିକା
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 injection ସହିତ fetch()କୁ wrap କରେ
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-ସ୍ତରୀୟ ପ୍ରକ୍ସି ସିଷ୍ଟମ୍

OmniRoute ପ୍ରାଥମିକତା କ୍ରମରେ ସମାଧାନ କରାଯାଉଥିବା ଚାରୋଟି ସ୍ୱାଧୀନ ସ୍କୋପ୍ରେ ପ୍ରକ୍ସି ବିନ୍ୟାସକୁ ସମର୍ଥନ କରେ:

ପ୍ରାଥମିକତା ସମାଧାନ କ୍ରମ (ସର୍ବୋଚ୍ଚ → ସର୍ବନିମ୍ନ):

  1. 🔵 ଆକାଉଣ୍ଟ/କନେକ୍ସନ୍ ପ୍ରକ୍ସି  →  ପ୍ରତ୍ୟେକ API କି / OAuth କନେକ୍ସନ୍ ପାଇଁ
  2. 🟡 ପ୍ରଦାନକାରୀ ପ୍ରକ୍ସି         →  ପ୍ରତ୍ୟେକ ପ୍ରଦାନକାରୀ ପାଇଁ (ଯଥା, ସମସ୍ତ OpenAI ଟ୍ରାଫିକ୍)
  3. 🟠 କମ୍ବୋ ପ୍ରକ୍ସି              →  ପ୍ରତ୍ୟେକ କମ୍ବୋ/ରାଉଟିଂ ବିନ୍ୟାସ ପାଇଁ
  4. 🟢 ଗ୍ଲୋବାଲ୍ ପ୍ରକ୍ସି           →  ସମସ୍ତ ଟ୍ରାଫିକ୍, ସମସ୍ତ ପ୍ରଦାନକାରୀ

ସମାଧାନ କିପରି କାର୍ଯ୍ୟ କରେ

OmniRoute ଯେତେବେଳେ କୌଣସି ଅପ୍ଷ୍ଟ୍ରିମ୍ ପ୍ରଦାନକାରୀଙ୍କୁ ଅନୁରୋଧ ପଠାଏ, ଏହା resolveProxyForConnectionFromRegistry()କୁ କଲ୍ କରେ, ଯାହା କ୍ରମାନୁସାରେ ପ୍ରତ୍ୟେକ ସ୍ତର ଯାଞ୍ଚ କରେ:

  1. ଆକାଉଣ୍ଟ-ସ୍ତର — ଏହି ନିର୍ଦ୍ଦିଷ୍ଟ କନେକ୍ସନ୍ ID ପାଇଁ କୌଣସି ପ୍ରକ୍ସି ନ୍ୟସ୍ତ କରାଯାଇଛି କି?
  2. ପ୍ରଦାନକାରୀ-ସ୍ତର — ଏହି ପ୍ରଦାନକାରୀଙ୍କ ପାଇଁ (ଯଥା, openai) କୌଣସି ପ୍ରକ୍ସି ନ୍ୟସ୍ତ କରାଯାଇଛି କି?
  3. ଗ୍ଲୋବାଲ୍-ସ୍ତର — କୌଣସି ଗ୍ଲୋବାଲ୍ ପ୍ରକ୍ସି ବିନ୍ୟାସ କରାଯାଇଛି କି?
  4. କୌଣସି ପ୍ରକ୍ସି ନାହିଁ — ପ୍ରଦାନକାରୀଙ୍କ ସହିତ ସିଧାସଳଖ କନେକ୍ସନ୍।

ପ୍ରଥମ ମେଳକୁ ବ୍ୟବହାର କରାଯାଏ। ଏହାର ଅର୍ଥ, ଆପଣ ଏକ ଗ୍ଲୋବାଲ୍ ପ୍ରକ୍ସିକୁ ଫଲ୍ବ୍ୟାକ୍ ଭାବେ ସେଟ୍ କରିପାରିବେ, କିନ୍ତୁ ନିର୍ଦ୍ଦିଷ୍ଟ ପ୍ରଦାନକାରୀ କିମ୍ବା କନେକ୍ସନ୍ ପାଇଁ ଏହାକୁ ଓଭର୍ରାଇଡ୍ କରିପାରିବେ।

କେଉଁଗୁଡ଼ିକ ପ୍ରକ୍ସି ମାଧ୍ୟମରେ ଯାଏ

ଟ୍ରାଫିକ୍ ପ୍ରକାର ପ୍ରକ୍ସି ହୁଏ? ଟିପ୍ପଣୀ
ଚାଟ୍ କମ୍ପ୍ଲିସନ୍ ସମସ୍ତ /v1/chat/completions ଅନୁରୋଧ
ଏମ୍ବେଡିଂ /v1/embeddings
ଛବି ସୃଷ୍ଟି /v1/images/generations
ଅଡିଓ (TTS/STT) /v1/audio/*
OAuth ଟୋକନ୍ ବିନିମୟ unsupported_country_region_territoryର ସମାଧାନ କରେ
କନେକ୍ସନ୍ ପରୀକ୍ଷା "କନେକ୍ସନ୍ ପରୀକ୍ଷା କରନ୍ତୁ" ବଟନ୍ ପ୍ରକ୍ସି ବ୍ୟବହାର କରେ
ଟୋକନ୍ ରିଫ୍ରେଶ୍ ପୃଷ୍ଠଭୂମି OAuth ନବୀକରଣ
ମଡେଲ୍ ସିଙ୍କ୍ ମଡେଲ୍ ତାଲିକାକରଣ ଏବଂ ଅନ୍ୱେଷଣ

ପ୍ରକ୍ସି ରେଜିଷ୍ଟ୍ରି (CRUD)

ପ୍ରକ୍ସି ରେଜିଷ୍ଟ୍ରି ହେଉଛି ଏକ SQLite ଟେବୁଲ୍ (proxy_registry), ଯାହା ଆପଣଙ୍କର ସମସ୍ତ ପ୍ରକ୍ସି ସଂରକ୍ଷଣ କରେ। ପ୍ରତ୍ୟେକ ପ୍ରକ୍ସିରେ ନିମ୍ନଲିଖିତ ରହିଛି:

ଫିଲ୍ଡ ପ୍ରକାର ବିବରଣୀ
id UUID ଅନନ୍ୟ ପରିଚାୟକ
name ଷ୍ଟ୍ରିଙ୍ଗ୍ ମଣିଷ ପଢ଼ିପାରିବା ଯୋଗ୍ୟ ଲେବଲ୍
type ଷ୍ଟ୍ରିଙ୍ଗ୍ ପ୍ରୋଟୋକଲ୍: http, https, socks5
host ଷ୍ଟ୍ରିଙ୍ଗ୍ ପ୍ରକ୍ସି ହୋଷ୍ଟନେମ୍ କିମ୍ବା IP
port ପୂର୍ଣ୍ଣସଂଖ୍ୟା ପୋର୍ଟ ନମ୍ବର
username ଷ୍ଟ୍ରିଙ୍ଗ୍ ପ୍ରମାଣୀକରଣ ୟୁଜର୍ନେମ୍ (ସଂରକ୍ଷିତ ଅବସ୍ଥାରେ ଏନ୍କ୍ରିପ୍ଟ କରାଯାଇଥାଏ)
password ଷ୍ଟ୍ରିଙ୍ଗ୍ ପ୍ରମାଣୀକରଣ ପାସ୍ୱାର୍ଡ (ସଂରକ୍ଷିତ ଅବସ୍ଥାରେ ଏନ୍କ୍ରିପ୍ଟ କରାଯାଇଥାଏ)
region ଷ୍ଟ୍ରିଙ୍ଗ୍ ଭୌଗୋଳିକ ଅଞ୍ଚଳ ଲେବଲ୍
notes ଷ୍ଟ୍ରିଙ୍ଗ୍ ମୁକ୍ତ-ପାଠ୍ୟ ଟିପ୍ପଣୀ
status ଷ୍ଟ୍ରିଙ୍ଗ୍ active କିମ୍ବା inactive
source ଷ୍ଟ୍ରିଙ୍ଗ୍ manual କିମ୍ବା oneproxy

ଏକ ପ୍ରକ୍ସି ସୃଷ୍ଟି କରିବା

ଡ୍ୟାସ୍ବୋର୍ଡ ମାଧ୍ୟମରେ:

  1. ସେଟିଂସ୍ → ପ୍ରକ୍ସିକୁ ଯାଆନ୍ତୁ
  2. ପ୍ରକ୍ସି ଯୋଡ଼ନ୍ତୁରେ କ୍ଲିକ୍ କରନ୍ତୁ
  3. ପ୍ରକାର, ହୋଷ୍ଟ, ପୋର୍ଟ ଏବଂ ଇଚ୍ଛାଧୀନ ପ୍ରମାଣୀକରଣ ପରିଚୟପତ୍ର ପୂରଣ କରନ୍ତୁ
  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"
  }'

ଏକ ପ୍ରକ୍ସି ଅପଡେଟ୍ କରିବା

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
  }'

ଟିପ୍ପଣୀ: ଆପଣ ସ୍ପଷ୍ଟ ଭାବରେ ଖାଲି ନଥିବା ପ୍ରତିସ୍ଥାପନ ନ ପଠାଇବା ପର୍ଯ୍ୟନ୍ତ ପରିଚୟପତ୍ରଗୁଡ଼ିକ ସଂରକ୍ଷିତ ରହେ। username/password ପାଇଁ ଖାଲି ଷ୍ଟ୍ରିଙ୍ଗ୍ ପଠାଇଲେ ସଂରକ୍ଷିତ ମୂଲ୍ୟଗୁଡ଼ିକ ଅପରିବର୍ତ୍ତିତ ରହିବ।

ଏକ ପ୍ରକ୍ସି ଡିଲିଟ୍ କରିବା

# ପ୍ରକ୍ସିଟି କୌଣସି ସ୍କୋପ୍ରେ ନ୍ୟସ୍ତ ହୋଇଥିଲେ ବିଫଳ ହୁଏ
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"

ପ୍ରକ୍ସିଗୁଡ଼ିକର ତାଲିକା ଦେଖିବା

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

ସ୍କୋପ୍ଗୁଡ଼ିକୁ ପ୍ରକ୍ସି ନ୍ୟସ୍ତ କରିବା

# ଗ୍ଲୋବାଲ୍ ସ୍କୋପ୍କୁ ନ୍ୟସ୍ତ କରନ୍ତୁ
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}}'

# ଏକ ନିର୍ଦ୍ଦିଷ୍ଟ ପ୍ରଦାନକାରୀଙ୍କୁ ନ୍ୟସ୍ତ କରନ୍ତୁ
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}}'

# ଏକ ନିର୍ଦ୍ଦିଷ୍ଟ କନେକ୍ସନ୍/କିକୁ ନ୍ୟସ୍ତ କରନ୍ତୁ
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}}'

ପ୍ରଭାବୀ ପ୍ରକ୍ସି ସମାଧାନ କରିବା

ଏକ ନିର୍ଦ୍ଦିଷ୍ଟ କନେକ୍ସନ୍ ପାଇଁ କେଉଁ ପ୍ରକ୍ସି ବ୍ୟବହୃତ ହେବ ଯାଞ୍ଚ କରନ୍ତୁ:

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

ଏହା ସମାଧାନ ହୋଇଥିବା ପ୍ରକ୍ସିକୁ ତାହାର ସ୍ତର (account, provider, କିମ୍ବା global) ଏବଂ ଉତ୍ସ ସହିତ ଫେରାଏ।

ବଲ୍କ ନ୍ୟସ୍ତକରଣ

ଏକାଥରେ ଏକାଧିକ ପ୍ରଦାନକାରୀ କିମ୍ବା କନେକ୍ସନ୍କୁ ଗୋଟିଏ ପ୍ରକ୍ସି ନ୍ୟସ୍ତ କରନ୍ତୁ:

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"
  }'

ଇମ୍ପୋର୍ଟ/ଏକ୍ସପୋର୍ଟ

ପ୍ରକ୍ସିଗୁଡ଼ିକ ବ୍ୟାକଅପ୍/ରିଷ୍ଟୋର୍ ସିଷ୍ଟମ୍ରେ ସାମିଲ ଥାଏ। ଆପଣଙ୍କ OmniRoute ବିନ୍ୟାସ ଏକ୍ସପୋର୍ଟ କରିବାବେଳେ:

  1. ଡ୍ୟାସ୍ବୋର୍ଡ → ସେଟିଂସ୍ → ବ୍ୟାକଅପ୍କୁ ଯାଆନ୍ତୁ
  2. ଏକ୍ସପୋର୍ଟରେ କ୍ଲିକ୍ କରନ୍ତୁ — ପ୍ରକ୍ସି ରେଜିଷ୍ଟ୍ରି ଏବଂ ନ୍ୟସ୍ତକରଣଗୁଡ଼ିକ ସାମିଲ ହୋଇଥାଏ
  3. ପୁନଃସ୍ଥାପନ କରିବାକୁ, ଇମ୍ପୋର୍ଟରେ କ୍ଲିକ୍ କରନ୍ତୁ ଏବଂ ବ୍ୟାକଅପ୍ ଫାଇଲ୍ ଅପଲୋଡ୍ କରନ୍ତୁ

ପ୍ରକ୍ସି ରେଜିଷ୍ଟ୍ରି host+port ଦ୍ୱାରା upsertକୁ ମଧ୍ୟ ସମର୍ଥନ କରେ — ଯଦି ଆପଣ ପୂର୍ବରୁ ଥିବା ଏକ ପ୍ରକ୍ସିକୁ ଇମ୍ପୋର୍ଟ କରନ୍ତି (ସମାନ ହୋଷ୍ଟ ଏବଂ ପୋର୍ଟ), ତେବେ ଏହା ଏକ ଡୁପ୍ଲିକେଟ୍ ସୃଷ୍ଟି କରିବା ପରିବର୍ତ୍ତେ ଅପଡେଟ୍ ହୁଏ।

ପୁରୁଣା ସିଷ୍ଟମ୍ରୁ ମାଇଗ୍ରେସନ୍

ଯଦି ଆପଣ କୌଣସି ପୁରୁଣା ସଂସ୍କରଣରେ (pre-registry) ପ୍ରକ୍ସିଗୁଡ଼ିକୁ ବିନ୍ୟାସ କରିଥିଲେ, OmniRoute ସେଗୁଡ଼ିକୁ ସ୍ୱୟଂଚାଳିତ ଭାବରେ ସ୍ଥାନାନ୍ତର କରେ:

ପୁରୁଣା key_value ଷ୍ଟୋର୍ → proxy_registry + proxy_assignments

ଅପ୍ଗ୍ରେଡ୍ ପରେ ପ୍ରଥମ ଷ୍ଟାର୍ଟଅପ୍ରେ ଏହା ଥରେ ମାତ୍ର ଘଟେ। ପୁନର୍ବାର ଚଲାଇବା ପାଇଁ migrateLegacyProxyConfigToRegistry({ force: true }) ବ୍ୟବହାର କରନ୍ତୁ।


1proxy ମାଗଣା ପ୍ରକ୍ସି ମାର୍କେଟପ୍ଲେସ୍

🆕 @oyi77ଙ୍କ ଦ୍ୱାରା ଅବଦାନ — PR #1847 (ଇସ୍ୟୁ #1788)

OmniRoute ସାରା ବିଶ୍ୱରୁ ଶହ ଶହ ମାଗଣା, ବୈଧୀକୃତ ପ୍ରକ୍ସିର ଆକ୍ସେସ୍ ପ୍ରଦାନ କରିବା ପାଇଁ 1proxy କମ୍ୟୁନିଟି ପ୍ଲାଟଫର୍ମ ସହିତ ଏକୀକୃତ ହୁଏ। ଯେଉଁ ଉପଭୋକ୍ତାଙ୍କର ନିଜସ୍ୱ ପ୍ରକ୍ସି ଭିତ୍ତିଭୂମି ନାହିଁ, ସେମାନଙ୍କ ପାଇଁ ଏହା ଉପଯୁକ୍ତ।

ଏହା କିପରି କାମ କରେ

┌─────────────┐     ସିଙ୍କ୍      ┌─────────────────┐    ରୋଟେଟ୍     ┌──────────┐
│  1proxy API │ ────────────▶ │  proxy_registry  │ ────────────▶ │ ପ୍ରଦାନକାରୀ │
│  (ବାହ୍ୟ)    │   500 ପର୍ଯ୍ୟନ୍ତ │  source=oneproxy │  ଗୁଣବତ୍ତା ଅନୁଯାୟୀ │   API    │
└─────────────┘    ପ୍ରକ୍ସି     └─────────────────┘               └──────────┘
  1. ସିଙ୍କ୍ — OmniRoute, 1proxy APIରୁ ବୈଧୀକୃତ ପ୍ରକ୍ସିଗୁଡ଼ିକୁ ଆଣେ
  2. ସଂରକ୍ଷଣ — ପ୍ରକ୍ସିଗୁଡ଼ିକୁ ସେହି proxy_registry ଟେବୁଲ୍ରେ source = 'oneproxy' ସହିତ ସଂରକ୍ଷଣ କରାଯାଏ
  3. ଫିଲ୍ଟର୍ — ପ୍ରୋଟୋକଲ୍, ଦେଶ ଓ ଗୁଣବତ୍ତା ସ୍କୋର୍ ଅନୁଯାୟୀ ଫିଲ୍ଟର୍ କରନ୍ତୁ
  4. ରୋଟେଟ୍ — ଗୁଣବତ୍ତା, ରାଣ୍ଡମ୍ କିମ୍ବା କ୍ରମିକ କୌଶଳ ବ୍ୟବହାର କରି ସର୍ବୋତ୍ତମ ପ୍ରକ୍ସି ବାଛନ୍ତୁ
  5. ସ୍ୱୟଂଚାଳିତ ଅବନତି — ବିଫଳ ପ୍ରକ୍ସିଗୁଡ଼ିକର ଗୁଣବତ୍ତା ସ୍କୋର୍ ହ୍ରାସ ପାଏ; ସୀମାଠାରୁ କମ୍ ହେଲେ → ନିଷ୍କ୍ରିୟ ଭାବେ ଚିହ୍ନିତ ହୁଏ

ପ୍ରକ୍ସିଗୁଡ଼ିକୁ ସିଙ୍କ୍ କରିବା

ଡ୍ୟାସ୍ବୋର୍ଡ ମାଧ୍ୟମରେ:

  1. Settings → 1proxy ଟ୍ୟାବ୍କୁ ଯାଆନ୍ତୁ
  2. **"Sync Now"**ରେ କ୍ଲିକ୍ କରନ୍ତୁ
  3. ପରିସଂଖ୍ୟାନ ଦେଖନ୍ତୁ: ମୋଟ ପ୍ରକ୍ସି, ସକ୍ରିୟ ସଂଖ୍ୟା, ହାରାହାରି ଗୁଣବତ୍ତା ଏବଂ ଦେଶ-ଅନୁଯାୟୀ ବିବରଣୀ

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 }

ପ୍ରକ୍ସିଗୁଡ଼ିକୁ ଫିଲ୍ଟର୍ କରିବା

# ପ୍ରୋଟୋକଲ୍ ଅନୁଯାୟୀ ଫିଲ୍ଟର୍ କରନ୍ତୁ
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"

ପ୍ରକ୍ସି ଗୁଣବତ୍ତା ସ୍କୋର୍

ପ୍ରତ୍ୟେକ 1proxy ପ୍ରକ୍ସି ସହିତ ମେଟାଡାଟା ଆସେ:

ଫିଲ୍ଡ ବର୍ଣ୍ଣନା
qualityScore 1proxy ବୈଧୀକରଣରୁ 0-100 ରେଟିଂ
latencyMs ମାପାଯାଇଥିବା ନେଟ୍ୱର୍କ ବିଳମ୍ବ
anonymity transparent, anonymous, କିମ୍ବା elite
googleAccess ପ୍ରକ୍ସିଟି Google ସେବାଗୁଡ଼ିକୁ ଆକ୍ସେସ୍ କରିପାରେ କି ନାହିଁ
countryCode ଦୁଇ-ଅକ୍ଷର ବିଶିଷ୍ଟ ISO ଦେଶ କୋଡ୍
lastValidated ଶେଷ ବୈଧୀକରଣର ଟାଇମ୍ଷ୍ଟାମ୍ପ

ଗୁଣବତ୍ତା ସ୍କୋର୍ଗୁଡ଼ିକୁ ଗତିଶୀଳ ଭାବେ ସମନ୍ୱୟ କରାଯାଏ:

  • ବିଫଳ ଅନୁରୋଧଗୁଡ଼ିକ ସ୍କୋର୍କୁ 10 ପଏଣ୍ଟ ହ୍ରାସ କରେ
  • ସ୍କୋର୍ ≤10କୁ ହ୍ରାସ ପାଇଲେ → ପ୍ରକ୍ସିକୁ inactive ଭାବେ ଚିହ୍ନିତ କରାଯାଏ
  • ନିଷ୍କ୍ରିୟ ପ୍ରକ୍ସିଗୁଡ଼ିକୁ ରୋଟେସନ୍ରୁ ବାଦ ଦିଆଯାଏ

ରୋଟେସନ୍ କୌଶଳ

# ଗୁଣବତ୍ତା ଅନୁଯାୟୀ ରୋଟେଟ୍ କରନ୍ତୁ (ପ୍ରଥମେ ସର୍ବୋତ୍ତମ ପ୍ରକ୍ସି) — ଡିଫଲ୍ଟ
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"}'

# କ୍ରମିକ (ସର୍ବନିକଟ ଅତୀତରେ ସବୁଠାରୁ କମ୍ ବୈଧୀକୃତ ପ୍ରକ୍ସି ପ୍ରଥମେ)
curl -X POST http://localhost:20128/api/settings/oneproxy/rotate \
  -d '{"strategy": "sequential"}'

ସର୍କିଟ୍ ବ୍ରେକର୍

1proxy ସିଙ୍କ୍ରେ ଏକ ବିଲ୍ଟ-ଇନ୍ ସର୍କିଟ୍ ବ୍ରେକର୍ ଅଛି:

  • କ୍ରମାଗତ 5ଟି ସିଙ୍କ୍ ବିଫଳତା ପରେ, ପରବର୍ତ୍ତୀ ସିଙ୍କ୍ ପ୍ରୟାସଗୁଡ଼ିକୁ ଅବରୋଧ କରାଯାଏ
  • ଏହା ସହିତ ରିସେଟ୍ କରନ୍ତୁ: resetOneproxyCircuitBreaker() କିମ୍ବା ସର୍ଭର୍କୁ ପୁନଃଚାଳୁ କରନ୍ତୁ
  • ସିଙ୍କ୍ ସ୍ଥିତି GET /api/settings/oneproxy?action=statusରେ ଉପଲବ୍ଧ

1proxy ପ୍ରକ୍ସିଗୁଡ଼ିକୁ ସଫା କରିବା

# ଗୋଟିଏ 1proxy ପ୍ରକ୍ସିକୁ ଡିଲିଟ୍ କରନ୍ତୁ
curl -X DELETE "http://localhost:20128/api/settings/oneproxy?id=proxy-uuid"

# ସମସ୍ତ 1proxy ପ୍ରକ୍ସି ସଫା କରନ୍ତୁ (ମାନୁଆଲ୍ ପ୍ରକ୍ସିଗୁଡ଼ିକ ଅପରିବର୍ତ୍ତିତ ରହିବ)
curl -X DELETE "http://localhost:20128/api/settings/oneproxy?clearAll=1"

ଆଣ୍ଟି-ଡିଟେକ୍ସନ୍ ଏବଂ ଷ୍ଟେଲ୍ଥ

OmniRoute କେବଳ ଏକ ପ୍ରକ୍ସି ମାଧ୍ୟମରେ ଟ୍ରାଫିକ୍ ରାଉଟ୍ କରେ ନାହିଁ — ଏହା ଟ୍ରାଫିକ୍କୁ ବୈଧ ଭଳି ଦେଖାଏ:

TLS ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ସ୍ପୁଫିଂ

ବ୍ରାଉଜର୍ ସଦୃଶ TLS ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ସୃଷ୍ଟି କରିବା ପାଇଁ wreq-js ବ୍ୟବହାର କରେ, ଯାହା ଅଣ-ବ୍ରାଉଜର୍ TLS ହ୍ୟାଣ୍ଡଶେକ୍କୁ ଚିହ୍ନଟ କରୁଥିବା ବଟ୍ ଡିଟେକ୍ସନ୍ ସିଷ୍ଟମ୍ଗୁଡ଼ିକୁ ବାଇପାସ୍ କରେ।

CLI ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ମ୍ୟାଚିଂ

CLI ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଟଗଲ୍ (Settings → Security) ନେଟିଭ୍ CLI ବାଇନାରିଗୁଡ଼ିକର (Claude Code, Codex ଇତ୍ୟାଦି) ସଠିକ୍ ସିଗ୍ନେଚର୍ ସହିତ ମେଳ କରିବା ପାଇଁ HTTP ହେଡର୍ ଏବଂ JSON ବଡି ଫିଲ୍ଡଗୁଡ଼ିକୁ ପୁନଃକ୍ରମବଦ୍ଧ କରେ। ଏହା ପ୍ରକ୍ସିର ଅତିରିକ୍ତ ସ୍ତର ଭାବରେ କାମ କରେ:

ଆପଣଙ୍କ IP (ଅବରୋଧିତ) → ପ୍ରକ୍ସି IP (US) → ପ୍ରଦାନକାରୀ API
                              + TLS ସ୍ପୁଫ୍
                              + CLI ଫିଙ୍ଗରପ୍ରିଣ୍ଟ

ଆପଣ ଏକାସାଙ୍ଗରେ IP ମାସ୍କିଂ ଏବଂ ଅନୁରୋଧର ପ୍ରାମାଣିକତା ଉଭୟ ପାଆନ୍ତି।

ପ୍ରକ୍ସି IP ସଂରକ୍ଷଣ

ଡ୍ୟାସ୍ବୋର୍ଡରେ ରଙ୍ଗ-କୋଡ୍ ହୋଇଥିବା ବ୍ୟାଜ୍ଗୁଡ଼ିକ କେଉଁ ପ୍ରକ୍ସି ସ୍ତର ସକ୍ରିୟ ଅଛି ତାହା ଦର୍ଶାଏ:

ବ୍ୟାଜ୍ ସ୍ତର ଅର୍ଥ
🟢 ଗ୍ଲୋବାଲ୍ ସମସ୍ତ ଟ୍ରାଫିକ୍ ଏହି ପ୍ରକ୍ସି ମାଧ୍ୟମରେ ଯାଏ
🟡 ପ୍ରଦାନକାରୀ କେବଳ ଏହି ପ୍ରଦାନକାରୀଙ୍କ ଟ୍ରାଫିକ୍ ପ୍ରକ୍ସି ହୁଏ
🔵 ସଂଯୋଗ ଏହି ନିର୍ଦ୍ଦିଷ୍ଟ କୀ/ଆକାଉଣ୍ଟ ଏହି ପ୍ରକ୍ସି ବ୍ୟବହାର କରେ

ଯାଞ୍ଚ ପାଇଁ ବ୍ୟାଜ୍ଟି ସମାଧାନ ହୋଇଥିବା ପ୍ରକ୍ସି IP ମଧ୍ୟ ଦର୍ଶାଏ।


ଅପ୍ଷ୍ଟ୍ରିମ୍ ପ୍ରକ୍ସି ମୋଡ୍ଗୁଡ଼ିକ

CLIProxyAPI ପ୍ୟାଟର୍ନ ବ୍ୟବହାର କରୁଥିବା ପ୍ରଦାନକାରୀଙ୍କ ପାଇଁ OmniRoute ତିନୋଟି ଅପ୍ଷ୍ଟ୍ରିମ୍ ପ୍ରକ୍ସି ମୋଡ୍ ସମର୍ଥନ କରେ:

ମୋଡ୍ ବିବରଣୀ
native OmniRoute ସିଧାସଳଖ ପ୍ରକ୍ସି ରାଉଟିଂ ପରିଚାଳନା କରେ (ଡିଫଲ୍ଟ)
cliproxyapi ଏକ ବାହ୍ୟ CLIProxyAPI ଇନ୍ଷ୍ଟାନ୍ସକୁ ଦାୟିତ୍ୱ ଦିଏ
fallback ପ୍ରଥମେ ନେଟିଭ୍ ଚେଷ୍ଟା କରେ, ବିଫଳ ହେଲେ CLIProxyAPI ବ୍ୟବହାର କରେ

ପ୍ରତ୍ୟେକ ପ୍ରଦାନକାରୀ ପାଇଁ ବିନ୍ୟାସ କରନ୍ତୁ:

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

ଡ୍ୟାସ୍ବୋର୍ଡ UI

Settings → Proxy ଟ୍ୟାବ୍

  • ଗ୍ଲୋବାଲ୍ ପ୍ରକ୍ସି ବିନ୍ୟାସ (ସମସ୍ତ ଟ୍ରାଫିକ୍ ପାଇଁ ଥରେ ସେଟ୍ କରନ୍ତୁ)
  • ପ୍ରତି-ପ୍ରଦାନକାରୀ ପ୍ରକ୍ସି ଓଭର୍ରାଇଡ୍
  • ପ୍ରତି-ସଂଯୋଗ ପ୍ରକ୍ସି ଆସାଇନ୍ମେଣ୍ଟ
  • ବିନ୍ୟାସିତ ପ୍ରକ୍ସି ମାଧ୍ୟମରେ ସଂଯୋଗ ପରୀକ୍ଷା
  • ସକ୍ରିୟ ପ୍ରକ୍ସି ସ୍ତର ଦର୍ଶାଉଥିବା ରଙ୍ଗ-କୋଡ୍ ବ୍ୟାଜ୍ଗୁଡ଼ିକ

Settings → 1proxy ଟ୍ୟାବ୍

  • ମାଗଣା ପ୍ରକ୍ସି ଆଣିବା ପାଇଁ ବର୍ତ୍ତମାନ ସିଙ୍କ୍ କରନ୍ତୁ ବଟନ୍
  • ପରିସଂଖ୍ୟାନ କାର୍ଡଗୁଡ଼ିକ: ମୋଟ, ସକ୍ରିୟ, ହାରାହାରି ଗୁଣବତ୍ତା, ଶେଷ ସିଙ୍କ୍
  • ଫିଲ୍ଟର୍ଗୁଡ଼ିକ: ପ୍ରୋଟୋକଲ୍, ଦେଶ କୋଡ୍, ସର୍ବନିମ୍ନ ଗୁଣବତ୍ତା
  • ହୋଷ୍ଟ, ପ୍ରୋଟୋକଲ୍, ଦେଶ, ଗୁଣବତ୍ତା ସ୍କୋର୍, ବିଳମ୍ବତା, ଗୋପନୀୟତା ଏବଂ Google ଆକ୍ସେସ୍ ସହିତ ପ୍ରକ୍ସି ଟେବୁଲ୍
  • ସଫଳତା/ବିଫଳତା ଟ୍ରାକିଂ ଏବଂ କ୍ରମାଗତ ବିଫଳତା ଗଣନା ସହିତ ସିଙ୍କ୍ ସ୍ଥିତି ପ୍ୟାନେଲ୍
  • ସମସ୍ତ 1proxy ଏଣ୍ଟ୍ରି ଅପସାରଣ କରିବା ପାଇଁ ସବୁ ସଫା କରନ୍ତୁ

API ସନ୍ଦର୍ଭ

ପ୍ରକ୍ସି ସେଟିଂସ୍ API

ପଦ୍ଧତି ଏଣ୍ଡପଏଣ୍ଟ ବିବରଣୀ
GET /api/settings/proxy ସମ୍ପୂର୍ଣ୍ଣ ପ୍ରକ୍ସି ବିନ୍ୟାସ ପ୍ରାପ୍ତ କରନ୍ତୁ
GET /api/settings/proxy?level=global ଗ୍ଲୋବାଲ୍ ପ୍ରକ୍ସି ପ୍ରାପ୍ତ କରନ୍ତୁ
GET /api/settings/proxy?level=provider&id=openai ପ୍ରଦାନକାରୀ ପ୍ରକ୍ସି ପ୍ରାପ୍ତ କରନ୍ତୁ
GET /api/settings/proxy?resolve=connectionId ପ୍ରଭାବୀ ପ୍ରକ୍ସି ନିର୍ଦ୍ଧାରଣ କରନ୍ତୁ
PUT /api/settings/proxy ପ୍ରକ୍ସି ବିନ୍ୟାସ ଅପଡେଟ୍ କରନ୍ତୁ
DELETE /api/settings/proxy?level=provider&id=openai ସ୍ତରରୁ ପ୍ରକ୍ସି ଅପସାରଣ କରନ୍ତୁ

ପ୍ରକ୍ସି ରେଜିଷ୍ଟ୍ରି API

ପଦ୍ଧତି ଏଣ୍ଡପଏଣ୍ଟ ବିବରଣୀ
GET /api/v1/management/proxies ସମସ୍ତ ପ୍ରକ୍ସି ତାଲିକାଭୁକ୍ତ କରନ୍ତୁ
GET /api/v1/management/proxies?id=uuid ID ଦ୍ୱାରା ପ୍ରକ୍ସି ପ୍ରାପ୍ତ କରନ୍ତୁ
GET /api/v1/management/proxies?id=uuid&where_used=1 ପ୍ରକ୍ସି ଆସାଇନ୍ମେଣ୍ଟ ପ୍ରାପ୍ତ କରନ୍ତୁ
POST /api/v1/management/proxies ପ୍ରକ୍ସି ସୃଷ୍ଟି କରନ୍ତୁ
PATCH /api/v1/management/proxies ପ୍ରକ୍ସି ଅପଡେଟ୍ କରନ୍ତୁ
DELETE /api/v1/management/proxies?id=uuid ପ୍ରକ୍ସି ବିଲୋପ କରନ୍ତୁ
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 ପ୍ରକ୍ସି ସ୍ୱାସ୍ଥ୍ୟ ପରିସଂଖ୍ୟାନ

ଟନେଲ୍ API

ଏକ ପ୍ରକ୍ସି ମାଧ୍ୟମରେ ଆଉଟ୍ବାଉଣ୍ଡ ରାଉଟ୍ କରିବା ପରିବର୍ତ୍ତେ ଆପଣଙ୍କ OmniRoute ଇନ୍ଷ୍ଟାନ୍ସକୁ ସାର୍ବଜନୀନ ଇଣ୍ଟରନେଟ୍ରେ (Cloudflare/ngrok/Tailscale) ଉପଲବ୍ଧ କରାଇବା ପାଇଁ TUNNELS_GUIDE.md ଦେଖନ୍ତୁ। ଟନେଲ୍ REST API /api/tunnels/{cloudflared,ngrok,tailscale}/* ଅଧୀନରେ ରହେ ଏବଂ ଉପରେ ଡକ୍ୟୁମେଣ୍ଟ କରାଯାଇଥିବା ଆଉଟ୍ବାଉଣ୍ଡ ପ୍ରକ୍ସି ଶୃଙ୍ଖଳାଠାରୁ ସ୍ୱାଧୀନ ଅଟେ।

1proxy API

ପଦ୍ଧତି ଏଣ୍ଡପଏଣ୍ଟ ବିବରଣୀ
GET /api/settings/oneproxy 1proxy ପ୍ରକ୍ସିଗୁଡ଼ିକ ତାଲିକାଭୁକ୍ତ କରନ୍ତୁ
GET /api/settings/oneproxy?action=stats ପରିସଂଖ୍ୟାନ + ସିଙ୍କ୍ ସ୍ଥିତି ପ୍ରାପ୍ତ କରନ୍ତୁ
GET /api/settings/oneproxy?action=status କେବଳ ସିଙ୍କ୍ ସ୍ଥିତି ପ୍ରାପ୍ତ କରନ୍ତୁ
POST /api/settings/oneproxy ସିଙ୍କ୍ ଟ୍ରିଗର୍ କରନ୍ତୁ
POST /api/settings/oneproxy/rotate ପରବର୍ତ୍ତୀ ପ୍ରକ୍ସିକୁ ରୋଟେଟ୍ କରନ୍ତୁ
DELETE /api/settings/oneproxy?id=uuid ଗୋଟିଏ ବିଲୋପ କରନ୍ତୁ
DELETE /api/settings/oneproxy?clearAll=1 ସବୁ ସଫା କରନ୍ତୁ

ଅପ୍ଷ୍ଟ୍ରିମ୍ ପ୍ରକ୍ସି API

ପଦ୍ଧତି ଏଣ୍ଡପଏଣ୍ଟ ବିବରଣୀ
GET /api/upstream-proxy/:providerId ଅପ୍ଷ୍ଟ୍ରିମ୍ ପ୍ରକ୍ସି ବିନ୍ୟାସ ପ୍ରାପ୍ତ କରନ୍ତୁ
PUT /api/upstream-proxy/:providerId ଅପ୍ଷ୍ଟ୍ରିମ୍ ପ୍ରକ୍ସି ମୋଡ୍ ସେଟ୍ କରନ୍ତୁ
DELETE /api/upstream-proxy/:providerId ଅପ୍ଷ୍ଟ୍ରିମ୍ ପ୍ରକ୍ସି ବିନ୍ୟାସ ଅପସାରଣ କରନ୍ତୁ

ପରିବେଶ ଭେରିଏବଲ୍ଗୁଡ଼ିକ

ଭେରିଏବଲ୍ ଡିଫଲ୍ଟ ବର୍ଣ୍ଣନା
ENABLE_SOCKS5_PROXY true SOCKS5 ପ୍ରକ୍ସି ସମର୍ଥନ ସକ୍ଷମ କରନ୍ତୁ (.env.exampleରେ ଡିଫଲ୍ଟ true)

ସମସ୍ୟା ସମାଧାନ

"SOCKS5 ପ୍ରକ୍ସି ଅକ୍ଷମ ଅଛି"

ଆପଣଙ୍କ .env ଫାଇଲ୍ରେ ENABLE_SOCKS5_PROXY=true ସେଟ୍ କରି ପୁନଃଚାଳନ କରନ୍ତୁ।

ପ୍ରକ୍ସି ମାଧ୍ୟମରେ "socket hang up" ତ୍ରୁଟି

ନିଷ୍କ୍ରିୟ ସଂଯୋଗଗୁଡ଼ିକୁ ବିଚ୍ଛିନ୍ନ କରୁଥିବା ଶସ୍ତା ପ୍ରକ୍ସିଗୁଡ଼ିକ ସହିତ ଏହା ସ୍ୱାଭାବିକ। OmniRoute ନିମ୍ନପ୍ରକାରେ ଏହାକୁ ପୂର୍ବରୁ ପରିଚାଳନା କରେ:

  • ପ୍ରକ୍ସି ସଂଯୋଗଗୁଡ଼ିକରେ keep-alive ଅକ୍ଷମ କରି (keepAliveTimeout: 1)
  • pipelining ଅକ୍ଷମ କରି (pipelining: 0)
  • ବାରମ୍ବାର handshakes ଏଡ଼ାଇବା ପାଇଁ dispatchers କ୍ୟାଶ୍ କରି

ଯଦି ଏହା ଜାରି ରହେ, ଏକ ଭିନ୍ନ ପ୍ରକ୍ସି ଚେଷ୍ଟା କରନ୍ତୁ କିମ୍ବା 1proxy rotation ବୈଶିଷ୍ଟ୍ୟ ବ୍ୟବହାର କରନ୍ତୁ।

OAuth ସମୟରେ "unsupported_country_region_territory"

OAuth ପ୍ରବାହ ଆରମ୍ଭ କରିବାର ପୂର୍ବରୁ ପ୍ରକ୍ସି କନଫିଗର୍ ହୋଇଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ। OmniRoute, OAuth token exchangeକୁ କନଫିଗର୍ ହୋଇଥିବା ପ୍ରକ୍ସି ମାଧ୍ୟମରେ ରୁଟ୍ କରେ। ପ୍ରଥମେ ଏକ global କିମ୍ବା provider-level ପ୍ରକ୍ସି ସେଟ୍ କରନ୍ତୁ, ତା’ପରେ ସଂଯୋଗ କରନ୍ତୁ।

ପ୍ରକ୍ସି ବ୍ୟବହୃତ ହେଉନାହିଁ

resolution କ୍ରମ ଯାଞ୍ଚ କରନ୍ତୁ:

  1. GET /api/settings/proxy?resolve=your-connection-id ସହିତ ଯାଞ୍ଚ କରନ୍ତୁ
  2. ପ୍ରକ୍ସି status, active (inactive ନୁହେଁ) ଅଛି କି ଯାଞ୍ଚ କରନ୍ତୁ
  3. ପ୍ରକ୍ସି assignment scope ଆପଣଙ୍କ ସଂଯୋଗ ସହିତ ମେଳ ଖାଉଥିବା ସୁନିଶ୍ଚିତ କରନ୍ତୁ

1proxy sync ବିଫଳ ହେଉଛି

sync ସ୍ଥିତି ଯାଞ୍ଚ କରନ୍ତୁ:

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

ଯଦି consecutiveFailures >= 5, circuit breaker ଟ୍ରିପ୍ ହୋଇଛି। reset କରିବା ପାଇଁ ସର୍ଭର୍ ପୁନଃଚାଳନ କରନ୍ତୁ କିମ୍ବା manual reset ପାଇଁ ଅପେକ୍ଷା କରନ୍ତୁ।


ଡାଟାବେସ୍ ସ୍କିମା

proxy_registry ଟେବୁଲ୍

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 ଟେବୁଲ୍

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)
);

ପ୍ରକ୍ସି ସ୍ୱାସ୍ଥ୍ୟ ଯାଞ୍ଚ (v3.8.16+)

OmniRouteର proxy fast-fail ପ୍ରଣାଳୀ (src/lib/proxyHealth.ts) ଏକ ଦ୍ରୁତ TCP ସଂଯୋଗ ଯାଞ୍ଚ ମାଧ୍ୟମରେ <2s ଭିତରେ ଅଚଳ ପ୍ରକ୍ସିଗୁଡ଼ିକୁ ଚିହ୍ନଟ କରେ, ତା’ପରେ ପ୍ରତ୍ୟେକ ଅନୁରୋଧର ଅତିରିକ୍ତ ବ୍ୟୟ ଏଡ଼ାଇବା ପାଇଁ ଫଳାଫଳକୁ କ୍ୟାଶ୍ କରେ

ଏହା କିପରି କାମ କରେ

ଅନୁରୋଧ ──▶ ProxyHealthCache.get(url)
             │
             ├─ କ୍ୟାଶ୍ ହିଟ୍ + ସଦ୍ୟତମ?  ──▶ କ୍ୟାଶ୍ ହୋଇଥିବା ସ୍ଥିତି ଫେରାନ୍ତୁ
             │
             └─ କ୍ୟାଶ୍ ମିସ୍ / ପୁରୁଣା?  ──▶ host:portକୁ TCP ସଂଯୋଗ
                                          (ସମୟସୀମା: FAST_FAIL_TIMEOUT_MS)
                                          ──▶ HEALTH_CACHE_TTL_MS ପାଇଁ କ୍ୟାଶ୍ କରନ୍ତୁ
                                          ──▶ ଫଳାଫଳ ଫେରାନ୍ତୁ

ଏହା ବିନା, ଏକ ଅଚଳ ପ୍ରକ୍ସି ବିଫଳ ହେବା ପୂର୍ବରୁ ସମ୍ପୂର୍ଣ୍ଣ PROXY_TIMEOUT_MS (ଡିଫଲ୍ଟ 30s) ପର୍ଯ୍ୟନ୍ତ ପ୍ରତ୍ୟେକ ଅନୁରୋଧକୁ ଅବରୋଧ କରିବ।

ସମନ୍ୱୟଯୋଗ୍ୟ ପରିବେଶ ଭେରିଏବଲ୍ଗୁଡ଼ିକ

ଭେରିଏବଲ୍ ଡିଫଲ୍ଟ ଉଦ୍ଦେଶ୍ୟ
PROXY_FAST_FAIL_TIMEOUT_MS 2000 ପ୍ରତ୍ୟେକ ସ୍ୱାସ୍ଥ୍ୟ ଯାଞ୍ଚ ପାଇଁ TCP ସଂଯୋଗ ସମୟସୀମା
PROXY_HEALTH_CACHE_TTL_MS 30000 ଏକ ସ୍ୱାସ୍ଥ୍ୟ ଫଳାଫଳ କେତେ ସମୟ ପର୍ଯ୍ୟନ୍ତ କ୍ୟାଶ୍ ହୁଏ

ସୁପାରିସ୍ କରାଯାଇଥିବା ମୂଲ୍ୟଗୁଡ଼ିକ:

ପରିସ୍ଥିତି Fast-fail ସମୟସୀମା କ୍ୟାଶ୍ TTL କାରଣ
ଉଚ୍ଚ-throughput API gateway 1500ms 60000ms ଆକ୍ରମଣାତ୍ମକ fail-fast, ଯାଞ୍ଚ ହ୍ରାସ କରିବା ପାଇଁ ଦୀର୍ଘତର କ୍ୟାଶ୍
ଭୌଗୋଳିକ ଭାବେ ବିତରିତ nodes 3000ms 15000ms ଧୀର ନେଟୱର୍କଗୁଡ଼ିକୁ ଅଧିକ ସମୟ ଆବଶ୍ୟକ; ଦ୍ରୁତ failover ପାଇଁ କ୍ଷୁଦ୍ରତର କ୍ୟାଶ୍
Dev / ପରୀକ୍ଷଣ 1000ms 10000ms ସ୍ଥାନୀୟ ପ୍ରକ୍ସିଗୁଡ଼ିକରେ ଦ୍ରୁତ ପୁନରାବୃତ୍ତି
Stealth / anti-detection 2500ms 45000ms rate limits ସକ୍ରିୟ କରିପାରୁଥିବା ଦ୍ରୁତ probingକୁ ଏଡ଼ାନ୍ତୁ

ପ୍ରକ୍ସି ସ୍ୱାସ୍ଥ୍ୟ ନିରୀକ୍ଷଣ

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

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

// ଏକ ନିର୍ଦ୍ଦିଷ୍ଟ ପ୍ରକ୍ସିକୁ ବାଧ୍ୟତାମୂଳକ ଭାବେ ପୁନଃଯାଞ୍ଚ କରନ୍ତୁ
invalidateProxyHealth("http://user:pass@203.0.113.7:8080");

କ୍ୟାଶ୍ ଏଣ୍ଟ୍ରି HEALTH_CACHE_TTL_MS ଅତିକ୍ରମ କରିଥିଲେ ଏବଂ ପରବର୍ତ୍ତୀ ଅନୁରୋଧ ଏକ ନୂତନ ଯାଞ୍ଚ ଆରମ୍ଭ କରିବାକୁ ଥିଲେ, stale ଫ୍ଲାଗ୍ଟି true ହୁଏ।

ପ୍ରତି-ପ୍ରକ୍ସି ପ୍ରକାରର ଡିଫଲ୍ଟଗୁଡ଼ିକ

ସ୍ୱାସ୍ଥ୍ୟ ଯାଞ୍ଚ URL scheme ଆଧାରରେ ଉପଯୁକ୍ତ ଡିଫଲ୍ଟଗୁଡ଼ିକ ବ୍ୟବହାର କରେ:

Scheme ଡିଫଲ୍ଟ port
http:// 8080
https:// 443
socks5:// / socks5h:// 1080

URLରେ ଥିବା custom ports (http://host:9999) ସବୁବେଳେ scheme ଡିଫଲ୍ଟଠାରୁ ପ୍ରାଥମିକତା ପାଏ।


ପ୍ରକ୍ସି ବିଶ୍ଳେଷଣ ଓ ପର୍ଯ୍ୟବେକ୍ଷଣୀୟତା

ରାଉଟିଂ ପ୍ୟାଟର୍ନ, ବିଳମ୍ବ ବୃଦ୍ଧି ଏବଂ ବାରମ୍ବାର ଘଟୁଥିବା ବିଫଳତାଗୁଡ଼ିକ ନିର୍ଣ୍ଣୟ କରିବାରେ ଅପରେଟରମାନଙ୍କୁ ସାହାଯ୍ୟ କରିବା ପାଇଁ OmniRoute ପ୍ରତ୍ୟେକ ପ୍ରକ୍ସିର ବ୍ୟବହାର ଟ୍ରାକ୍ କରେ।

କ’ଣ ଟ୍ରାକ୍ କରାଯାଏ

ବିନ୍ୟାସିତ ପ୍ରକ୍ସି ମାଧ୍ୟମରେ ଯାଉଥିବା ପ୍ରତ୍ୟେକ ଅନୁରୋଧ ପାଇଁ OmniRoute ନିମ୍ନଲିଖିତ ତଥ୍ୟ ରେକର୍ଡ କରେ:

ମେଟ୍ରିକ୍ ବିବରଣୀ
proxy_url ସମ୍ପୂର୍ଣ୍ଣ ପ୍ରକ୍ସି URL (ପ୍ରମାଣୀକରଣ ପରିଚୟପତ୍ର ଲୁକ୍କାୟିତ ଥାଏ)
provider ଅପ୍ଷ୍ଟ୍ରିମ୍ ପ୍ରଦାତା ID (openai, anthropic ଇତ୍ୟାଦି)
latency_ms ପ୍ରକ୍ସି ହ୍ୟାଣ୍ଡ୍ଶେକ୍ ସମେତ ମୋଟ ରାଉଣ୍ଡ-ଟ୍ରିପ୍ ସମୟ
connect_ms କେବଳ TCP ସଂଯୋଗ ସମୟ
status ଅପ୍ଷ୍ଟ୍ରିମ୍ରୁ ପ୍ରାପ୍ତ HTTP ସ୍ଥିତି କୋଡ୍
error ଅନୁରୋଧ ବିଫଳ ହେଲେ ତ୍ରୁଟି ଶ୍ରେଣୀ
timestamp ISO 8601 UTC

ତଥ୍ୟ ଆକ୍ସେସ୍ କରିବା

# ସାମ୍ପ୍ରତିକ ପ୍ରକ୍ସି ଇଭେଣ୍ଟଗୁଡ଼ିକ
curl -H "Authorization: Bearer $OMNIROUTE_KEY" \
  "http://localhost:20128/api/usage/proxy-logs?limit=100"

ପ୍ରକୃତ ଏଣ୍ଡପଏଣ୍ଟ ହେଉଛି /api/usage/proxy-logs (src/app/api/usage/proxy-logs/route.ts ଦେଖନ୍ତୁ)। ଏହି ଏଣ୍ଡପଏଣ୍ଟ ନିମ୍ନଲିଖିତଗୁଡ଼ିକୁ ସମର୍ଥନ କରେ:

  • GET /api/usage/proxy-logs — ପ୍ରକ୍ସି ଲଗ୍ଗୁଡ଼ିକ ପ୍ରାପ୍ତ କରନ୍ତୁ
  • DELETE /api/usage/proxy-logs — ସମସ୍ତ ପ୍ରକ୍ସି ଲଗ୍ ସଫା କରନ୍ତୁ

ଆବଶ୍ୟକ ହେଲେ SQL ମାଧ୍ୟମରେ proxy_logs ଟେବୁଲ୍ରୁ ସମଷ୍ଟିଗତ ପରିସଂଖ୍ୟାନ ସିଧାସଳଖ କ୍ୱେରି କରାଯାଇପାରିବ। ଡ୍ୟାଶବୋର୍ଡ UI ସମଷ୍ଟିଗତ ଦୃଶ୍ୟ ପ୍ରଦାନ କରିପାରେ।

ସାଧାରଣ ପ୍ୟାଟର୍ନଗୁଡ଼ିକ

ଏକ ଅସ୍ଥିର ପ୍ରକ୍ସି ଚିହ୍ନଟ କରନ୍ତୁ (ସଫଳତା/ବିଫଳତା ମଧ୍ୟରେ ବାରମ୍ବାର ପରିବର୍ତ୍ତିତ ହୁଏ):

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;

ଧୀର ପ୍ରକ୍ସିଗୁଡ଼ିକ ଖୋଜନ୍ତୁ (p95 ବିଳମ୍ବ > 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;

ଘୂର୍ଣ୍ଣନ କୌଶଳ ନିଷ୍ପତ୍ତି ବୃକ୍ଷ

ଯେତେବେଳେ ଏକ ସ୍କୋପ୍କୁ ଏକାଧିକ ପ୍ରକ୍ସି ନ୍ୟସ୍ତ କରାଯାଏ, ପ୍ରତ୍ୟେକ ଅନୁରୋଧ ପାଇଁ କେଉଁଟି ବ୍ୟବହାର କରାଯିବ ତାହା ବାଛିବାକୁ OmniRoute ଏକ ଘୂର୍ଣ୍ଣନ କୌଶଳ ବ୍ୟବହାର କରେ। କୌଶଳଟି ସ୍କୋପ୍ ସ୍ତରରେ ବିନ୍ୟାସ କରାଯାଏ (ବୈଶ୍ୱିକ, ପ୍ରତି-ପ୍ରଦାତା, ପ୍ରତି-ଆକାଉଣ୍ଟ, ପ୍ରତି-ସମ୍ମିଶ୍ରଣ)।

ଉପଲବ୍ଧ କୌଶଳଗୁଡ଼ିକ

କୌଶଳ କେତେବେଳେ ବ୍ୟବହାର କରିବେ ସମଝୋତା
quality (ଡିଫଲ୍ଟ) ମିଶ୍ରିତ-ଗୁଣବତ୍ତା ପ୍ରକ୍ସି ସହିତ ପ୍ରଡକ୍ସନ୍ ଉଚ୍ଚ-ମୂଲ୍ୟାଙ୍କିତ ପ୍ରକ୍ସିଗୁଡ଼ିକୁ ପ୍ରାଧାନ୍ୟ ଦିଏ; ନିମ୍ନ-ମୂଲ୍ୟାଙ୍କିତଗୁଡ଼ିକୁ ସୁଯୋଗ ନ ମିଳିପାରେ
random ଲୋଡ୍ ବଣ୍ଟନ, ଗୋପନୀୟତା ସମାନ ବଣ୍ଟନ; ଗୁଣବତ୍ତା ସଙ୍କେତଗୁଡ଼ିକୁ ଅଣଦେଖା କରେ
sequential ଡିବଗିଂ, ନିର୍ଦ୍ଧାରିତ ପରୀକ୍ଷଣ ପ୍ରକ୍ସିଗୁଡ଼ିକୁ କ୍ରମାନୁସାରେ ଚକ୍ରାକାର ଭାବେ ବ୍ୟବହାର କରେ; ବୁଝିବା ସହଜ

ନିଷ୍ପତ୍ତି ବୃକ୍ଷ

                    ଆପଣଙ୍କ ପ୍ରକ୍ସିଗୁଡ଼ିକ ପାଇଁ ଗୁଣବତ୍ତା ସ୍କୋର୍ ଅଛି କି?
                    │
        ┌───────────┴───────────┐
        │                       │
       ହଁ                     ନା
        │                       │
   ସମସ୍ତ ପ୍ରକ୍ସି କ’ଣ             │
   ଗୁଣବତ୍ତାରେ ପ୍ରାୟ                │
   ସମାନ?                       │
        │                       │
   ┌────┴────┐                  │
   │         │                  │
  ହଁ       ନା                ବ୍ୟବହାର କରନ୍ତୁ
   │         │              `random`
   │         │              (ସମାନ ବଣ୍ଟନ
   │         │              ସମୟ ସହିତ ଗୁଣବତ୍ତା
   │         │              ତଥ୍ୟ ଗଠନ କରେ)
   │         │
   │    `quality` ବ୍ୟବହାର କରନ୍ତୁ
   │    (ମିଶ୍ରିତ ଗୁଣବତ୍ତା
   │    ପାଇଁ ସର୍ବୋତ୍ତମ)
   │
`random` ବ୍ୟବହାର କରନ୍ତୁ
(ଲୋଡ୍ ସମାନ ଭାବରେ
ବଣ୍ଟନ କରନ୍ତୁ)

ଆପଣଙ୍କ ନିଜ ପ୍ରକ୍ସିଗୁଡ଼ିକ ପାଇଁ ସ୍ୱୟଂଚାଳିତ ବିଫଳତା ବହିଷ୍କରଣ

1proxy ମାର୍କେଟପ୍ଲେସ୍ ପୁଲ୍ ପୂର୍ବରୁ ନିଜେ ବିଫଳ ପ୍ରକ୍ସିଗୁଡ଼ିକର ମାନ ସ୍ୱୟଂଚାଳିତ ଭାବେ ହ୍ରାସ କରିଥାଏ (ପ୍ରକ୍ସି ଗୁଣବତ୍ତା ସ୍କୋର୍ ଦେଖନ୍ତୁ)। ଆପଣ ରେଜିଷ୍ଟ୍ରିରେ ଯୋଗ କରିଥିବା ପ୍ରକ୍ସିଗୁଡ଼ିକ ପାଇଁ, ପୃଷ୍ଠଭୂମି ସ୍ୱାସ୍ଥ୍ୟ ସ୍କେଜୁଲର୍ (src/lib/proxyHealth/scheduler.ts) କୌଣସି ଜିନିଷ ବିଲୋପ ନକରି ସମାନ "ନିଷ୍କ୍ରିୟ ସଦସ୍ୟକୁ ସ୍ୱୟଂଚାଳିତ ଭାବେ ଶୃଙ୍ଖଳରୁ ବାଦ ଦିଅନ୍ତୁ" ଆଚରଣ ପ୍ରଦାନ କରେ:

# .env — କ୍ରମାଗତ 3ଟି ବିଫଳ ପ୍ରୋବ୍ ପରେ ଏକ ପ୍ରକ୍ସିକୁ ସାମୟିକ ଭାବେ ଅକ୍ଷମ କରନ୍ତୁ, ଏବଂ ଏହା
# ପୁଣିଥରେ ପ୍ରୋବ୍ଗୁଡ଼ିକୁ ପ୍ରତିକ୍ରିୟା ଦେବା ଆରମ୍ଭ କଲେ ସ୍ୱୟଂଚାଳିତ ଭାବେ ପୁନଃସକ୍ଷମ କରନ୍ତୁ।
PROXY_AUTO_DISABLE=true
PROXY_AUTO_REMOVE_AFTER=3

ଏହା ଏକ ବହୁ-ପ୍ରକ୍ସି ଶୃଙ୍ଖଳରେ କିପରି କାର୍ଯ୍ୟ କରେ:

  1. ସ୍କେଜୁଲର୍ ପ୍ରତ୍ୟେକ PROXY_HEALTH_INTERVAL_MS ଅନ୍ତରାଳରେ ପ୍ରତ୍ୟେକ ପଞ୍ଜୀକୃତ ପ୍ରକ୍ସିକୁ ପ୍ରୋବ୍ କରେ (ଡିଫଲ୍ଟ 10 ମିନିଟ୍; ସର୍ବନିମ୍ନ 1 ମିନିଟ୍)।
  2. PROXY_AUTO_REMOVE_AFTER ସଂଖ୍ୟକ କ୍ରମାଗତ ନିର୍ଣ୍ଣାୟକ ବିଫଳତା ପରେ (ଏକ ପ୍ରକୃତ ସଂଯୋଗ ବିଫଳତା — ଏକ ସମୟସୀମା ସମାପ୍ତି କିମ୍ବା ପ୍ରୋବ୍ ଲକ୍ଷ୍ୟର ନିଜସ୍ୱ 5xx କେବେ ମଧ୍ୟ ଗଣନା କରାଯାଏ ନାହିଁ, ପ୍ରକ୍ସି ସ୍ୱାସ୍ଥ୍ୟ ଯାଞ୍ଚ ଦେଖନ୍ତୁ), ପ୍ରକ୍ସିର statusକୁ deadରେ ସେଟ୍ କରାଯାଏ।
  3. dead ହେଉଛି ପୁଲ୍/ରୋଟେସନ୍ ରିଜୋଲ୍ୟୁସନ୍ରେ ବ୍ୟବହୃତ ସକ୍ରିୟ-ସ୍ଥିତି ଫିଲ୍ଟର୍ ଦ୍ୱାରା ବାଦ ଦିଆଯାଉଥିବା ସ୍ଥିତିଗୁଡ଼ିକ ମଧ୍ୟରୁ ଗୋଟିଏ, ତେଣୁ ଏକ ସ୍କୋପ୍ର ରୋଟେସନ୍ (ରାଉଣ୍ଡ-ରବିନ୍ / ରାଣ୍ଡମ୍ / ଷ୍ଟିକି / ଲେଟେନ୍ସି — ରୋଟେସନ୍ କୌଶଳ ନିଷ୍ପତ୍ତି ଟ୍ରି ଦେଖନ୍ତୁ) ତୁରନ୍ତ ନୂଆ ଅନୁରୋଧଗୁଡ଼ିକୁ ସେହି ପ୍ରକ୍ସି ଦେବା ବନ୍ଦ କରେ। ପୁଲ୍ର ଅନ୍ୟ କୌଣସି ପ୍ରକ୍ସି ପ୍ରଭାବିତ ହୁଏ ନାହିଁ, ଏବଂ ସମଗ୍ର ପୁଲ୍ କେବେ ମଧ୍ୟ ନିରବରେ ଏକ ସିଧାସଳଖ ସଂଯୋଗକୁ ଫଲ୍ବ୍ୟାକ୍ କରେ ନାହିଁ — 4-ସ୍ତରୀୟ ପ୍ରକ୍ସି ସିଷ୍ଟମ୍ର ଫେଲ୍-କ୍ଲୋଜ୍ଡ ସୁରକ୍ଷା ବ୍ୟବସ୍ଥା ଦେଖନ୍ତୁ।
  4. ସ୍କେଜୁଲର୍ ସମାନ ଅନ୍ତରାଳରେ dead ପ୍ରକ୍ସିଗୁଡ଼ିକୁ ପ୍ରୋବ୍ କରିବା ଜାରି ରଖେ। ପରବର୍ତ୍ତୀ ସଫଳ ପ୍ରୋବ୍ statusକୁ ପୁଣି activeରେ ପରିବର୍ତ୍ତନ କରେ ଏବଂ ଏହା ପୁଣି ରୋଟେସନ୍ରେ ପ୍ରବେଶ କରେ — ହସ୍ତଚାଳିତ ଭାବେ ପୁନଃ ଯୋଗ କରିବା ଆବଶ୍ୟକ ନାହିଁ।

ଏହାକୁ ଜାଣିଶୁଣି ଇଚ୍ଛାଧୀନ ଏବଂ ଅବିନାଶୀ ରଖାଯାଇଛି: ଡିଫଲ୍ଟ ଭାବେ ସ୍କେଜୁଲର୍ କେବଳ ବିଫଳତାଗୁଡ଼ିକୁ ଗଣନା ଓ ଲଗ୍ କରେ (decision.tsରେ ନୀତି C ଦେଖନ୍ତୁ), ଏବଂ PROXY_AUTO_DISABLE କେବେ ମଧ୍ୟ ଏକ ଧାଡ଼ି ବିଲୋପ କରେ ନାହିଁ — ଏହା ପାଇଁ ଅଲଗା, ଅଧିକ ଆକ୍ରମଣାତ୍ମକ PROXY_AUTO_REMOVE ଫ୍ଲାଗ୍ ରହିଛି। ଯଦି ଉଭୟକୁ trueରେ ସେଟ୍ କରାଯାଏ, ତେବେ PROXY_AUTO_REMOVE ପ୍ରାଧାନ୍ୟ ପାଏ (ବିଲୋପ ହେବାକୁ ଯାଉଥିବା ଏକ ପ୍ରକ୍ସିକୁ ମଧ୍ୟବର୍ତ୍ତୀ ସାମୟିକ ଅକ୍ଷମକରଣର କୌଣସି ଆବଶ୍ୟକତା ନାହିଁ)। ସମ୍ପୂର୍ଣ୍ଣ ଭେରିଏବଲ୍ ତାଲିକା ପାଇଁ ପରିବେଶ କନଫିଗ୍ ସନ୍ଦର୍ଭ ଦେଖନ୍ତୁ।


📖 ସମ୍ପର୍କିତ ଡକ୍ୟୁମେଣ୍ଟେସନ୍: