انجین ایکس یا آپاچی: نقد و بررسی پروکسی سرور Nginx

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

پیش از ادامه مطلب، نیاز است تا مقدمه‌ای کوتاه در مورد ماهیت وب سرور ذکر کنیم که اصولاً وب سرور چیست و چه وظیفه‌ای دارا است؟ خیلی از کسانی که تازه با دنیای وب و برنامه نویسی وب آشنا می‌شوند با قضاوت از روی نام «وب سرور» تصور می‌کنند که منظور از وب سرور، یک سرور سخت افزاری است که این کاملاً اشتباه است. به طور کلی، منظور از وب سرور نرم افزاری است که ارتباط مابین کاربر، دیتابیس و همچنین اسکریپت هایی که یک وب اپلیکیشن با آن نوشته شده را برقرار می‌سازد تا پاسخ مناسب برای درخواست های کاربران یافته شده و به شکل مناسبی در اختیار ایشان قرار گیرد. پس تا اینجای کار متوجه شدیم که وب سرور یک نرم‌افزار است که روی سرور نصب می‌گردد و پرکاربردترین وب سرور دنیا نیز آپاچی نام دارد. پس از آشنایی با مفهوم وب سرور مجدد به بحث اصلی که آشنایی با وب سرور Nginx است باز می گردیم. به طور کلی اگر بخواهیم که یک وب اپلیکیشن بسیار قدرتمند و کارا طراحی کنیم می بایست سایت خود را به صورت ماژول هایی مستقل از یکدیگر اما در عین حال مرتبط با یکدیگر طراحی کنیم و اینجا است که وب سرور انجین ایکس به خوبی از عهده مدیریت چنین سایتی برخواهد آمد. این وب سرور یک سرور سبک، رایگان و متن باز است که علاوه بر انجام کارهایی که یک وب سرور معمولی انجام می دهد، یک سرور Mail Proxy نیز می باشد. از این وب سرور کاملاً می‌توان به جای وب سرورهایی همچون آپاچی نیز استفاده کرد و یا اینکه می‌توان از آن به عنوان Reverse-proxy استفاده نمود (به طور کلی منظور از Reverse-proxy نوعی از پروکسی سرور است که منابع مورد نیاز را به جای مرورگر کاربر از یک یا چند سرور دیگر دریافت کرده و در اختیار کاربر قرار می دهد.) استفاده از Reverse-proxy از اهمیت بسزایی در ارتقاء سرعت سایت برخوردار است چرا که این نوع پروکسی حائلی مابین کاربر و سرور اصلی خواهد شد،‌ میزان حجم لود را پخش می کند، محتوا را کش/فشرده می‌سازد و همچنین فرایند درخواست/پاسخ را مدیریت می کند:

وب سرور انجین ایکس

در پاسخ به این سؤال که تفاوت انجین ایکس با وب سروی همچون آپاچی چیست می بایست گفت که انجین ایکس رویداد-محور و نامتقارن است اما این در حالی است که وب سرور آپاچی کاملاً بر پایه Thread ها کار می‌کند (در وب سروری که ترافیک نسبتاً بالایی وجود دارد، Thread ها منجر به فشار آوردن بر حافظه سرور می شوند). در چنین مسابقه ای، مسلماً انجین ایکس برنده است.

وب سرور انجین ایکس

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

0


بهزاد مرادی

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






  • novinhost در تاریخ: 1395/04/16

    ما که روی سرور ها از nginx خیلی راضی بودیم, و روز به روز به تعداد مشتریانی که تقاضای نصب و کانفیگ nginx میکنند اضافه میشود
    به نظرم وب مستر ها باید وقت مفصلی برای یاد گرفتن ریز و بم این وب سرور اختصاص دهند.

    یه آموزش خلاصه هم برای نصب nginx و php 7 روی اوبونتو نوشتیم:
    http://www.novinhost.org/blog/242-basic-php-7-and-nginx-configuration-on-ubuntu-16.html

از طریق این فرم، می توانید بدون ثبت نام نظر دهید و یا اگر قبلا ثبت نام کرده اید، با ورود ناحیه ی کاربری می توانید علاوه بر ثبت نظر، به مدیریت نظرات خود نیز بپردازید.
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)
(فیلد اجباری)