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

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

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