CDN ابری

سرور پروکسی معکوس یا Reverse Proxy Server و پروکسی مستقیم

Shahin Noei Shahin Noei
20 بازدید 0 دیدگاه 04 آذر 1401
/storage/post-covers/1667737074_2022-11-06_cloud-servers-370x370.png /storage/post-images/1667737074_2022-11-06_cloud-servers-830x250.png
سرور پروکسی معکوس یا Reverse Proxy Server و پروکسی مستقیم

یک پروکسی سرور معکوس ، نقطه اتصالی میانی است که در لبه یا edge شبکه مستقر است. این نقطه درخواست های اولیه اتصالات HTTP را دریافت کرده و همانند یک نقطه پایانی (Endpoint) واقعی عمل می کند. پروکسی معکوس که یک پاسبان ترافیک شبکه ای است، به عنوان یک دروازه مرزی بین کاربر و سرور اصلی اپلیکیشن شما عمل می کند. به این ترتیب، این دروازه تمام وظایف مربوط به مدیریت سیاست ها و مسیردهی ترافیک را برعهده دارد.

به عبارت دیگر یک reverse proxy :

  • درخواست اتصال کاربر را دریافت می کند؛
  • یک handshake سه مرحله ای TCP را اجرا و اتصال اولیه را برقرار می کند؛
  • و سپس با سرور اصلی ارتباط برقرار کرده و درخواست اصلی را به سمت آن ارسال می کند.

 

بگذارید سرورهای پروکسی را کمی مفصل تر توضیح دهیم...

سرور پروکسی چیست؟

یک پروکسی مستقیم یا forward که گاهاً پروکسی یا سرور پروکسی نامیده می شود، سروری است که جلوی دسته ای از دستگاه های کلاینت قرار می گیرد. زمانی که این کامپیوترها برای دریافت اطلاعات سایتی درخواستی را ارسال می کنند، پروکسی سرور به عنوان یک میانجی وارد عمل شده و به جای سرور اصلی با آن کلاینت ها ارتباط برقرار می کند.

برای مثال، بگذارید سه کامپیوتر درگیر در یک ارتباط پروکسی مستقیم را نام گذاری کنیم:

  • A: این یک کامپیوتر خانگی کاربر است.
  • B: این یک سرور پروکسی مستقیم است.
  • C: این سرور اصلی وب سایت است (یعنی جایی که داده ها در آن قرار دارند)

 

در یک اتصال اینترنتی استاندارد، کامپیوتر A به طور مستقیم با کامپیوتر C ارتباط برقرار می کند، که در این روش کلاینت درخواستی را به سمت سرور اصلی ارسال کرده و سرور اصلی به آن پاسخ می دهد.

اما زمانی که سرور پروکسی مستقیم در میان باشد، A ابتدا درخواست خود را به B ارسال می کند که در ادامه B آن درخواست را به سمت C ارسال خواهد کرد. در نهایت C پاسخ خود را به B و سپس  B به A ارسال می کند.

اما چرا باید چنین میانجی اضافی ای را در فعالیت های اینترنتی خود اضافه کنیم؟

چند دلیل برای استفاده از پروکسی مستقیم وجود دارد:

  • دوری از محدودیت های خاص موسسات و کشور ها:  برخی از دولت ها، مدارس، یا سازمان ها برای تفویض  اینترنتی محدودتر به کاربران از فایروال ها کمک می گیرند. یک پروکسی مستقیم می تواند برای دور زدن این محدودیت ها مورد استفاده قرار گیرد. چراکه آنها به کاربر اجازه می دهند تا ابتدا بجای اتصال به وب سایت اصلی، به پروکسی متصل شوند.
  • مسدود سازی دسترسی به محتوایی خاص: پروکسی ها می توانند برای مسدود سازی دسترسی کاربران به سایت های خاص نیز مورد استفاده قرار گیرند؛ برای مثال، یک شبکه مدرسه می تواند طوری پیکربندی شده باشد که به وسیله یک پروکسی به اینترنت متصل شود تا قوانین فیلتر کردن یک سری محتوای خاص را اجرا کند.
  • محافظت از هویت اینترنتی: در برخی موارد، کاربران معمولی اینترنت ترجیح می دهند هویت شان ناشناس باقی بماند. اما در برخی موارد دیگر، کاربران در مناطقی قرار دارند که دولت آنها می تواند با شناسایی هویت شان جرائم سنگینی را برایشان در نظر گیرد. برای مثال ممکن است فردی بخواهد اقدامات دولتش را در یک انجمن یا شبکه اجتماعی مورد انتقاد قرار دهد. در اینجا می تواند به کمک یک پروکسی آدرس IP خود را پنهان کرده و کامنت مورد نظرش را ثبت کند. به این ترتیب تنها آدرس Ip سرور پروکسی قابل رویت خواهد بود.

