اینترنت، همانطور که امروز می شناسیم، “فتح” جهانی خود را در دهه ۹۰ آغاز کرد. کل پروتکل “وب” را می توان به عنوان یک بازدید کننده که یک سند از یک آدرس وب معین درخواست می کند خلاصه شود، با سیستم DNS و IP که آن درخواست را به رایانه مناسب ارسال می کند. این رایانه که میزبان صفحه وب درخواستی است، صفحه وب را به بازدیدکننده “خدمت” می کند.
صفحات وب اساسا اسناد HTML هستند. برای اینکه بتواند صفحات وب مختلف را به بازدیدکنندگان ارائه دهد، ماشین سرویس دهنده به یک برنامه سرور نیاز دارد. نرمافزارهایی مانند Nginx در مقابل Apache درخواستها را بررسی میکنند، آنها را تجزیه و تحلیل میکنند و سپس اسناد مربوطه را برای مشاهده در مرورگر بازدیدکننده تحویل میدهند.
نگینکس در مقابل آپاچی
Nginx و Apache وب سرورهای محبوبی هستند که برای ارائه صفحات وب به مرورگر کاربر استفاده می شوند. در مورد ما، از یک سایت وردپرس میزبانی شده است. آمار سریع:
- آپاچی ابتدا در سال ۱۹۹۵ منتشر شد و سپس Nginx در سال ۲۰۰۴ منتشر شد.
- هر دو توسط شرکت های بزرگ Fortune 500 در سراسر جهان استفاده می شوند.
- سهم بازار Nginx سالهاست که به طور پیوسته در حال رشد بوده است.
- در برخی موارد، Nginx از نظر عملکرد دارای مزیت رقابتی است.
آپاچی
از زمانی که آپاچی برای اولین بار منتشر شد، ابتدا به داخل آپاچی می پردازیم.
پس از CERN httpd تیم برنرز لی و HTTPd NCSA در چند سال اول اینترنت، آپاچی – اولین بار در سال ۱۹۹۵ منتشر شد – به سرعت بازار را تسخیر کرد و به محبوب ترین وب سرور جهان تبدیل شد. امروزه، هنوز در آن موقعیت بازار است، اما بیشتر به دلایل قدیمی. آپاچی توسط بنیاد آپاچی و تحت مجوز آپاچی در حال توسعه و نگهداری است .
دو داستان متفاوت در مورد چگونگی نامگذاری آپاچی وجود دارد. یک نسخه می گوید که این نام از میراث معروف بومیان آمریکا سرچشمه می گیرد، در حالی که نسخه دیگر می گوید که این نام یک جناس بر روی “سرور ناهموار” است که به دنبال یک سری از وصله های نرم افزاری است.
لینوکس
سهم بازار بزرگ آپاچی تا حدی به این دلیل است که با تمام توزیعهای اصلی لینوکس، مانند Red Hat/Centos و Ubuntu از پیش نصب شده است.
یکی از نمونههای نقش مهم آپاچی در دنیای لینوکس این است که نام فرآیند سرور آن HTTPd است که Apache را مترادف با نرمافزار وب سرور میکند.
علاوه بر اینکه اولین بازیکن جدی در بازار وب سرور است، بخشی از گسترش آپاچی به دلیل سیستم پیکربندی و فایل htaccess آن است .
htaccess
آپاچی از .htaccess برای پیکربندی خود استفاده می کند. آموزش های زیادی در مورد نحوه پیکربندی، ویرایش و کار با این فایل وجود دارد، زیرا این فایل انعطاف پذیری زیادی را در پیکربندی نحوه رسیدگی به درخواست های دریافتی آپاچی فراهم می کند. برخی از نمونهها عبارتند از: قوانین تغییر مسیر مختلف ، حداکثر اندازه فایل آپلود ، بازنویسی URL، محدودیتهای حافظه ، حفاظت از دایرکتوری (htpasswd)، سرصفحههای منقضی ، سرصفحههای کنترل حافظه پنهان ، سرصفحههای رمزگذاری ، کوکیها، دستکاری رشتههای جستجو.
از طرف دیگر، Kinsta از Nginx استفاده می کند که از فایل های htaccess. پشتیبانی نمی کند. با این حال، تنظیمات و قوانین فایلهای htaccess. شما را میتوان به راحتی به سینتکس قانون بازنویسی Nginx ترجمه کرد.
یکی از “مزایای” اصلی آپاچی این است که در ریشه سرور – دایرکتوری اصلی وب سایت – هر سطح یا دایرکتوری در درخت دایرکتوری می تواند فایل .htaccess خود را با پیکربندی خاص خود داشته باشد.
برای ارائه دهندگان میزبانی مشترک ، این یک رویا است زیرا آنها می توانند روشی را برای صدها کاربر در یک دستگاه ارائه کنند تا نحوه سرویس دهی وب سایت های خود را بدون تأثیرگذاری بر سایرین، پیکربندی کنند. مشتریان می توانند بسیاری از جزئیات را در یک محیط میزبانی مشترک محدود پیکربندی کنند، در حالی که هرگز به پیکربندی سرور جهانی دست نزنند.
همانطور که اسناد رسمی می گوید:
“به طور کلی، شما فقط زمانی باید از فایل های .htaccess استفاده کنید که به فایل پیکربندی سرور اصلی دسترسی ندارید.”
با این حال، این انعطافپذیری به قیمت بهای عملکرد تمام میشود .
هر بار که فایلهای .htaccess فعال میشوند، آپاچی باید کل درخت دایرکتوری را از URL یا فایل درخواستی در تمام سطوح بالاتر تا دایرکتوری ریشه سرور طی کند و سپس آنها را برای هر درخواست بارگذاری کند. سپس باید این فایل ها را پردازش کرده و خود را برای هر یک از دایرکتوری های پیکربندی شده به این روش پیکربندی مجدد کند.
با وب سایت های وردپرس، همه چیز می تواند واقعا پیچیده شود. یک وب سایت معمولی وردپرس می تواند صدها درخواست از دایرکتوری های مختلف داشته باشد.
از /wp-content/uploads/yyyy/mm نوع dir، معمولاً چندین درخواست در بارگذاری یک صفحه دارد که اغلب دایرکتوریهای ماهانه متفاوتی را تشکیل میدهند. سپس منابع استاتیک /wp-content/themes/parent-theme، /wp-content/themes/child-theme منابع وجود خواهد داشت: این منابع شامل جاوا اسکریپت، فایلهای css ، تصاویر میشوند.
سپس /wp-content/plugins با فایل های ثابت بارگذاری شده از ده ها زیرشاخه پلاگین نیز وجود خواهد داشت. برای هر یک از این منابع، آپاچی باید کل درخت خود را طی کند تا پیکربندی را جستجو کند.
یک تجزیه و تحلیل نشان داده است که یک تنظیم معمولی وردپرس، که برای وبسایتها در میزبانهای مشترک رایج است، شامل ۴۲ اجرای .htaccess و ۲۴۹ نگاه جداگانه برای فایل htaccess است.
این فقط در سطح وب سرور است. بازدیدکننده هنوز باید منتظر باشد تا فرآیند PHP کل پشته فراخوانی وردپرس را اجرا کند تا کوئری پایگاه داده را ایجاد کند و آن را به MySQL بدهد تا صفحه وب را جمع کند و برای بازدیدکننده ارسال کند.
ماژول ها
یکی دیگر از مواردی که باعث محبوبیت آپاچی شد، سیستم ماژول پویا آن است .
ماژول ها – به عنوان ویژگی که به کاربران اجازه می دهد تا عملکرد وب سرور را گسترش دهند – در Nginx و Apache وجود دارند. آپاچی به کاربران این امکان را می دهد که ماژول ها را پس از نصب و استقرار وب سرور نصب کنند و سپس در صورت نیاز آنها را فعال/غیرفعال کنند. توزیعهای مبتنی بر دبیان دارای دستوراتی هستند که امکان فعال و غیرفعال کردن این ماژولها را بدون نیاز به ویرایش فایلهای پیکربندی فراهم میکنند: a2enmod و a2dismod.
لیست رسمی ماژول هایی که به عنوان بخشی از توزیع استاندارد آپاچی ارائه می شوند در اینجا آمده است و شامل مواردی از فشرده سازی، رمزگذاری، ثبت نام، تغییر مسیر تا موارد پیشرفته تر مانند ویرایش درخواست ها و پاسخ ها با نحو پیشرفته است.
Nginx
Nginx (همچنین به عنوان nginx یا NGINX نوشته شده است)، در سال ۲۰۰۴ وارد صحنه شد، زمانی که برای اولین بار توسط توسعه دهنده روسی ایگور سیسوف به صورت عمومی منتشر شد . همانطور که اوون گرت، مدیر پروژه Nginx گفت :
Nginx به طور خاص برای رفع محدودیت های عملکرد سرورهای وب آپاچی نوشته شده است.
این سرور برای اولین بار به عنوان یک ابزار مقیاس پذیر برای وب سایت rambler.ru در سال ۲۰۰۲ ایجاد شد. این سرور در دو نسخه ارائه می شود: منبع باز، با مجوز نوع BSD ، و Nginx Plus ، با پشتیبانی و ویژگی های سازمانی اضافی.
پس از انتشار، Nginx بیشتر برای ارائه فایلهای استاتیک و بهعنوان متعادلکننده بار یا پروکسی معکوس در مقابل نصبهای آپاچی استفاده شد. با تکامل وب و نیاز به کاهش آخرین قطره سرعت و کارایی استفاده از سخت افزار با آن، وب سایت های بیشتری شروع به جایگزینی کامل Apache با Nginx کردند، همچنین به لطف یک نرم افزار بالغ تر.
در مارس ۲۰۱۹، Nginx Inc توسط F5 Networks به مبلغ ۶۷۰ میلیون دلار خریداری شد . در آن لحظه، همانطور که Techcrunch گزارش می دهد، سرور Nginx «۳۷۵ میلیون وب سایت با حدود ۱۵۰۰ مشتری پولی» را تامین می کرد.
بر اساس دادههای w3techs ، سهم بازار Nginx به طور پیوسته در حال رشد بوده و آپاچی را بیرون میکشد و آن را از جایگاه اول پایین میآورد.
این داده ها مربوط به کل وب سرورهای جهانی است، اما اگر نمونه ای از یک میلیون وب سایت برتر را در نظر بگیریم، Nginx مدتی است که وجود دارد.
به نظر می رسد Google Search Trends این واقعیت را نیز منعکس می کند.