Serverآموزشمفاهیم پایه

Apache چیست؟ مروری عمیق بر وب سرور آپاچی

Apache یک نرم افزار وب سرور رایگان و منبع باز (open-source) است که 40% وب سایت های دنیا به وسیله آن راه اندازی شده اند. نام رسمی آن Apache HTTP Server است و توسط بنیاد نرم افزاری آپاچی نگهداری و توسعه یافته است.

این نرم افزار به صاحبان وب اجازه می دهد تا محتوای خود را درون اینترنت قرار دهند – به همین دلیل آن را وب سرور استمی نامند. یکی از قدیمی ترین و قابل اطمینان ترین سرور های وب سایت است، که اولین نسخه آن در حدود 20 سال پیش یعنی در سال 1995 منتشر شد.

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

وب سرور چیست؟

سرورهای پرونده (File servers)، سرورهای پایگاه داده (database servers)، سرورهای پستی (mail servers) و وب سرور ها، هر کدام از یک نرم افزار سرور متفاوت استفاده می کنند. هر کدام از این برنامه ها می توانند به فایل های موجود در سرور فیزیکی دسترسی داشته باشند و برای اهداف مختلفی استفاده شوند.

وظیفه وب سرور این است که وب سایت ها را در اینترنت قرار دهد. برای رسیدن به این هدف، نقش یک واسطه را میان سرور و client بازی می کند. محتوا را به درخواست کاربر از سرور می گیرد و به وب تحویل می دهد.

بزرگترین چالش یک وب سرور این است که به طور همزمان به درخواست چند کاربر متفاوت وب جواب دهد – هر کدام از کابران، درخواست صفحات متفاوتی را دارند. وب سرورها فایل هایی را که به زبان های مختلف نوشته شده اند مانند PHP، Python، Java و … را پردازش می کنند.

آن ها را تبدیل به فایل های استاتیک HTML می کنند و در مرورگر کاربران اینترنت قرار می دهند. زمانی که کلمه وب سرور را می شنوید، از آن به عنوان ابزاری برای ارتباط مناسب سرور و مشتری یاد می کنید.

وب سرور Apache چگونه کار می کند؟

هرچند آپاچی را یک وب سرور می نامیم، اما یک سرور فیزیکی نیست، نرم افزاری است که بر روی سرور اجرا می شود. وظیفه آن برقراری ارتباط میان سرور و بازدید کنندگان وب سایت (Firefox, Google Chrome, Safari و غیره) است. در حالی که فایل ها را میان آن ها جا به جا می کند (ساختار client-server). آپاچی یک نرم افزار کراس پلتفرم (چند سکویی) است، بر همین اساس در هر دو سرور ویندوز و Unix کار می کند.

زمانی که یک کاربر می خواهد صفحه ای را در سایت شما لود کند، برای مثال، “صفحه اصلی” (homepage) یا “درباره ما”، مرورگر آنها درخواستی را به سرور شما ارسال می کند و آپاچی پاسخی را همراه با فایل های درخواست شده (متن، عکس و …) برمی گرداند. ارتباط سرور و client (مشتری) از طریق پروتکل HTTP و نرم افزار Apache که مسئول یک ارتباط راحت و امن میان دو دستگاه است برقرار می شود.

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

مطالعه بیشتر
15 نکته مهم درمورد وب سرور آپاچی

Apache در مقایسه با دیگر وب سرورها

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

Apache  و NGINX

مقایسه آپاچی و nginx

Nginx که Engine-X  خوانده می شود، یک وب سرور نسبتا جدید است که برای اولین بار در سال 2004 منتشر شد و تا به امروز، محبوبیت زیادی در میان وب سایت داران پیدا کرده است. Nginx به منظور حل مشکل ck10 ساخته شده بود، به این معنی است که یک وب سرور نمی تواند در یک زمان پاسخگوی 10,000 ارتباط همزمان باشد. در مقایسه Nginx با آپاچی می توان به موارد زیر اشاره کرد:

1.از آن جا که آپاچی دارای ساختار مبتنی بر موضوع است، صاحبان وب سایت های با ترافیک بالا ممکن است در عملکرد خود دچار مشکل شوند. Nginx یکی از وب سرورهایی است که مشکل c10k را حل کرده است و در این زمینه بسیار موفق بوده است.

