Salam dostlar,
Bu məqaləmdə "Forward Proxy Server", "Reverse Proxy Server" və "Load Balancer" haqqında bəhs edəcəm. Mövzuya keçid etməzdən əvvəl, "proxy" haqqında sadə və anlaşıqlı bir nümunə ilə sizdə təssəvvür yaratmaq istərdim.
Dostlar, nümunəni uşaqlıq vaxtlarımıza istinad edərək kiçik bir müqayisə etmək istərdim. Belə ki, uşaq vaxtı hər birimizin idarəsi (control) valideynlərimizdə olurdu ki, bu zaman evdən (digər uşaqlarla oynamaq üçün) kənara çıxmağı, kənardan (mağazadan) oyuncaq almaq və s. kimi hər hansı bir istəyimizi (request) yerinə yetirib-yetirməməyi (bir sözlə qeyd etsək, nəyə icazə olar, nəyə icazə olmaz, nəyin xeyirli, nəyin ziyanlı olması və s. kimi məsələlərdə) valideynlərimiz qərar verirdi. Çünki bu zaman valideynlərimiz biz uşaqlar tərəfindən gələn istəyin (request) doğru olub-olmamasını yoxlayırdı, uyğun və təhlükəsiz bildikdə həmin istəyi qəbul (accept), uyğunsuz və təhlükəli bildikdə isə həmin istəyi rədd (reject) edirdi. Bu nümunəyə uyğun olaraq, gördüyünüz və bildiyiniz kimi valideyn uşaqları kənar hadisə, təhlükəli və digər uyğunsuz vəziyyətlərdən qorumaq üçün məhz (proxy server / firewall) müdafiə rolunu oynayır.
Dostlar, güman edirəm ki, təqdim etdiyim nümunə sizin "proxy"-ni anlamağınızı daha da asanlaşdırdı. İndi isə mövzumuza keçid edək. Beləliklə, "proxy" nədir?
- "Forward Proxy Server" - düz "proxy server" anlamını ifadə edir və həmçinin "proxy server" kimi də adlanır. Bu zaman "client" kompüterlər "forward proxy server"-in adından sorğular göndərir ki, "forward proxy server" "client"-ın kimliyini kənardan (serverlərdən) gizlətmiş olur. Yəni burada "forward proxy server" müdafiə (firewall) rolunu oynayır ki, "client"-ı kənar müdaxilə və təhlükəli vəziyyətlərdən qoruyur və bu məqamda "client" (uşaq) sorğunu "forward proxy server"-ə (valideynə) göndərir, "forward proxy server" (valideyn isə) sorğunu kənara (serverlərə) göndərir. Bir sözlə qeyd etsək, kənar (serverlər) "client"-ı və onun ip ünvanını deyil, məhz "forward proxy server" və onun ip ünvanını görür. Aşağıdakı müxtəlif şəkilli nümunələrə nəzər salsaq, bilgimiz daha da anlaşıqlı olar:
- "Reverse Proxy Server" - əks "proxy server" anlamını ifadə edir və müəyyən funksionallıq baxımından "forward proxy server"-ə bənzəsə də, lakin "forward proxy server"-in gördüyü işin əksini edir. Yəni bu zaman "server" kompüterlər "reverse proxy server"-in adından sorğular göndərir ki, "reverse proxy server" "server"-in kimliyini kənardan (client-lardan) gizlətmiş olur ki, bu da "server"-i kənar müdaxilə və təhlükəli vəziyyətlərdən qorumuş olur. Bəzən "reverse proxy server" funksionallığına görə "load balancer" kimi də faəliyyət göstərə bilir. Aşağıdakı müxtəlif şəkilli nümunələrə nəzər salsaq, bilgimiz daha da anlaşıqlı olar:
- "Load Balancer" - yük balanslaşdırıcısı funksiyasını icra edir. Qeyd etdiyimiz kimi, bəzən "reverse proxy server" yük balanslaşdırıcısı (load balancer) kimi fəaliyyət göstərə bilir ki, bu zaman hər bir yük balanslaşdırıcısı (load balancer) əks (reverse) "proxy server" olmalıdır. Beləliklə, "load balancer"-in rolu "client" sorğularının yükünü "server"-lər arasında bölüşdürməkdir. Nümunə olaraq fərz edək ki, gündəlik 5 milyondan çox sorğu və trafik əldə edən bir saytımız var ki, bu sorğuları "backend"-də qarşılayan və aidiyyatı üzrə icra edən bir "server"-miz olarsa, həmin "server" bu işin öhdəsindən gələ bilməyəcək və çökəcək. Beləliklə, bu cür problemin öhdəsindən gəlmək, bu cür sorğu və trafiki idarə etmək üçün bir neçə "server"-ə ehtiyac yaranır ki, bu zaman "load balancer" paralel şəkildə balanslaşdırıcı funksiyasını icra edərək "client"-ların sorğularını alqoritmə uyğun olaraq aidiyyatı üzrə olan həmin "server"-lərlə bölüşür. Bu zaman "load balancer" müxtəlif alqoritmlər: "round robin", "hash, ip hash", "least connections" və s. kimi alqoritmlərdən istifadə edir. Aşağıdakı müxtəlif şəkilli nümunələrə nəzər salsaq, bilgimiz daha da anlaşıqlı olar:
Qeyd:
Qısaca və ya lakonik olaraq qeyd etsək, "forward proxy server" "client"-ı kənardan (serverdən), "reverse proxy server" isə kənarı (serveri) "client"-dan anonimliyi təmin edərək qoruyur. "Load balancer" isə "client" (sorğuları) ilə "server"-lər arasında yük balanslaşdırıcısı funksiyasını icra edir.
"Proxy Server"-in üstünlükləri:
- "Caching" - keşləmə anlamını ifadə edir. Belə ki, "client" "proxy server" vasitəsilə hər hansı bir sayta (serverə) müraciət edərkən, "proxy server" həmin sorğunu keşləyir və bu zaman "client" eyni sorğunu sayta (serverə) müraciət etdikdə, bu zaman "proxy server" öz keşindən istifadə edərək "client"-ı sorğu etdiyi məlumatlarla təmin edir ki, bu da şəbəkədə trafikin yüklənməsi, gecikmələrin olmasını aradan qaldırır və şəbəkənin "bandwidth" tezliyini yüksəltmiş olur. Aşağıdakı müxtəlif şəkilli nümunələrə nəzər salsaq (nümunəni youtube üzərindən təqdim etsək), bilgimiz daha da anlaşıqlı olar:
"client"-ın "youtube.com" adlı sayta (serverə) ilk sorğu üçün müraciəti:
"client"-ın "youtube.com" adlı sayta (serverə) təkrar (eyni) sorğu üçün müraciəti:
- "Anonymity" - anonimlik anlamını ifadə edir. Bu halda "YouTube" (serveri) sorğunun hansı "client"-dan gəldiyini bilmir, yəni "proxy server" anonimliyi qoruyur. Aşağıdakı müxtəlif şəkilli nümunələrə nəzər salsaq, bilgimiz daha da anlaşıqlı olar:
- "Traffic control" və "Logging" - trafikin idarəsi və loqlama anlamını ifadə edir. Bütün trafik "proxy server"-lərdən keçdiyi üçün, "proxy server" trafikə nəzarət etməyə kömək edə və buna əsasən müəyyən səbəblərə görə uyğunsuz və müəyyən məzmunu bloklaya bilir ki, bu zaman bu proseslər loq şəklində də qeyd olunur. Nümunə olaraq qeyd etsək: "proxy server" şirkətdəki işçilərin istifadəsində olan kompüterləri (client) zərərli saytlardan qoruya bilir. Aşağıdakı müxtəlif şəkilli nümunələrə nəzər salsaq, bilgimiz daha da anlaşıqlı olar:
Dostlar,
Güman edirəm ki, bu məqaləm sizə maariflənməniz istiqamətində faydalı olar.
Təşəkkür edirəm və uğurlar!
Hörmətlə,
Müəllif
Araz Əhmədov
Comments
Post a Comment