وارنیش، انجین

دانلود پایان نامه

هنگامی که شما آدرس صفحه ای را در مرورگر خود وارد می کنید، مرورگر با استفاده از سرویس دی ان اس۶۹، آدرس آی پی۷۰مربوط به سایت را به دست می آورد و با استفاده از آن درخواست دریافت صفحه ی وب را به آدرس آی پی به دست آمده ارسال می کند. درخواست های کاربران با استفاده از پروتکل اچ تی تی پی۷۱ به سرور وب ارسال می شوند و پاسخ آن ها که یک صفحه ی اچ تی ام ال است به کاربر  ارسال می شود.
۲.یک کامپیوتراست که یک برنامه ی کامیپوتری را اجرا می‌کند و کارایی اش همانند مطالبی است که دربالا گفته شد.
هر کامپیوتری می‌تواند با نصب نرم‌افزار وب‌سرور، به سرور وب تبدیل شود.
در عمل بسیاری از سرورهای وب، ویژگی‌های زیر را نیز پیاده‌سازی می‌کنند:
• شناسایی: درخواست شناسایی اختیاری قبل از اجازه دسترسی به انواع منابع
• نه تنها مفاهیم استاتیک (مفاهیم فایلی که بر روی سیستم فایلی وجود دارد) بلکه مفاهیم داینامیک را با یک یا چند ساختار نیز مانند سی جی آی۷۲، اس اس آی۷۳، ای اس پی دات نت۷۴، ای اس پی،پی اچ پی، جی اس پی۷۵، فست سی جی آی۷۶و اس سی جی آی۷۷ اداره می‌کند.
• پشتیبانی از اچ تی تی پی اس۷۸ تا به کاربران اجازه دهد اتصالات مطمئنی به سرور را بر روی پورت ۴۴۳ به جای ۸۰ برقرار کنند.
• فشرده سازی مطالب تا بتوان از حجم پاسخ ها کم کرد. (توسط کد سازی جی زیپ۷۹)
• پشتیبانی از فایل های بزرگ تا بتواند فایل های بزرگ‌تر از ۲ گیگا بایت را سرویس دهی کند.
• کنترل کردن پهنای باند: تا سرعت پاسخ ها را محدود کند و شبکه را پر ازدحام نکند و قادر باشد تعداد بیشتری کارخواه را سرویس دهی کند]۱۶ [.

۲-۲ انواع وب سرورها
همانطور که در شکل ۲-۳ مشاهده می کنید انواع مختلفی از وب سرورها موجود است که در شکل با جزییات کامل درمورد توسعه دهنده، لایسنس، آخرین نسخه و آخرین زمان انتشار نوشته شده است. شکل ۲-۴ به مقایسه ی قابلیت های همه ی سرورهای نام برده شده می پردازد و شکل ۲-۵ نیز درمورد سیستم عامل های پشتیبانی شده توسط این وب سرورها توضیح می دهد. آپاچی اچ تی تی پی سرور و انجین ایکس دو نمونه از مهم ترین سرورهای تحت لینوکس هستند که در این بخش شرح مفصلی از هرکدام را می بینید.

شکل ۲-۳ معرفی همه ی وب سرورهای موجود

شکل ۲-۴ ویژگی های وب سرورهای موجود

شکل ۲-۵ سیستم عامل های پشتیبانی شده توسط وب سرورهای موجود

۲-۲-۱ وب سرور آپاچی اچ تی تی پی سرور
این سرور وب در توسعه و همگانی شدن وب جهانی نقش بسیار مهمی داشته‌است. این سرور وب که به زبان سی۸۰نوشته شده‌است، از زبان های پرل۸۱و پی اچ پی پشتیبانی می کند و دارای قابلیت کراس- پلتفرم۸۲ بوده و بر روی ماشین‌های مختلف قابل اجرا می باشد. یک برنامه ی کد باز آزاد۸۳است که با سرورهای وب برای اداره کردن درخواست ها و تقاضاهای وب و منابع به کار می رود. دلیل انتخاب این اسم برای این سرور وب را نیز دو مورد ذکر کرده‌اند اول اینکه به یکی از قبایل قدیمی بومی آمریکا که به خاطر مقاومت و مهارت در ساخت ابزار آلات جنگی مشهور میباشند احترام گذاشته شود و ثانیاً به این دلیل که ریشه۸۴ ی پروژه به صورت یک سری پچ۸۵می باشد. این سرور وب در یک گروه و به صورت کد باز گسترش یافت و از سال ۱۹۹۶ به عنوان محبوب‌ترین سرور وب برای اچ تی تی پی در وب جهانی شناخته شده بود ولی در سال ۲۰۰۵ میدان مبارزه را به آی آی اس۸۶مایکروسافت باخت و در حال حاضر نزدیک به ۴۹ % بازار سرورهای وب جهان را به خود اختصاص داده‌است همچنین سیستم عامل مک۸۷ آن را به عنوان سرور وب اصلی در پشتیبانی از اشیای وب۸۸ خود برگزیده‌است. این سرور وب آپاچی برای میزبانی هر دو نوع وب ایستا و وب پویا مناسب است.
آپاچی اچ تی تی پی سرور روی سیستم عامل یونیکس۸۹ مانند لینوکس یا بی اس دی۹۰ اجرا می شود. همچنین می تواند روی ویندوز مایکروسافت و دیگر سیستم عامل ها یا پلتفرم ها اجرا شود. یک سرور با خصوصیات منحصر به فرد با افزونه های قدرتمند که به صورت مجانی در دسترس هستند.
آپاچی دارای امکانات ویژه می باشد که متداول ترین استفاده از ویژگی های این برنامه دات اچ تی اکسس۹۱ است که طراحان حرفه ای در محیط لینوکس از آن بهره می گیرند. برای نمونه زمانی که بخواهند اولین صفحه در سایت به خصوصی باشد با یک دستور در آن پرونده این امر ممکن می گردد و یا زمانی که صاحب سایت مایل نیست که فایل های موجود در سرور وی توسط دیگران دزدیده شود و بخواهد که مانع از پیوند مستقیم آن ها شود آپاچی کمک می کند تا به خواستشان برسند. زمانی که برنامه نویس بخواهد که محل واقعی صفحات دیده نشود نیز این برنامه مورد استفاده قرار می گیرد]۱۷ [.

مطلب مرتبط :   und، die

۲-۲-۲ وب سرور انجین ایکس
انجین ایکس یک سرور متن باز پراکسی معکوس برای پروتکل های اچ تی تی پی، اچ تی تی پی اس، اس ام تی پی۹۲، پاپ۳۹۳ و آی مپ۹۴ است که به خوبی به عنوان متعادل کننده ی بارگذاری، کش اچ تی تی پی و یک وب سرور عمل می کند. پروژه ی انجین ایکس با هدف افزایش کارایی، همزمانی بالا و مصرف حافظه ی کم شروع به کار کرد.
بزرگ ترین مشکل وب سرور معروف آپاچی محدودیت کانکشن همزمان ۱۰۰۰۰ تایی و همچنین میزان مصرف بالای حافظه است. و این مشکل باعث شده است که با آمدن انجین ایکس محبوبیت آپاچی کاهش پیدا کند. این وب سرور رایگان است، حجم پایین و کارایی بسیار بالایی دارد و تحت لیسانس بی اس دی منتشر می شود. یکی از بزرگ تر
ین مزیت های این وب سرور، پشتیبانی بسیار عالی از فایل های استاتیک است.
انجین ایکس سرعت پاسخگویی بسیار بالایی دارد و در بازدیدهای بسیار بالا واقعا عالی عمل می کند. ازجمله قابلیت های انجین ایکس سازگاری این وب سرور با اکثر توزیع های لینوکس هست. زمانی که بخواهید نسخه ی انجین ایکس را ارتقا بدهید، به صورت در پرواز۹۵ این کار را انجام می دهد و این درمورد پروژه هایی که سایت نباید زمان توقف۹۶داشته باشد خیلی اهمیت دارد.
انجین ایکس برای مدیریت درخواست ها یا همان کانکشن۹۷ ها از روش منحصر به خودش استفاده می کند. در این سرور برای هر درخواست یک نخ۹۸جدید درست می شود و این در حالی است که سیستمی که حتی مخزن نخ۹۹ دارد هم نخ را تا زمانی حفظ می کند که در آن لحظه درخواست جدید بیاید و انجین ایکس از نخ های بیکار استفاده می کند. این روش استفاده از نخ ها در انجین ایکس بسیار کارآمد است. به طور کلی مدیریت باز و بسته شدن نخ ها در وب سرور هایی مثل آپاچی باعث شده که این وب سرور در کانکشن های بالا، در هندل کردن این بازدیدها به قول معروف کم بیاورد.
انجین ایکس علاوه بر این که یک وب سرور است، به درخواست های پروکسی معکوس و ایمیل پروکسی۱۰۰ (آی مپ/پاپ۳) ها هم پاسخ می دهد]۱۸ [.

۲-۳ شتاب دهنده ای به نام وارنیش
وارنیش یک شتاب دهنده ی اچ تی تی پی است که برای وب سایت های داینامیک با محتوای سنگین طراحی شده است. برخلاف تسریع دهنده های وب دیگر نظیر اسکویید۱۰۱ که به عنوان کش سمت کلاینت عمل می کند، یا آپاچی و انجین ایکس که سرورهای مقدماتی هستند، وارنیش به عنوان یک شتاب دهنده ی اچ تی تی پی طراحی شده است. برخلاف دیگر سرورهای پروکسی که اغلب اف تی پی۱۰۲، اس ام تی پی و دیگر پروتکل های شبکه را پشتیبانی می کنند، وارنیش به صورت اختصاصی روی اچ تی تی پی متمرکز شده است.
وارنیش توسط تعداد زیادی از وب سایت های پر ترافیک و پر پروفایل که شامل سایت های خبرگذاری نظیر نیویورک تایمز۱۰۳، بی بی سی۱۰۴، گاواردین۱۰۵ و سایت های محتوایی و اجتماعی نظیر ویکی پدیا، فیس بوک، توییتر۱۰۶و غیره استفاده می شود.

۲-۳-۱ تاریخچه
پروژه توسط شعبه ی آنلاین یک روزنامه ی نروژی به نام وردنس گنگ۱۰۷ راه اندازی شد. توسعه دهنده ی معماری و رهبر پروژه، مشاور مستقل دانمارکی به نام پل هنینگ کمپ۱۰۸ ( توسعه دهنده ی هسته ی بی اس دی آزاد) بود و مدیریت و توسعه ی فرا ساختاری آن توسط یک کمپانی نروژی لینوکسی به نام لینپرو۱۰۹انجام شد. مدیریت، پشتیبانی و توسعه ی وارنیش بعدها به صورت یک کمپانی جداگانه به نام نرم افزار وارنیش تغییر شکل داد.
وارنیش متن باز است و تحت لیسانس بی اس دی در دسترس می باشد. پشتیبانی تجاری توسط نرم افزار وارنیش انجام می شود. اولین نسخه ی وارنیش در سال ۲۰۰۶، وارنیش ۲.۰ در سال ۲۰۰۸، وارنیش ۳.۰ در سال ۲۰۱۱ و وارنیش ۴.۰ در سال ۲۰۱۴ وارد بازار شد.

۲-۳-۲ معماری
وارنیش داده را در حافظه ی مجازی ذخیره می کند و سیستم عامل را از عمل تصمیم گیری درمورد این که چه چیزی در حافظه وجود دارد و چه صفحه ای باید از دیسک خارج شود، رها می کند. فایده ی این کار است که از به وجود آمدن موقعیت هایی که سیستم عامل عمل کش کردن داده را شروع می کند درحالیکه آن داده توسط برنامه به دیسک انتقال پیدا کرده است، اجتناب می کند.
به علاوه وارنیش به شدت به نخ کشیده است، با هر ارتباط کلاینت به وسیله ی یک نخ جداگانه اداره می شود. هنگامی که حد مشخصی روی تعدادی از نخ های فعال در دسترس است، ارتباطات ورودی در صف سرریز قرار می گیرند. وقتی این صف به ارتباطات ورودی محدوده ی مشخص خودش دسترسی داشته باشد، رد خواهد کرد.
مکانیزم پیکربندی اصلی زبان پیکربندی وارنیش۱۱۰ است، یک زبان مشخصه دامنه۱۱۱که برای نوشتن تله۱۱۲ هایی استفاده می شود که در نقاط بحرانی سازماندهی هر درخواست صدا زده می شوند. اغلب تصمیمات سیاسی که به کد وی سی ال واگذار می شوند، وارنیش را نسبت به شتاب دهنده های دیگر اچ تی تی پی منعطف تر و سازگارتر می سازد. وقتی یک اسکریپت۱۱۳وی سی ال بارگذاری می شود، به زبان سی ترجمه می شود، به یک شی مشترک توسط سیستم کامپایلر کامپایل می شود و سپس به صورت مستقیم به شتاب دهنده ای بارگذاری شود که می تواند بدون راه اندازی دوباره، دوباره پیکربندی شود.
تعدادی از پارامترهای زمان اجرا، کنترل کردن چیزهایی نظیر ماکسیمم و مینیمم تعداد نخ های کارکننده۱۱۴، تایم اوت۱۱۵ های جدی و غیره است. یک واسط مدیریت خط فرمان۱۱۶ها به این پارامترها اجازه می دهد که تعدیل شوند، و اسکریپت وی سی ال های جدید کامپایل شوند، بارگذاری شوند و فعال شوند، بدون راه اندازی دوباره ی شتاب دهنده.
به منظور کاهش تعداد سیستم کال۱۱۷ها در مسیر سریع به یک مینیمم، داده ی لاگ در حافظه ی مشترک ذخیره می شود، و عمل بازبینی، فیلتر کردن، فرمت کردن و نوشتن داده ی لاگ به دیسک به برنامه ی جدا نمایندگی می دهد]۳۱ [.

مطلب مرتبط :   und، die

۲-۳-۳ کارایی
درحالیکه وارنیش طراحی شد تا رقابت بین نخ ها به مینیمم کاهش یابد، ادعای نویسنده این است که کارایی آن به خوبی به کارگیری نخ پی۱۱۸های سیستم است.
به علاوه، یک پیاده سازی ضعیف ممکن است یک رقابت غیرضروری اضافه کند که به موجب آن کارایی محدود شود. بنابراین پیشنهاد عمومی اجرای وارنیش روی محیط های برپایه ی لینوکس یا یونیکس است]۱۹ [.

۲-۳-۴ شما این کار را اشتباه انجام می دهید
فکر می کنید که در هن
ر کارآمدی سرور ماهر شوید؟باز هم فکر کنید.
شما باور می کنید اگر من ادعا کنم الگوریتمی که به مدت ۴۶ سال به عنوان الگوریتم بهینه در کتاب ها بوده است و با جزییات فراوان توسط فرد نابغه ای مثل نوت۱۱۹ آنالیز شده باشد و در تمام رشته های علوم کامپیوتر جهان تدریس شده باشد، می تواند به مقدار ۱۰ بار سریع تر بهینه شود؟
حدود دو سال پیش من ارتباطم رو با بعضی از شرکت های خوب قطع کردم و شروع کردم به نوشتن درمورد یک تسریع دهنده اچ تی تی پی متن باز به نام وارنیش، که به صورت مقدماتی یک کش اچ تی تی پی است که جلوی وب سرورهای کند قرار می دهند. امروزه وارنیش توسط هر نوع وب سایتی اعم از فیس بوک، ویکیا۱۲۰و اسلش دات۱۲۱ سایت مبهمی که مطمئنا تا به حال اسمش را نشنیده اید، استفاده می شود.
حدود ۱۵ سال از سرپرستی کرنل بی اس دی آزاد می گذرد و اکنون من به کاربر ساده ای می مانم که دانش اندکی در مورد اتفاقات پشت سیستم کال ها دارد. یکی از مهم ترین دلایلم برای پذیرفتن پروپوزال وارنیش این بود که نشان دهم چگونه می توان یک الگوریتم سرور با کارایی بالا نوشت.
زیرا، به بیان کاملا واضح، اکثریت شما این کار را غلط انجام می دهید. نه تنها غلط به معنای ناقص بلکه به معنای اتلاف نیمی از کارایی یا حتی بیشتر.
اولین کاربر وارنیش یک روزنامه ی بزرگ نروژی به نام وی جی۱۲۲ بود ۱۲ ماشین درحال اجرای اسکویید خود را با ۳ ماشین درحال اجرای وارنیش جایگزین کرد. ماشین های اسکویید صد در صد اشغال بودند، در حالیکه ماشین های وارنیش ۹۰ درصد سی پی یوی آزاد برای تکان دادن دکمه های رقمی خود داشتند.
یک نسخه ی کوتاه از این داستان این است که وارنیش می داند که روی یک فلز برهنه اجرا نمی شود و تحت سیستم عاملی اجرا می شود که حافظه ی مجازی برپایه ماشین انتزاعی را فراهم می کند. برای مثال وارنیش مانع این حقیقت نمی شود که حافظه مجازی است و به صورت فعالانه از این قضیه بهره برداری می کند. ۳۰۰ گیگابایت ذخیره ی پشتیبان، حافظه روی یک ماشین با کمتر از ۱۶ گیگابایت رم۱۲۳ نگاشت می شود که این نمونه بارزی است. کاربر برای ۶۴ بیت فضای آدرس پول پرداخت کرده است و من برای استفاده از آن نمی ترسم.
یک تکلیف ویژه در کنار وارنیش، دور انداختن اشیا از درون کش است وقتی که مدت زندگی مجازی آن ها تمام شده است. این کار برای ساختمان داده هایی انجام می شود که می توانند کوچکترین شی کلیددار را از مجموعه کلی دریافت کنند.
یک مرور سریع از کاتالوگ پرش کارت باینری هیپ۱۲۴، نه تنها یک کارایی معامله از

دیدگاهتان را بنویسید