🔥 Reverse Proxy vs Forward Proxy فرقشون چیه؟
اگه بخوای خیلی ساده تفاوت Forward Proxy و Reverse Proxy رو بفهمی، باید بدونی که Forward Proxy نمایندهی Client هست ولی Reverse Proxy نمایندهی Server. توی Forward Proxy داستان از سمت کاربر شروع میشه؛ یعنی کاربر بهجای اینکه مستقیم به اینترنت یا یک Server مقصد وصل بشه، درخواستش رو میفرسته سمت Proxy و Proxy اون درخواست رو از طرف کاربر به مقصد میرسونه.
ساختار کلیش میشه Client → Forward Proxy → Internet/Server. مثلاً توی یک شرکت ممکنه سیستمهای کارمندان مستقیماً به اینترنت دسترسی نداشته باشن و تمام درخواستها اول از یک Proxy سازمانی رد بشن. اونجا Proxy میتونه روی درخواستها Policy اعمال کنه، دسترسی بعضی سایتها رو محدود کنه، ترافیک رو Log کنه، Cache انجام بده و حتی باعث بشه مقصد بهجای IP واقعی Client، IP مربوط به Proxy رو ببینه. پس Forward Proxy بیشتر برای کنترل و مدیریت دسترسی کاربران استفاده میشه.
حالا Reverse Proxy دقیقاً از اون طرف قضیه وارد میشه. اینجا Proxy جلوی Server قرار میگیره و Client معمولاً اصلاً خبر نداره پشت این Proxy چند تا Server وجود داره.
ساختارش میشه Client → Reverse Proxy → Backend Server. مثلاً کاربر وارد یک سایت میشه و درخواستش به Reverse Proxy میرسه؛ Reverse Proxy بررسی میکنه درخواست برای کدوم سرویس یا Server هست و بعد اون رو به یکی از Backend Serverها میفرسته. حتی ممکنه پشت Reverse Proxy دهها Server وجود داشته باشه و Reverse Proxy درخواستها رو بین اونها تقسیم کنه؛ اینجاست که بحث Load Balancing مطرح میشه. علاوه بر این، Reverse Proxy میتونه TLS/SSL رو Terminate کنه، درخواستهای مشکوک رو فیلتر کنه، Rate Limiting انجام بده، Cache داشته باشه و جلوی دسترسی مستقیم به Backend Serverها رو بگیره.
مثلاً فرض کن یک سایت بزرگ داری و سه تا Web Server پشتش هست. کاربر فقط Reverse Proxy رو میبینه و درخواستش میاد روی Reverse Proxy؛ بعد Proxy بر اساس الگوریتم Load Balancing مثل Round Robin یا Least Connections تصمیم میگیره درخواست رو به Server 1 یا Server 2 یا Server 3 بفرسته. در این حالت اگر یکی از Serverها Down بشه، Reverse Proxy میتونه درخواستها رو به Serverهای سالم هدایت کنن.
پس اگه بخوای خیلی راحت تو ذهنت بمونه، Forward Proxy یعنی «من به جای Client میرم سمت اینترنت» و Reverse Proxy یعنی «من جلوی Server وایسادم و درخواست Client رو میگیرم و تصمیم میگیرم به کدوم Backend بفرستم». Forward Proxy بیشتر سمت کاربران و شبکهی داخلی دیده میشه، ولی Reverse Proxy بیشتر سمت سرویسها و Web Serverها قرار میگیره و چیزهایی مثل Load Balancer، WAF، TLS Termination، Cache و کنترل دسترسی معمولاً اونجا دیده میشن.
@Netwo0rk
Post #14268
627

- ❤ 1