شما برای مطالعه این مقاله فقط 8 دقیقه وقت نیاز دارید

configure-reverse-proxy-in-iis

نحوه پیکربندی Reverse Proxy در ویندوز سرور IIS

5/5 - (1 امتیاز)

اگر به فکر حفظ امنیت و عملکرد سرور اصلی وبسایت خود هستید، با  پیکربندی Reverse Proxy در ویندوز سرور IIS می توانید بسیاری از راه حل های امنیتی را وارد عمل کنید.

راه اندازی پراکسی معکوس در IIS طی ۳ مرحله اصلی نصب افزونه های url rewrite و ARR، ایجاد قانون پراکسی معکوس و فعال سازی تنظیمات Reverse Proxy در IIS تکمیل می شود ولی این فرآیند ساده می تواند تاثیر زیادی در امنیت، عملکرد و مدیریت ترافیک وبسایت شما داشته باشد.

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

در حالت کلی، استفاده از سرور پراکسی با مزایای زیادی همراه است که متعادل سازی بار و ترافیک سایت، محافظت از سرور در برابر حملات، نگهداری محتوا در حافظه کش و رمزگذاری SSL از اصلی ترین آنهاست که اکثر صاحبان وبسایت برای ارتقا عملکرد سایت خود به دنبال این مزایا هستند. اگر شما هم جزو این دسته از افراد هستید، با خیال راحت می توانید نسبت به راه اندازی Reverse Proxy اقدام کنید.

پس اگر از ویندوز سرور استفاده می کنید و برای ایجاد، پیکربندی و انتشار سایت خود در وب، IIS را انتخاب کرده اید، با طی مراحلی که در ادامه بررسی می کنیم می توانید پروسه نصب و پیکربندی Reverse Proxy در IIS را به راحتی پشت سر بگذارید.

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

پراکسی معکوس (Reverse Proxy) چیست؟

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

بیایید با یک مثال از دنیای واقعی جلو برویم:

فرض کنید کارمند یک شرکت بزرگ هستید و شرکت شما دارای یک سیستم امنیتی حساس است. تازه کارها و کارمندان جدید برای ورود به دفتر، اول باید از یک درب ورودی ویژه عبور کنند که توسط یک نگهبان ( پراکسی معکوس) نظارت می شود. 

این سرور پراکسی است که درخواست ها را مدیریت می کند و اقدامات لازم را در زمینه پاسخ گویی به درخواست ها مثل رهگیری درخواست ها و هدایت آنها به سمت سرور اصلی را انجام می دهد.

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

این سرور با انجام این وظایف به ایحاد یک محیط شبکه مطمئن، کنترل شده و با کارایی بهتر کمک می کند.

مراحل راه اندازی پراکسی معکوس در IIS

برای استفاده از IIS به عنوان ریورس پراکسی باید از یک ویندوز سرور ۲۰۱۹ به بالا استفاده کنید و مراحل نصب وب سرور IIS را هم طی کرده باشید.

مرحله ۱: نصب افزونه های موردنیاز

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

