فهرست محتوا
وبسرورها یکی از مهمترین عناصر دنیای اینترنت هستند که بهعنوان واسطهای میان سرورها و کلاینتها (مرورگرها و…) عمل کرده و وظیفه اصلی آنها پردازش درخواستهای HTTP دریافتی و تحویل محتوای صفحات وب به کاربران میباشد. امروزه وبسرورهای مختلفی در بازار وجود دارد که از میان آنها میتوان به آپاچی، انجینایکس، IIS و لایتاسپید اشاره کرد. آپاچی (Apache نام قبیلهای بومی در آمریکا میباشد.) یکی از معروفترین وبسرورهای حال حاضر در دنیا میباشد که متنباز و رایگان بوده و طبق آخرین آمار وبسایت Netcraft تا لحظه نگارش این مقاله حدود ۲۱ درصد از بازار وبسرورها را به خود اختصاص داده است. ما در این مقاله بهصورت کامل دررابطهبا این وبسرور و همچنین تاریخچه، ویژگیها، نحوه عملکرد، مزایا و معایب آن صحبت کرده و به مقایسه آپاچی و وبسرورهای انجینایکس و تامکت خواهیم پرداخت.
وبسرور آپاچی چیست؟
آپاچی (نام رسمی آن Apache HTTP Server است.) وبسرور رایگان، محبوب و متنبازی است که توسط لینوکس (اوبونتو، سنتاواس و…)، مکاواس، سیستمعاملهای مبتنی بر ( و و…) و همچنین زبانهای برنامهنویسی مانند PHP و Python و Perl و Ruby و و C و پشتیبانی کرده و کاربران میتوانند بهراحتی CMSهایی مانند وردپرس و دروپال را بر روی آن نصب کنند.
توسعه داده شده و وظیفه آن تحویل محتوای وب موردنظر کاربران از طریق اینترنت میباشد. Apache یکی از امنترین و قدیمیترین وبسرورهای موجود در بازار است که اولین نسخه آن در سال ۱۹۹۵ منتشر شد و بیشتر نیز مناسب وبسایتهای با ترافیک کم تا متوسط میباشد. این وبسرور از سیستمعامل ویندوز، توزیعهای مختلفتصویری از پیشخوان مدیریت وبسرور آپاچی
علاوه بر این، وبسرور آپاچی دارای مزایا و قابلیتهایی متعددی میباشد که همین مسئله آن را تبدیل به گزینه مناسبی برای سرویسهای هاستینگ مانند سرور مجازی، سرور اختصاصی و… میکند. Apache همچنین از هر دو پروتکل و پشتیبانی کرده و در ارائه صفحات وب داینامیک و به مرورگرها عملکرد خوبی دارد و درمجموع نیز از انعطافپذیری بالایی برخوردار بوده و از یک معماری ماژولار بهره میبرد. هر (ماژولهای مرتبط با کشینگ، احراز هویت، رمزنگاری و…) در آپاچی برای هدف خاصی ایجاد شده و این وبسرور درکل این امکان را به کاربران و مدیران سیستم میدهد تا تنها از ماژولهایی استفاده کنند که واقعا به آنها نیاز دارند که این عمل باعث بهینهسازی مصرف منابع و همچنین بهبود عملکرد وبسایت و سرور میشود. آپاچی برای سالیان سال از لحاظ محبوبیت در رتبه اول قرار داشت اما اخیرا جای خود را به وبسرور قدرتمند و پرسرعت انجینایکس داده است.
تاریخچه آپاچی
تاریخچه آپاچی به زمانی بازمیگردد که در آن رابرت مککول به همراه گروهی از افراد توسعهدهنده در NCSA (مرکز ملی کاربردهای ابر رایانش) مشغول توسعه وبسروری به نام NCSA HTTPd بودند. بااینحال پروژه ساخت این وبسرور به دلیل عدم ادامه همکاری مککول و سایر محدودیتهایی که وجود داشت، ادامه پیدا نکرد و همین مسئله باعث شد تا او و سایر توسعهدهندگان گروهی به نام Apache Group را ایجاد کنند و در واقع آنها با انجام این کار به دنبال ایجاد جایگزین مناسبی برای NCSA HTTPd بودند. اولین نسخه وبسرور آپاچی یعنی Apache 1.0 در تاریخ ۱ دسامبر سال ۱۹۹۵ توسط رابرت مککول توسعه داده شد. Apache به دلیل بودن و پایداری بالا توانست در مدت زمان کوتاهی تبدیل به محبوبترین وبسرور در بازار شود. اعضای Apache Group در سال ۱۹۹۹ بهمنظور جذب سرمایه موردنیاز خود، بنیاد نرمافزاری آپاچی را ایجاد کردند و نسخه بعدی آپاچی (Apache 2.0) نیز در سال ۲۰۰۲ منتشر شد. این نسخه نسبت به Apache 1.0 از عملکرد بسیار بهتری برخوردار بود و از پروتکلهای مختلفی نیز پشتیبانی میکرد. آپاچی در طول این سالها بهصورت مداوم در حال توسعه و تغییر بوده و امروزه نیز میلیونها وبسایت از آن بهعنوان وبسرور استفاده میکنند.
آپاچی چگونه کار میکند؟
وبسرور در واقع نرمافزاری است که بر روی یک سرور فیزیکی اجرا شده و وظیفه آن ایجاد یک ارتباط دوطرفه میان کلاینتها (کاربران) و سرورها میباشد. توجه داشته باشید که هریک از درخواستها تنها به سمت پورت مخصوص به خود میرود. بهعنوانمثال پروتکلهای HTTP و HTTPS به ترتیب از پورتهای ۸۰ و ۴۴۳ استفاده میکنند.
راهاندازی وبسرور: وبسرور بهصورت دستی یا خودکار شروع به کار کرده و یک فرایند والد (Parent Process) ایجاد میکند.
بررسی دستورالعملها: Apache دستورالعملهای فایلهای پیکربندی مانند httpd.conf و htaccess. را دریافت کرده و پس از تجزیهوتحلیل آنها، منتظر میماند تا کلاینتها درخواستهای خود را ارسال کنند.
ایجاد درخواست: بهمحض اینکه کاربر آدرس اینترنتی موردنظر خود را در نوار جستجو تایپ میکند، مرورگر یک درخواست HTTP ایجاد کرده و آن را به سمت وبسرور آپاچی میفرستد.
پردازش درخواست: فرایند والد بهمحض دریافت درخواست، یک فرایند فرزند (Child Process) ایجاد میکند که وظیفه آن پردازش تمام اطلاعات مرتبط با درخواست HTTP (منبع ارسال درخواست، هدرهای HTTP و…) است. توجه داشته باشید که فرایند فرزند تمام دستورالعملهای موردنیاز خود را از فرایند والد دریافت میکند.
ارسال پاسخ: فرایند فرزند محتوایی که کاربر به آن نیاز دارد را از سرور دریافت کرده و آن را در قالب یک پاسخ به سمت مرورگر ارسال میکند و در پایان نیز کاربر میتواند محتوای موردنظر خود را مشاهده کند.
مزایای وبسرور آپاچی
انعطافپذیری و
بالا: کاربران آپاچی میتوانند قسمتهای مختلف آن را به دلخواه و با توجه به نیازهای خود پیکربندی کنند.پشتیبانی از پلتفرمهای مختلف: آپاچی از سیستمعاملها، زبانهای برنامهنویسی و CMSهای مختلفی پشتیبانی میکند.
امکان ادغام با سایر پلتفرمها: شما میتوانید بهآسانی آپاچی را با CMSها، اپلیکیشنسرورها (Tomcat ،JBoss و…)، پایگاههای داده (MySQL و و Oracle و…)، قابلیتهای امنیتی (SSL و IDS و و…)، فریمورکها و زبانهای برنامهنویسی متعددی ادغام کنید.
استفاده و راهاندازی تقریبا آسان: استفاده و راهاندازی آپاچی بهویژه برای کسانی که با اصول اولیه مدیریت وبسرور آشنا هستند، آسان میباشد. علاوه بر این، این وبسرور دارای منابع آموزشی آنلاینی متعددی ازجمله Apache Documentation است که در صورت نیاز میتوانید از آنها استفاده کنید.
مجهز به ابزارهای مختلف: Apache دارای طیف گستردهای از ابزارها، قابلیتها و ماژولهای مختلف میباشد که میتوانید بهصورت رایگان از آنها استفاده کنید. mod_rewrite و mod_ssl و mod_proxy و mod_cache و mod_security ازجمله مهمترین ماژولها و ابزارهای این وبسرور هستند.
سرعت و عملکرد قابلقبول: آپاچی درمجموع از سرعت و عملکرد خوبی برخوردار است اما بااینحال سرعت آن در مقایسه با وبسرورهای مدرنی مانند انجینایکس و لایتاسپید پایین میباشد.
انتشار مداوم: نسخههای آپاچی معمولا در بازههای زمانی کوتاه منتشر میشوند و Apache 2.4.57 نیز آخرین نسخه Stable این وبسرور تا لحظه نگارش این مقاله میباشد که در تاریخ ۷ آوریل ۲۰۲۳ روانه بازار شد.
متنباز و رایگان بودن: آپاچی یک وبسرور کاملا رایگان و متنباز است و این یعنی کاربران میتوانند قسمتهای مختلف آن را با توجه به نیازهای خود تغییر داده و هر تعداد کپی که میخواهند از آن تهیه کنند.
امنیت بالا: آپاچی از پروتکلهای امنیتی و همچنین قابلیتهای احراز هویت و کنترل دسترسی مختلفی پشتیبانی کرده و درمجموع یکی از امنترین وبسرورها در دنیا میباشد.
سازگاری با CDNها: شما میتوانید بهراحتی آپاچی را با CDNها ادغام کنید که این امر باعث افزایش سرعت تحویل محتوا به کاربران نهایی و کاهش فشار بر روی سرور و وبسرور میشود.
معایب وبسرور آپاچی
نامناسب برای سایتهای پرترافیک: آپاچی دارای معماری
بوده و نمیتواند هزاران درخواست را بهصورت همزمان مدیریت کند و به همین دلیل چندان مناسب وبسایتهای پرترافیک نیست.مصرف منابع بالا: آپاچی به دلیل معماری رویداد-محور خود منابع زیادی مصرف میکند که البته با پیکربندی صحیح وبسرور میتوانید تا حدی مصرف آن را کاهش دهید.
پیکربندی پیچیده: آپاچی دارای ماژولها و تنظیمات متعددی میباشد که همین امر پیکربندی آن را بهخصوص برای افرادی که دانش فنی چندانی ندارند، دشوار میکند.
آسیبپذیریهای امنیتی: اشتباه در پیکربندی آپاچی باعث افزایش آسیبپذیری آن در برابر حملات سایبری میشود. بنابراین حتما در هنگام پیکربندی وبسرور خود بسیار دقت کنید.
آشنایی با ویژگیهای آپاچی
سازگاری با HTTP/2: آپاچی از HTTP/2 پشتیبانی میکند که نسبت به HTTP/1.1 عملکرد بهتری داشته و از میان مهمترین ویژگیهای آن میتوان به کاهش
و افزایش سرعت انتقال دادهها اشاره کرد.پشتیبانی از پروتکل FastCGI: این پروتکل باعث بهبود ارتباط میان وبسرورها و سایر برنامه و اسکریپتها میشود و آپاچی دارای ماژولی به نام mod_fastcgi است که با استفاد از آن میتوانید این پروتکل را فعال کنید.
پروکسی معکوس: آپاچی دارای ماژولی به نام mod_proxy است که با فعالسازی آن میتوانید یک پروکسی معکوس ایجاد کنید.
لود بالانسینگ: آپاچی دارای ماژولی به نام mod_proxy_balancer است که از قابلیت لود بالانسینگ پشتیبانی میکند.
بازنویسی URL: با استفاده از ابزار mod_rewrite آپاچی میتوانید URLهای وبسایت خود را بهآسانی بازنویسی کنید.
قابلیتهای امنیتی: آپاچی دارای ماژولهای امنیتی متعددی (mod_authz_host و mod_evasive و…) بوده و میتوان آن را با سایر ابزارهای امنیتی (ModSecurity و OWASP و…) ادغام کرد.
فشردهسازی محتوا: آپاچی دارای ماژولهای فشردهسازی مختلفی است که استفاده از آنها باعث کاهش مصرف پهنایباند و درنتیجه بهبود عملکرد وبسایت میشود. mod_deflate و mod_gzip و mod_brotli از جمله مهمترین ماژولهای فشردهسازی این وبسرور هستند.
ایندکسینگ خودکار: با استفاده از ماژول mod_autoindex آپاچی میتوانید بهصورت خودکار فایلها و فولدرهای موردنظر خود را ایندکس کنید.
فایل htaccess: فایلی در وبسرور آپاچی است که با استفاده از آن میتوانید تغییراتی را در پیکربندی سرور ایجاد کرده و آنها را بر روی دایرکتوریهای وبسایت خود اعمال کنید.
سازگاری با IPV6: وبسرور آپاچی بهصورت کامل با پروتکل
سازگار بوده و در صورت نیاز میتوانید آن را فعال کنید.انسداد پهنای باند: قابلیت انسداد پهنای باند (Bandwidth Throttling) این امکان را به شما میدهد تا دررابطهبا نرخ انتقال داده محدودیتهایی را ایجاد کنید. mod_bw و mod_ratelimit از جمله ماژولهایی هستند که برای انجام این کار مورد استفاده قرار میگیرند.
مقایسه آپاچی و انجینایکس
آپاچی و انجینایکس دو وبسرور معروف حال حاضر در دنیا میباشند که تا تاریخ ژانویه ۲۰۲۳، به ترتیب ۲۱ و ۲۶ درصد از سهم بازار را به خود اختصاص دادهاند. انجینایکس سبکتر و سریعتر از آپاچی بوده و برخلاف آن دارای معماری رویداد-محور و متقارن میباشد و میتواند بهصورت همزمان هزاران درخواست را مورد پردازش قرار دهد و درمجموع نیز نسبت به آپاچی منابع کمتری مصرف میکند. آپاچی بیشتر مناسب وبسایتهایی با ترافیک کم و متوسط بوده و Nginx نیز درمجموع برای هر نوع وبسایتی مورد استفاده قرار میگیرد.
مقایسه آپاچی و تامکت
تامکت (نام رسمی آن Apache Tomcat است.) بهمانند آپاچی، وبسرور محبوب و متنبازی است که توسط بنیاد نرمافزار آپاچی توسعه داده میشود. نقطه قوت آپاچی ارائه محتوای وب استاتیک (تصاویر و فایلهای CSS و HTML و…) میباشد اما تامکت برخلاف آن نوعی اپلیکیشنسرور بوده و بیشتر با هدف سرویسدهی به اپلیکیشنهای مبتنی بر جاوا طراحی شده است و درمجموع دررابطهبا ارائه محتوای وب به مرورگرها ضعیفتر از آپاچی عمل میکند. وبسرور آپاچی با طیف گسترهای از زبانهای برنامهنویسی سازگار است اما تامکت بیشتر مناسب فناوریهای مبتنی بر جاوا مانند Java Servlet و JavaServer Pages و JMS و Java EL میباشد. به این نکته توجه داشته باشید که شما میتوانید بهآسانی این دو وبسرور را باهم ادغام کنید.
سؤالهای متداول
بهترین جایگزینهای آپاچی کدامند؟
وبسرورهای انجینایکس، لایتاسپید، تامکت، Lighttpd ،IIS و Caddy از جمله مهمترین جایگزینهای آپاچی هستند که هرکدام دارای مزایا و معایب مخصوص به خود میباشند.
آیا آپاچی امن است؟
بااینکه هیچکدام از وبسرورها کاملا در برابر تهدیدات سایبری امن نیستند اما آپاچی یکی از امنترین وبسرورهای موجود در بازار میباشد. بااینحال در هنگام پیکربندی آن باید بسیار دقت کنید زیرا حتی یک اشتباه کوچک ممکن است امنیت سرور و وبسایت شما را به خطر بیندازد.
کدام شرکتها از آپاچی استفاده میکنند؟
امروزه شرکتهای معروفی از وبسرور آپاچی استفاده میکنند که از میان آنها میتوان به فیسبوک، گوگل، ادوبی، وردپرس، نتفلکیس، ناسا و لینکدین اشاره کرد.
منابع: Hostinger ،Techtarget و Greengeeks