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:
- backend serverlarni tashqi internetdan yashirish;
- requestlarni kerakli servicega yo‘naltirish;
- TLS termination qilish;
- load balancing bajarish;
- static fayllarni tezroq berish;
- cache ishlatish;
- rate limiting qo‘llash;
- security headerlar qo‘shish;
- log va monitoring qilish.
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 termination — HTTPS connection reverse proxyda yakunlanishi. Bunda reverse proxy TLS certificate bilan ishlaydi va backendga HTTP yoki ichki HTTPS orqali request uzatadi.
TLS termination:
- certificate boshqaruvini markazlashtiradi;
- backend ilovalarni TLS konfiguratsiyadan ajratadi;
- HTTPS trafficni proxy darajasida boshqaradi;
- load balancer yoki Nginx orqali bajarilishi mumkin.
Load balancing
Reverse proxy bir nechta backend server o‘rtasida requestlarni taqsimlashi mumkin.
Load balancing usullari:
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:
/apirequestlari backend API’ga;/adminadmin 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:
- static fayllar;
- image;
- CSS va JavaScript;
- public API response;
- HTML sahifalar.
Cache qoidalari HTTP headerlar orqali boshqarilishi mumkin.
Security
Reverse proxy backend serverlarni bevosita internetdan yashiradi va security qatlam qo‘shadi.
Reverse proxy security vazifalari:
- rate limiting;
- IP filtering;
- security headerlar;
- request body limit;
- suspicious requestlarni bloklash;
- WAF bilan integratsiya;
- TLS sozlamalarini boshqarish.
API Gateway bilan bog‘liqligi
API Gateway reverse proxyga o‘xshash vazifalarni bajaradi, lekin API boshqaruvi uchun kengroq imkoniyatlarga ega bo‘ladi.
- routing;
- authentication;
- rate limiting;
- request transformation;
- monitoring;
- API versioning;
- service discovery bilan ishlashi mumkin.
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