آموزش پیکربندی Reverse Proxy در ویندوز IIS
در این مقاله میخوانید
پیکربندی Reverse Proxy در ویندوز IIS مانند این است که یک نگهبان تماموکمال بین کاربران و سرور اصلی دراختیار دارید. بهعبارتی Reverse Proxy مثل یک نگهبان وظیفهشناس، مسئولیت کنترل تردد به ساختمان که همان سرور اصلی است، برعهده دارد. آیا میخواهید عملکرد و امنیت وب سایت خود را بهبود ببخشید؟ پس نیاز است نسبت به پیکربندی Reverse Proxy اقدام کنید. برای این کار، باید تنظیمات Reverse Proxy را به گونهای تعیین کنید که درخواستها را به سرور اصلی منتقل کند. در این مقاله از بلاگ پارس پک گام به گام نحوه پیکربندی Reverse Proxy در ویندوز IIS را آموزش میدهیم.
مثالهایی برای کاربرد Reverse Proxy در محیط ویندوز سرور
۱. استفاده از IIS به عنوان Reverse Proxy برای سرورهای وب داخلی تحت ویندوز به منظور افزایش امنیت، کاهش بار سرور و مدیریت بهتر ترافیک.
۲. بکارگیری Reverse Proxy مقابل سرورهای پایگاه داده مانند SQL Server تحت ویندوز برای محافظت بیشتر و کاهش حملات مستقیم.
۳. استفاده از Nginx روی ویندوز به عنوان Reverse Proxy جلوی سرورهای وب آپلیکیشنها برای لود بالانسینگ و افزایش کارایی.
۴. پیادهسازی راهکارهایی مثل WAF با استفاده از Reverse Proxy مقابل سرورهای وب آسیبپذیر برای امنسازی.
۵. استتار ساختار داخلی شبکه پشت Reverse Proxy در برابر کاربران خارجی.
۶. امکان اعمال SSL Offloading با استفاده از Reverse Proxy مقابل سرورها.
Reverse Proxy مثل یه دوست صمیمی عمل میکند. تمام درخواستهای کاربران را به سرورهای اصلی میفرستند، بدون اینکه این معرفتش را همهجا جار بزند.
پیشنیازهای لازم برای پیکربندی Reverse Proxy در ویندوز IIS
- سرور با سیستم عامل ویندوز سرور ۲۰۱۹ یا بالاتر
- نصب بودن IIS
- IIS URL RewriteIIS Application Request Routing (ARR)
راهنمای گام به گام نحوه پیکربندی Reverse Proxy در ویندوز IIS
ریورس پروکسی (Reverse Proxy) یک مدل معماری شبکه است که در آن یک سرور واسط بین کلاینت و سرور اصلی قرار میگیرد. در این مدل، درخواستهای کلاینت به سرور اصلی ارسال نمیشوند، بلکه ابتدا به ریورس پروکسی میرسند و سپس ریورس پروکسی مسئول ارسال درخواست به سرور اصلی و دریافت پاسخ آن است.
به طور خلاصه، فرایند کارکرد یک Reverse Proxy در ویندوز سرور به این شکل است:
فرض کنید سرور وب (مثلا IIS) به عنوان Reverse Proxy در مقابل چندین سرور وب داخلی (مثلا سرورهایی با IPهای 192.168.1.10 و 192.168.1.11) قرار گرفته است.
- کاربر یک درخواست به آدرس example.com ارسال میکند.
- درخواست به Reverse Proxy میرسد.
- Reverse proxy بر اساس قوانین تعریف شده، آدرس درخواست را با یکی از آدرسهای سرورهای داخلی جایگزین میکند، مثلا به 192.168.1.10
- درخواست را به سرور مقصد ارسال میکند.
- پاسخ از سرور داخلی دریافت و برای کاربر ارسال میشود.
با دنبال کردن ادامه این مطلب، بهسادگی در سه گام ساده میتوانید موفق به پیکربندی Reverse Proxy در ویندوز IIS شوید. مراحل کار بهصورت زیر است.
همه چیز درباره کاربردها، مزیتها و انواع نسخههای ویندوز سرور را در مقاله زیر بخوانید.
گام اول: افزونههای Routing Extensions را نصب کنید
بهصورت پیشفرض، IIS همراهبا قابلیت مسیریابی Reverse Proxy ارائه نمیشود. برای فعال کردن آن، ابتدا باید افزونههای موردنیاز را بهصورت دستی نصب کنید. برای دانلود و نصب افزونهها کافیاست روی لینکهای زیر کلیک کنید:
- https://www.iis.net/downloads/microsoft/application-request-routing
- https://www.iis.net/downloads/microsoft/url-rewrite
پس از نصب افزونهها، احتمالا گزینهای بهنام URL Rewrite در داشبورد IIS زیر قسمت Default Web Site مشاهده کنید.
گام دوم: یک قانون Reverse Proxy اضافه کنید
اکنون، روی گزینه URL Rewrite کلیک کنید. نوار ابزار سمت بخش Actions روی Add Rule بزنید. روند زیر را طی کنید:
Add Rule(s)… > Inbound rules > Blank rule یا Reverse Proxy rule
پس از طی کردن مسیر بالا، صفحهای مانند تصویر زیر خواهید دید:
در ادامه، به هریک از بخشهای این صفحه نگاهی خواهیم کرد:
- Pattern: آدرس Pattern در قالب Regex مطابق با Routing Reverse Proxy تعیین میشود.
- Conditions: این قسمت، شرایط اختیاری برای تکمیل Pattern را مشخص میکند.
- Server Variables: از این بخش نیز میتوانید درصورت لزوم متغیرهای سفارشی سرور را تعیین کنید.
- Action: قسمت Action Type برای تعریف کردن اقدامی است که درصورت تطبیق URL باید انجام شود. در اینجا ما Rewrite را تعیین کردیم.
- Rewrite URL: مسیری است که درصورت تطبیق URL آدرسدهی میشود. برای مثال، برای یک سرویس محلی که پورت ۸۰۸۰ را اجرا میکند، Rewrite URL بهصورت زیر است:
http://localhost:8080
در Pattern برای پیکربندی Reverse Proxy باید از فرمت (Regular Expression Pattern) استفاده کنید. همچنین Pattern باید با آدرس URL برای Reverse Routing مطابق باشد. اگر میخواهید با همه آدرسهای URL هماهنگ شود، بهسادگی Pattern را به صورت (.*) تنظیم کنید. هر چیزی که در Pattern با پرانتز قرار دارد، در قسمت Rewrite URL به ترتیب با ({R:1}, {R:2}, و غیره) میتوان به آن اشاره کرد. {R:0} به کل آدرس URL اشاره دارد.
برای مثال، در تصویر بالا، درخواست لاگین کاربر بهصورت زیر است:
http://api.myserver.com/myapi/auth/login
این درخواست به سرور http://localhost:8080 با آدرس http://localhost:8080/auth/login هدایت میشوند. بهعبارتی، در قسمت Rewrite URL متغیرهای زیر بهوجود میآیند:
- {R:0} — myapi/api/login
- {R:1} — auth/login
همانطور که در تصویر بالا میبینید، در بخش Rewrite URL، آدرسی مانند زیر داریم:
http://localhost:8080/{R:1}
شما میتوانید Pattern و Rewrite URL را براساس نیاز خود تغییر دهید. پس از انجام این کار، روی Apply در نوار ابزار سمت راست کلیک کنید تا تغییرات ذخیره شوند.
راهنمای کامل معرفی کاربردها و مزیتهای وب سرور IIS و نحوه نصب و راهاندازی آن را در مقاله زیر بخوانید.
گام سوم: تنظیمات پروکسی در IIS را فعال کنید
برای استفاده از Reverse Proxy در IIS نیاز است تنظیمات آن را فعال کنید. این تنظیمات بهصورت پیش فرض فعال نیستند. در چهار مرحله ساده میتوانید بهراحتی این کار را انجام دهید:
۱. به صفحه اصلی IIS بازگردید.
۲. روی Application Request Routing Cache بزنید.
۳. در سمت راست نوار ابزار، روی Server Proxy Settings کلیک کنید.
۴. درنهایت، تیک گزینه Enable Proxy را بزنید.
پس از فعالسازی تنظیمات پروکسی در IIS، میتوانید از Reverse Proxy برای بهبود عملکرد و امنیت وبسایت خود استفاده کنید.
جمعبندی
نحوه پیکربندی Reverse Proxy در ویندوز IIS را با در سه گام ساده در این مقاله بررسی کردیم. Reverse Proxy یک راهکار قدرتمند برای بهبود عملکرد و امنیت وبسایتها است. با استفاده از Reverse Proxy، میتوانید درخواست کاربران را به یک سرور مرکزی منتقل کنید. سپس تنظیمات را طوری انجام دهید که این سرور درخواستها را به سرورهای اصلی منتقل کند. این کار به بهبود عملکرد وبسایت شما کمک خواهد کرد؛ زیرا سرور مرکزی درخواستها را بهصورت دستهای پردازش میکند. همچنین Reverse Proxy بهعنوان یک لایه محافظتی در برابر حملات سرور در بهبود امنیت وبسایتتان نقش ماهرانهای ایفا خواهد کرد.
سؤالات متداول
۱. چه تنظیماتی برای Reverse Proxy تعیین کنم؟
تنظیمات Reverse Proxy به نیازهای وبسایت شما بستگی دارد. با این حال، برخی از تنظیمات مهم عبارتند از:
- نوع پروتکل: Reverse Proxy یکی از دو پروتکل HTTP یا HTTPS را استفاده میکند.
- روش احراز هویت: Reverse Proxy از روشهای احراز هویت مختلفی مانند Basic Auth و NTLM پشتیبانی میکند.
- قوانین مسیریابی: قوانین مسیریابی تعیین میکند چگونه درخواستها به سرورهای اصلی منتقل شوند.
۲.Reverse Proxy چگونه کار میکند؟
Reverse Proxy بهعنوان یک دروازه برای وبسایتتان عمل میکند. وقتی کاربری به وبسایت شما دسترسی پیدا میکند، درخواست او ابتدا به Reverse Proxy ارسال میشود. سپس Reverse Proxy درخواست را به سرورهای اصلی منتقل کرده و پاسخ را به کاربر برمیگرداند.
۳. چه زمانی باید از Reverse Proxy استفاده کنیم؟
Reverse Proxy برای وبسایتهایی که با چندین سرور میزبانی میشوند یا نیاز به بهبود عملکرد و امنیت دارند، مناسب است.