2. Nginx دارای یک ساختار رویداد محور است که برای هر درخواست یک پردازش جدید نمی سازد. در مقابل، هر در خواست را با یک موضوع بررسی می کند. این فرآیند ارشد، فرآیندهای کاری متعددی را مدیریت می کند که پردازش واقعی درخواست ها را انجام می دهند. مدل رویداد محور Nginx درخواست کاربران را به شیوه های مختلف در میان فرآیندهای کاری تقسیم می کند، در نتیجه منجر به مقیاس پذیری بهتر می شود.

3. اگر نیاز است تا یک وب سایت با ترافیک بالا را مدیریت کنید، Nginx گزینه بسیار خوبی است، در حالی که این کار را با منابع ساده ای انجام می دهد. بدون علت نیست که در سایت هایی با ترافیک بالا مانند Netflix, Hulu, Pinterest,  و Airbnb استفاده می شود.

4. هر چند برای پخش کننده های کوچک و متوسط Apache مزایای بیشتری نسبت Nginx دارد، مانند پبکربندی ساده، ماژول های زیاد و مناسب برای محیط های ابتدایی.

Apache و Tomcat

مقایسه آپاچی و تام کت

Tomcat نوعی وب سرور است که توسط بنیاد نرم افزاری آپاچی توسعه داده شده است، نام رسمی آن Apache Tomcat است. یک سرور HTTP است، هر چند  برنامه های java را به جای وب سایت های static اجرا می کند. HTTP می تواند مشخصه های متفاوتی از جاوا را اجرا کند مانند Java Servlet, JavaServer Pages (JSP), Java EL, و WebSocket..

1. Tomcatبه طور اختصاصی برای برنامه های جاوا ساخته شده است، در حالی که Apache برای اهداف کلی سرور HTTP ایجاد شده است. می توانید از Apache در زبان های مختلف برنامه نویسی ( PHP, Python, Perl و …) همراه با ماژول های مناسب ( mod_php, mod_python, mod_perl, و …) استفاده کنید.

2. هر چند که از Tomcat هم می توانید برای اجرای صفحات استاتیک استفاده کنید، اما در مقایسه با سرور آپاچی کارایی کمتری دارد. برای مثال، Tomcat ماشین مجازی جاوا و سایر کتابخانه های مربوط به جاوا را که نیازی به آنها در اکثر وب سایت ها نیست بارگذاری مجدد می کند.

3. Tomcat نسبت به دیگر وب سرورها قابلیت تنظیم کمتری دارد. برای مثال، برای اجرای وردپرس، بهترین انتخاب یک سرور HTTP با هدف کلی است مانند Apache یا NGINX

مزایا و معایب Apache

وب سرور آپاچی می تواند یک انتخاب عالی برای اجرای یک وب سایت پایدار و پلتفرم همه کاره باشد. هر چند معایبی نیز به همراه دارد که خوب است از آن ها آگاه باشید:

مزایا:

  • منبع باز، رایگان حتی برای اهداف تجاری
  • نرم افزاری قابل اطمینان و پایدار
  • به روزسانی مداوم، تنظیمات امنیتی منظم
  • تغییر پذیر به دلیل ساختار ماژول محور
  • تنظیم ساده، سازگار با افراد مبتدی
  • کراس پلتفرم (در هر دو سرور ویندوز و Unix کار می کند)
  • بدون نیاز به هیچ تنظیمات خاصی با سایت های وردپرسی کار می کند
  • جامعه بزرگ و پشتیبانی راحت و در دسترس برای هر مشکلی

معایب

  • مشکل عملکردی در وب سایت های با ترافیک بالا
  • گزینه های پیکربندی زیاد می تواند باعث آسیب پذیر شدن امنیت شود

بنابراین Apache چیست؟

آپاچی یکی از محبوب ترین وب سرورهاست که به شما اجازه می دهد تا وب سایتی امن را بدون تنظیمات گیج کننده زیاد اجرا کنید و مناسب مشاغل کوچک و کارآفرینانی است که می خواهند در دنیای وب حضور داشته باشند.

می توانید یک وب سایت وردپرسی را بدون هیچ تنظیمی بر روی سرور آپاچی نصب کنید. به علاوه، Apache با بسیاری از سیستم های مدیریت محتوای (CMS) (Joomla, Drupal, و …)، فریم ورک frameworks (Django, Laravel و …) و زبان های برنامه نویسی مختلف کار می کند. همچنین گزینه مناسبی برای پلتفرم های هاستینگ، مانند VPS و هاست مشترک می باشد.

نوشته های مشابه

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

نشانی ایمیل شما منتشر نخواهد شد.

دکمه بازگشت به بالا