یکی از این افزونه ها، (ARR (Application Request Routing است که برای توزیع ترافیک وب بین چند سرور ضروری است و برای نصب آن کافیست به صفحه دانلود ARR بروید و فایل آن را دانلود و نصب کنید.

افزونه دوم هم url-rewrite است و این امکان را فراهم می کند که IIS به عنوان سرور پراکسی معکوس عمل کند. برای نصب این افزونه هم کافیست به صفحه دانلود url-rewrite بروید و فایل آن را دانلود و نصب کنید.

اگر بعد از دانلود و نصب افزونه ها، وب سرور IIS را باز کنید، می توانید گزینه های Application Request Routine Cache و URL Rewrite را در داشبورد IIS ببینید.افزونه های لازم برای پیکربندی reverse proxy در ویندوز سرور iis

مرحله ۲: اضافه کردن یک قانون reverse proxy

حالا می توانید rule مربوط به اضافه کردن پراکسی سرور را اضافه کنید. پس روی گزینه URL Rewrite کلیک کنید.

از نوار بار سمت راست، روی گزینه اول بخش Actions یعنی add rules کلیک کنید.اضافه کردن قانون پراکسی معکوس

سپس از بخش inboud rules گزینه Blank rule را انتخاب کنید و روی Ok کلیک کنید.

با پنجره زیر مواجه خواهید شد:تنظیمات بخش پراکسی معکوس

ابتدا اسم این rule یا قانون را در فیلد name وارد کنید. 

سپس، در بخش pattern یک الگو وارد کنید. این الگو در قالب regex است و برای تعریف نحوه مدیریت درخواست های ورودی پراکسی معکوس یا در واقع، تعیین مسیر آن استفاده می شود.

اگر می خواهید این الگو با تمام url های سایت مطابقت داشته باشد، الگو را به صورت (.*) تنظیم کنید. یا مثلاً  برای اینکه این مسیریابی را طوری تنظیم کنید که برای تمام url هایی که با myapi شروع می شوند، اعمال شود، الگو را به صورت (*.)/myapi وارد کنید. 

* در صورت نیاز می توانید از ابزار test pattern موجود در کنار فیلد pattern برای تست الگوهای موردنظر خود استفاده کنید.

اگر نیاز به تعیین یک سری شرایط خاص برای بخش الگوها هستید، می توانید به صورت اختیاری از بخش Conditions استفاده کنید.

به بخش Action که رسیدید، باید نسبت به تعیین اکشن یا فعالیت موردنظر موقع تطابق الگو اقدام کنید.

به این صورت که اگر URL درخواست شده با الگویی که در بخش pattern تعیین کردید، سازگار باشد، url موردنظر به چه مسیری هدایت شود.

کلیک کنید  بلاک کردن سایت در ویندوز، گوگل کروم و فایرفاکس

اگر بخواهیم سرویس محلی localhost را برای این آدرس دهی در نظر بگیریم و پورت ۸۰۸۰ را به آن اختصاص دهیم، Rewrite URL به صورت زیر خواهد شد:

http://localhost:8080/

حالا نوبت به بخش url این آدرس می رسد که در Rewrite URL می توان به آن اشاره کرد. برای این کار می توان از { R:1 , R:0 و …} استفاده کرد.

 به این صورت که اگر درخواست کاربر یا به اصطلاح، آدرس مبدا به صورت زیر باشد:

http://api.myserver.com/myapi/auth/login

این درخواست به سرور لوکال هاست با آدرس http://localhost:8080 هدایت می شود. 

اگر بخش Rewrite URL را {R:0} تکمیل کرده باشید، درخواست های کاربر به آدرس زیر هدایت می شود.

http://api.myserver.com/myapi/auth/login

{R:0} تمام بخش url آدرس مبدا را شامل می شود.

حالا اگر از {R:1} استفاده کنید، کاربری که آدرس آدرس مبدا به آدرس زیر هدایت می شود:

http://localhost:8080/auth/login

در واقع، با این کار ها متغیرهایی با مقادیر زیر ایجاد می شود:

{R:0} — myapi/api/login

{R:1} — auth/login

{R:2} —login

بعد از اینکه فیلدهای مربوط به pattern ،Rewrite URL و … را بر اساس نیاز خود تکمیل کردید، روی apply کلیک کنید تا این تغییرات ذخیره شوند.

مرحله ۳. فعال سازی تنظیمات پراکسی معکوس در IIS

همانطور که قبلاً هم اشاره کردیم، ویژگی پراکسی معکوس به طور پیش فرض در IIS فعال نیست و شما باید تنظیمات پراکسی IIS را به صورت دستی فعال کنید. اگر تنظیمات مرحله ۲ را انجام دهید و این ویژگی را فعال نکنید، کاربران و خود شما موقع بازدید از آدرس با خطای 404 Not Found مواجه خواهید شد. برای این کار کافیست مراحل زیر را طی کنید:

IIS Manager را باز کنید و روی سرور کلیک کنید.

دو بار روی گزینه Application Request Routing کلیک کنید.کلیک روی ARR

از نوار ابزار سمت راست، روی Server Proxy Settings کلیک کنید.

سپس، گزینه Enable proxy را علامت بزنید تا این ویژگی در وب سرور فعال شود.

سپس HTTP Version را در وضعیت Pass through قرار دهید و گزینه Reverse rewrite host in response headers را هم علامت بزنید.فعال سازی پراکسی معکوس از ARR

در آخر، روی Apply کلیک کنید تا این تغییر ذخیره شود.

بله، با طی این مراحل موفق به راه اندازی پراکسی معکوس در IIS شدید.

مزایای پیکربندی Reverse Proxy در ویندوز سرور IIS

متعادل سازی بار

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

محافظت از سرور در برابر حملات

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

حافظه کش

یک پراکسی معکوس می تواند محتوا را در حافظه کش خود مگه دارد و در صورت نیاز، برای افزایش سرعت پاسخگویی به درخواست ها از حافظه کش استفاده کند. 

رمزگذاری SSL

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

اکنون که با وظایف و مزایای اصلی سرور پراکسی آشنا شدید و نحوه پیکربندی Reverse Proxy در ویندوز سرور IIS را هم یاد گرفتید، وقت آن است که بر اساس نکات زیر، شروع به راه اندازی پراکسی معکوس کنید.

نکات مهم در مورد راه اندازی پراکسی معکوس در IIS 

  • اطمینان داشته باشید که سرورها برای دریافت ترافیک از پراکسی معکوس آماده هستند.
  • فعال سازی گواهینامه TLS برای پراکسی معکوس را فراموش نکنید.
  • احراز هویت سمت کلاینت را فعال کنید.
  • به الگوی *. اکتفا نکنید و سعی کنید از مکانیسم های متفاوتی برای مواردی مثل احراز هویت و URL های بازگشتی استفاده کنید.
  • برای هر یک از موارد خاص، قوانین جدایی ایجاد کنید و فعال سازی گزینه Stop processing را فراموش نکنید چون این گزینه از تداخل urlهای سازگار با چند الگو جلوگیری می کند.
  • Rewrite یا بازنویسی شما به فولدر روت سایت محدود نمی شود و می توانید URL ورودی را به عنوان یک پارامتر ارسال کنید یا ریدایرکت کنید.
  • اگر گواهینامه SSL را فعال کرده باشید، استفاده از پیشوند http در rewrite URL باعث اضافه شدن SSL به پراکسی معکوس شما می شود. اما اگر می خواهید رمزگذاری را حفظ کنید، باید از بخش condition، یک شرط جدید تحت قالب ://?(https)^ اضافه کنید و rewrite URL را هم با پیشوند //:{C:1} شروع کنید.
  • گزارشات مربوط به پراکسی معکوس را بررسی کنید تا از عملکرد درست آن مطمئن شوید.
  • اگر از چند سرور مقصد برای پراکسی معکوس استفاده می کنید، مطمئن شوید که ترافیک به درستی بین آنها توزیع می شود.
  • بهینه سازی ها و آپدیت های لازم را انجام دهید تا از بروز مشکلات امنیتی جلوگیری کنید.

سخن آخر

با پیکربندی Reverse Proxy در ویندوز سرور IIS می توانید بین کلاینت ها و سرورهای اصلی خود یک دروازه ایجاد کنید تا درخواست ها از طریق آن، هندل و مدیریت شوند. این پروسه طی چند مرحله تکمیل می شود که نصب افزونه های موردنیاز، ایجاد قانون مربوط به پراکسی معکوس و فعال سازی آن، اصلی ترین آنها هستند. اگر این پراکسی را به درستی تنظیم کنید و گواهینامه SSL و احراز هویت را هم با دقت انجام دهید، می توانید انتظار بهبود عملکرد و امنیت سایت خود را داشته باشید.

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

مطالب مشابهی که شاید علاقمند باشید

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

دیدگاه های شما

برای دریافت این مقاله لطفا ایمیلتان را وارد کنید

می توانید مقاله را دانلود کنید یا پرینت بگیرید