Bosh sahifa Wiki Reverse proxy

Reverse proxy

Reverse proxy — tashqi clientlardan kelgan requestlarni qabul qilib, ularni ichki backend serverlarga uzatuvchi server. Reverse proxy server tomonida joylashadi va backend ilovalar oldida turadi.

Reverse proxy web infratuzilmasida routing, security, TLS termination, caching va load balancing uchun keng ishlatiladi.

Vazifasi

Reverse proxy quyidagi vazifalarni bajaradi:

Masalan, UzbekDevs saytida Nginx reverse proxy sifatida FastAPI yoki boshqa backend service oldida turishi mumkin.

Reverse proxy qanday ishlaydi?

Reverse proxy client va backend server o‘rtasida turadi.

Oddiy jarayon:

  • foydalanuvchi domain orqali request yuboradi;
  • request reverse proxyga keladi;
  • reverse proxy requestni tekshiradi;
  • kerakli backend service tanlanadi;
  • request backendga uzatiladi;
  • backend javob qaytaradi;
  • reverse proxy javobni clientga yuboradi.

Client odatda backend server manzilini ko‘rmaydi.

Forward proxy bilan farqi

Forward proxy client tomonida, reverse proxy server tomonida ishlaydi.

Farqlar:

  • forward proxy client nomidan tashqi serverlarga ulanadi;
  • reverse proxy serverlar nomidan client requestlarini qabul qiladi;
  • forward proxy outbound trafficni boshqaradi;
  • reverse proxy inbound trafficni boshqaradi;
  • forward proxy foydalanuvchi tarafida;
  • reverse proxy backend infratuzilma tarafida joylashadi.

Nginx

Nginx reverse proxy sifatida keng ishlatiladi.

Nginx quyidagilarni bajara oladi:

  • requestlarni backendga uzatish;
  • static fayllarni berish;
  • TLS termination;
  • load balancing;
  • gzip compression;
  • rate limiting;
  • caching;
  • virtual host boshqaruvi.

Nginx ko‘p web serverlarda frontend proxy qatlami sifatida ishlatiladi.

TLS termination

TLS terminationHTTPS connection reverse proxyda yakunlanishi. Bunda reverse proxy TLS certificate bilan ishlaydi va backendga HTTP yoki ichki HTTPS orqali request uzatadi.

TLS termination:

Load balancing

Reverse proxy bir nechta backend server o‘rtasida requestlarni taqsimlashi mumkin.

Load balancing usullari:

  • round robin;
  • least connections;
  • IP hash;
  • weighted routing.

Bu server yukini taqsimlash va barqarorlikni oshirish uchun ishlatiladi.

Routing

Reverse proxy requestni URL, domain yoki header asosida turli backend service’larga yo‘naltirishi mumkin.

Misollar:

  • /api requestlari backend API’ga;
  • /admin admin service’ga;
  • static fayllar alohida storagega;
  • subdomainlar turli service’larga.

Microservice arxitekturasida routing muhim vazifa hisoblanadi.

Caching

Reverse proxy response’larni cache qilishi mumkin. Bu backend yukini kamaytiradi va response vaqtini qisqartiradi.

Cache qilinadigan resurslar:

Cache qoidalari HTTP headerlar orqali boshqarilishi mumkin.

Security

Reverse proxy backend serverlarni bevosita internetdan yashiradi va security qatlam qo‘shadi.

Reverse proxy security vazifalari:

API Gateway bilan bog‘liqligi

API Gateway reverse proxyga o‘xshash vazifalarni bajaradi, lekin API boshqaruvi uchun kengroq imkoniyatlarga ega bo‘ladi.

API Gateway:

Reverse proxy API Gatewayning asosiy texnik qatlamlaridan biri sifatida ishlatilishi mumkin.

Dasturlashdagi o‘rni

Reverse proxy backend ilovalar oldida turadigan muhim infratuzilma qatlamidir. U request routing, TLS termination, load balancing, caching va security vazifalarini bajaradi.

Bog‘liq tushunchalar

Proxy, Forward proxy, Nginx, Load balancer, TLS, HTTPS, API Gateway, Cache, Backend, Server, Security