با عرض سلام و خسته نباشید به شما دوستان عزیز، در این قسمت از آموزش قراره بفهمیم که Nginx چی هست و چه کارهایی ازش برمیاد.
Nginx رو معمولا به عنوان یک وب سرور میشناسید که میدونه چجوری با پروتکل های مختلفی مانند HTTP ارتباط برقرار کنه. وب سرور معمولا محتوا های وب رو به کاربران ارائه میده که ممکن هست این محتوا استاتیک یا داینامیک باشد که در این صورت این محتوا ها با استفاده از تکنولوژی هایی مانند FastCGI و CGI پردازش خواهند شد.
اما Nginx به عنوان یک پروکسی معکوس هم استفاده میشه که کاربرد های زیادی مانند متعادل کردن بار، آدرس دهی بک اند، کش کردن و..... داره که در زیر به صورت کامل درمورد هرکدوم صحبت میکنیم.
Nginx میتواند زمانی که تعداد درخواست ها ورودی از سمت کاربران افزایش پیدا میکند و یک بک اند قابلیت جوابگویی به این درخواست ها را ندارد آن ها را بین چندین بک اند پخش کند که باعث کاهش فشار روی سرویس ها خواهد شد و به شما این اجازه رو میدهد که به محتوای خود را به کاربران بیشتری ارائه دهید.
Nginx این اجازه رو به ما میده که ببینیم کاربران ما به چه آدرسی درخواست ارسال میکنند. این موضوع به ما این اجازه رو میده که محتوا های مختلفی بر اساس آدرسی که کاربر وارد کرده به آن ها نمایش بدیم.
به عنوان مثال ما یک بک اند با دو ورژن v1 و v2 داریم و هر کدوم از این ها در سروری مختلف با آدرسی متفاوت در حال اجرا هستن و اگه ما بخوایم این آدرس ها رو به صورت جدا به کاربرانمان بدیم ممکنه باعث افزایش پیچیدگی آن بشه، اما میتونیم با استفاده از Nginx به کاربران خود این اجازه رو بدیم که اگه به آدرس /v1 ما درخواست ارسال کردند به ورژن 1 ما منتقل بشه و اگه به v2 به ورژن 2 ما یعنی به صورت زیر:
www.api.example.com/v1 >> www.v1.api.example.com
www.api.example.com/v2 >> www.v2.api.example.com
این باعث میشه که کاربران از طریق یک رابط استاندارد با سرویس های مختلف ما ارتباط برقرار کنند.
همچنین میتونیم درصورت به مشکل خوردن یکی از این بک اند ها درخواست رو به یک بک اند دیگه منتقل کنیم.
Nginx به ما کمک میکنه که تمامی سرویس ها و محتوا های خود را از طریق یک مسیر به کاربران خود ارائه دهیم.
این موضوع به ما کمک میکنه که بعضی از درخواست ها رو کش کنیم که این موضوع بیشتر برای محتواهای استاتیک ما صدق میکند که باعث میشه محتوا های خود را با سرعت بیشتر به کاربران خود ارائه دهیم، همچنین ما میتونیم بعضی از درخواست های بک اند رو هم که اهمیت زیادی ندارند و نیازی به احراز هویت ندارند را کش کنیم که باز هم باعث افزایش سرعت سرویس دهی ما خواهد شد.
امیدوارم که از خواندن این مطلب لذت برده باشید.