پروکسی معکوس در مقابل پروکسی مستقیم

برخلاف پروکسی معکوس، اگرچه یک سرور پروکسی مستقیم (Forward) نیز در لبه (edge) شبکه قرار دارد، اما در عوض ترافیک خروجی را بر اساس سیاست های موجود در شبکه اشتراکی، مسیردهی و مدیریت می کند.

به علاوه این پروکسی آدرس IP کلاینت را از سایر آدرس ها جدا کرده و ترافیک ورودی مخرب را مسدود می کند.

پروکسی های مستقیم معمولاً در داخل (Internal) و توسط سازمان های بزرگ مورد استفاده قرار می گیرد، مثل دانشگاه ها و سازمان های دولتی. دلیل استفاده از این نوع پروکسی نیز می تواند موارد زیر باشد:

جلوگیری از بازدید برخی از سایت ها توسط کارکنان

رصد فعالیت های آنلاین کارمندان

جلوگیری از دسترسی ترافیک مخرب به سرورهای اصلی

بهبود تجربه کاربری با کش کردن محتوای خارجی سایت

 

بگذارید تفاوت را کمی واضح تر بیان کنیم...

یک پروکسی معکوس، سروری است که در مقابل یک یا چند وب سرور قرار گرفته و درخواست های کلاینت ها را منقطع می کند. این پروکسی از نوع مستقیم که در مقابل کلاینت مستقر می شود، تفاوت دارد. با پروکسی معکوس، زمانی که کلاینت درخواستی را به سمت سرور اصلی ارسال می کند، آن درخواست ها در لبه شبکه (network edge) توسط سرور پروکسی معکوس دریافت می شود. سرور پروکسی معکوس درخواست ها را به سمت سرور اصلی ارسال کرده و پاسخ آنها را از آن دریافت می کند؛ و در نهایت پاسخ را به کلاینت ارسال می کند.

تفاوت بین پروکسی مستقیم و معکوس ناچیز است اما مهم!

در واقع پروکسی مستقیم جلوی سیستم کلاینت نشسته و از اتصال هر گونه سروری به طور مستقیم با کلاینت مشخص خود، جلوگیری می کند. در حالی که یک پروکسی معکوس جلوی سرور اصلی نشسته و از ارتباط گیری هر گونه کلاینتی با سرور پشت سر خود جلوگیری می کند.

بیایید با همان مثال قبل ادامه دهیم:

D: تعدادی کامپیوتر خانگی کاربران

E: سرور پروکسی

F: یک یا چند سرور اصلی

 

در حالت نرمال، تمام درخواست های D به طور مستقیم به F می رسند؛ و F به آنها به طور مستقیم پاسخ می دهد. اما با وجود پروکسی معکوس ، تمام درخواست های D ابتدا به E منتقل شده و سپس E مسئول دریافت بسته ها و پاسخ دهی به کلاینت خواهد بود.

CDN ها چطور از پروکسی های معکوس استفاده می کنند؟

شبکه های توزیع محتوا (CDN) در لبه شبکه، از تکنولوژی پروکسی معکوس برای اداره ترافیک ورودی و خروجی استفاده می کنند. مزایای اینکار عبارتند از:

  • کش محتوا

پروکسی های معکوس در موقعیت های مختلف جغرافیایی توزیع شده اند که نسخه های کپی از صفحات وبسایت در آنجا فشرده و کش می شوند. این امر باعث توزیع محتوای سریعتر بر مبنای موقعیت کلاینت شده و زمان لود صفحات را کاهش می دهد تا تجربه نهایی کاربران به طرز چشم گیری بهبود یابد.

  • پاکسازی ترافیک

پروکسی های معکوس که در جلوی سرورهای Backend واقع شده اند، در نقطه ای ایده ای مستقر می شوند تا تمام ترافیک ورودی اپلیکیشن را پاکسازی کرده و سپس آن را به سمت سرورهای بک ارسال می کنند.

این امر باعث فراهم سازی موارد زیر می شود:

مقابله با حملات DDoS:  ترافیک ورودی بین ترکیبی از سرورهای پروکسی معکوس پخش می شود تا حمله DDoS اثرش را از دست بدهد.

امنیت لایه اپلیکیشن وب: پروکسی های معکوس بهترین نقطه برای قرار دادن فایروال های وب اپلیکیشن یا WAF هستند که به ایده آل ترین شکل بسته های مخرب را از بسته های سالم جدا کنند؛ از جمله بات های آسیب زا و درخواست های هکرها.

  • پنهان سازی IP

زمانی که ترافیک ورودی را از طریق سرور پروکسی معکوس مسیردهی می کنید، اتصالات ابتدا در پروکسی بسته می شوند و دوباره توسط سرور بک اند باز می شوند. از دیدگاه کاربری، درخواست های آنها با Proxy IP پاسخ داده می شود.

در نتیجه آدرس IP سرور اصلی شما پنهان باقی خواهد ماند، این موضوع کار را برای هکرها بشدت دشوار خواهد کرد تا دسترسی به سرور شما را پیدا کرده و حملات DDoS یا منع سرویس دهی را اجرا کنند.

  • توزیع بار

از آنجا که سرورهای پروکسی معکوس به عنوان دروازه ای میان کاربر و سرور اصلی وب اپلیکیشن شما هستند، می توانند تعیین کننده مسیر هر سشن HTTP باشند. برای اپلیکیشن هایی که از چند سرور بک اند استفاده می کنند، این موضوع به این معناست که پروکسی معکوس می تواند به طور موثرتری بار را بین سرورها تقسیم کند، در نتیجه، تجربه کاربری ارتقا یافته و دسترسی پذیری سرویس نیز به طرز قابل توجهی بهبود می یابد.

در مواقعی که سروری از کار افتد، پروکسی های معکوس به عنوان یک راهکار Failover عمل کرده و ترافیک را برای اطمینان از بالاترین میزبان دسترسی پذیری به مسیر صحیح هدایت خواهند کرد.

  • رمزنگاری SSL

رمزنگاری و رمزگشایی  اتصالات SSL یا TLS برای هر کلاینت می تواند هزینه ای هنگفت برای هر سرور اصلی ایجاد کند. یک پروکسی معکوس می تواند طوری پیکربندی شود که تمام درخواست های ورودی را رمزگشایی کرده و پاسخ های خروجی را رمزنگاری کند. این موضوع منابع سرور اصلی را به شدت آزاد خواهد کرد.

محبوب ترین سرورهای پروکسی معکوس در جهان

به گزارش W3Techs، متاسفانه بیش از 83% از وب سایت ها از پروکسی معکوس استفاده نمی کنند.

 

از بین 17% وبسایت هایی که از پروکسی معکوس استفاده می کنند، می توانید ببینید که اکثر آنها CDN ها هستند. دلیل این امر نیز این است که بیشتر پروکسی های معکوس حضورشان را با اعمال اقدامات محتاطانه مخفی نگه می دارند. با این حال، نمی توان به سرویس های رصد عملکرد وبسایت برای پیدا کردن پروکسی ها تکیه کرد. اما می توان با تجربه ای چند ساله به این پروکسی ها اشاره کرد:

  • Nginx
  • Varnish
  • Apache Traffic Server
  • HAProxy

چطور از پروکسی سرور استفاده کنیم؟

برخی از شرکت ها پروکسی های معکوس منحصر به خود را ایجاد می کنند، اما این روش به منابع سخت افزاری مهندسی شده و نرم افزارهای خاصی نیاز دارد. یکی از راهکارهای ساده و مقرون به صرفه برای بهره مندی از مزایای یک پروکسی معکوس، استفاده از سرویس CDN است. برای مثال سرویس CDN ابری میزبان کلود، تمام ویژگی های امنیتی و عملکردی مورد نیاز شما را در یک پلتفرم حرفه ای فراهم کرده است.

محدودیت های یک پروکسی معکوس

یک پروکسی معکوس در معرض تهدیدات امنیتی زیادی قرار دارد، چراکه تمام ترافیم ورودی به سمت آن را می خواند و ویرایش می کند. اگر ترافیک HTTPS را از پروکسی معکوس عبور دهید، باید داده های انتقالی را رمزگشایی کرده و مجدداً رمزنگاری کند. پس باید کلیدهای خصوصی گواهینامه SSL/TLS را در اختیار داشته باشد.

بنابراین اگر هر هکری بتواند پروکسی معکوس شما را هک کند، می تواند به پسوردها دسترسی پیدا کرده و Malware خود را درون سایت تزریق کند.

اگر شما یا کاربران تان نتوانید به طور مستقیم به سرور اصلی دسترسی پیدا کنید، استفاده از reverse proxy می تواند به یک شکست کامل منجر شود. برای مثال، اگر جلوی چندین دامنه خود از یک پروکسی معکوس استفاده می کنید، از دسترس خارج شدن آن پروکسی می تواند تمام دامنه های شما را همزمان از کار بیاندازد.

راهکار میزبان کلود

برای بهره مندی از قابلیت های اشاره شده در بالا در خصوص سرورهای پروکسی معکوس در راستای بهینه سازی مصرف منابع سرور اصلی و ارتقای سطوح امنیتی کسب و کار و وبسایت خود، می توانید از CDN ابری کاملاً ایرانی میزبان کلود استفاده کنید. CDN میزبان کلود این قابلیت را برای شما فراهم می کند تا محتوای سایت خود را از نزدیک ترین نقطه به کلاینت به دست کاربر برسانید، و از طرفی تمام درخواست های ورودی و پاسخ های خروجی را رمزنگاری و ایمن کنید.

برای بهره گیری از بهترین اقدامات (Best practices) در زمینه توزیع محتوا و راه اندازی سرورهای پروکسی معکوس به عنوان میانجی امن میان سرورهای اصلی و دستگاه های کاربران، می توانید از سرورهای لبه میزبان کلود که در نقاط جغرافیایی استراتژیک جهان واقع شده اند، برای وب سایت یا اپلیکیشن خود کمک گیرید.

پیشنهاد می کنیم به صفحه CDN میزبان کلود مراجعه کرده و با قابلیت ها و ویژگی های خاص آن بیشتر آشنا شوید.

جمع بندی

از سرورهای پروکسی معکوس برای مقاصد مختلفی نظیر توزیع بار، تسریع بخشی وب، بهبود امنیت و پنهان سازی هویت اینترنتی استفاده می شود. همانطور که در این مطلب گفته شد، سرورهای پروکسی، میانجی هایی بین کلاینت و سرورهای اصلی هستند که درخواست های کاربران را دریافت کرده، و پس از ارسال به سرور اصلی، پاسخ را از آن دریافت و سپس به دست کلاینت می رساند. در این مطلب به مزایا و کاربردهای سرورهای پروکسی معکوس و مستقیم و فرآیند اجرایی درون این تکنولوژی اشاره کردیم؛ امیدواریم این مطلب نیز برای شما مفید واقع شده باشد.

 

پیشنهاد ویژه

CDN ابری میزبان کلود

سرعت در بارگذاری و تحویل محتوای سایت

سرعت در بارگذاری و تحویل محتوای سایت

سرعت در بارگذاری و تحویل محتوای سایت

سرعت در بارگذاری و تحویل محتوای سایت

مشاهده پلانها
برچسب‌ها :
نویسنده مطلب Shahin Noei

نویسنده مطلب

سرور پروکسی معکوس یا Reverse Proxy Server و پروکسی مستقیم 0 دیدگاه