لوگو گروه تبلیعاتی فورسی(4C) - 4C Advertising Logo

گروه تبلیغاتی فورسی(4C)

گروه تبلیغاتی فورسی(4C) ارائه دهنده انواع خدمات مشاور تبلیغاتی، برنامه نویسی و طراحی سایت،طراحی و اجرا طرح های گرافیکی، چاپ، هاستینگ، پنل ارسال پیام کوتاه انبوه و بسیاری از خدمات دیگر جهت بهتر دیده شدن برند شما می‌باشد.
می‌توانید برای کسب اطلاعات بیشتر و کسب مشاوره رایگان با ما تماس حاصل فرمایید.

09203189087
Info@4CGroup.Co
FourCGroupBot@
4C_Group

 

آپاچی (Apache) چیست ؟
زمان تخمینی مطالعه:‌ 10 دقیقه

آپاچی apache

آپاچی (Apache) چیست ؟
زمان تخمینی مطالعه:‌ 10 دقیقه

وب سرور آپاچی (Apache) گسترده ترین و محبوب ترین سرور HTTP در دسترس بر روی اینترنت می باشد که از زبان های  PHP و Perl پشتیبانی می کند و روی بیشتر سیستم عامل های قابل اجرا است  یک برنامه free Open Source است که با سرور های وب برای اداره کردن درخواستها و تقاضاهای وب و منابع به کار می رود .

Apache HTTP Server روی سیستم عامل Unix مانند Linux یا BSD اجرا می شود همچنین می تواند روی Windows مایکروسافت و دیگر سیستم عامل ها یا Platform ها اجرا شود . یک سرور با خصوصیات منحصر به فرد با add-on های قدرتمند که به صورت مجانی در دسترس هستند .

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

Web Server چیست؟

بعد از آنکه معنی Apache چیست ؟ را متوجه شدید بد نیست مفهوم Web Server را هم برای شما شرح دهیم.

یک Web Server مثل قسمت پذیرش یک رستوران است.وقتی وارد رستوران می شوید فردی در قسمت پذیرش به شما سلام می کند،اطلاعات رزرو شما را بررسی می کند و شما را به میزتان هدایت می کند.دقیقاً مانند پذیرش رستوران ،Web Server صفحه ای را که درخواست داده اید برسی می کند و آن را برای شما فراهم می کند تا از آن لذت ببرید.البته Web Server تنها Host شما نیست بلکه Server شما نیز هست.

وقتی صفحه ای را که درخواست داده بودید پیدا کرد، آن را برای شما آماده هم می کند.یک Web Server مثل Apache یک سر مهماندار رستوران هم می تواند باشد.این امکان را برای شما فراهم می کند تا بتوانید با وبسایت ارتباط داشته باشید ، درخواست های شما را پیگیری می کند، اطمینان حاصل می کند که دیگر کارکنان (Modules) آماده ی سرویس دادن به شما باشند،همچنین می تواند یک پیش خدمت باشد و میز را پاک کند(Memory,Cash,Modules) و آن را برای مشتریان جدید آماده کند.
پس اساساً Web Server یک نرم افزار است که درخواست شما را برای دسترسی به یک وبسایت دریافت می کند و یک بررسی امنیتی روی درخواست HTTP شما اجرا می کند و شما را به وبسایتی که می خواستید هدایت می کند.با توجه به صفحه ی وبسایتی که شما درخواست کرده اید،وبسایت ممکن است از Server بخواهد که Module های بیشتری اجرا کند،سپس درخواست شما را اجرا می کند و شما می توانید صفحه ای را که می خواستید ببینید. جالب است نه؟

دروپال dropall

تاریخچه وب سرور Apache

Apache Web Server بیشترین استفاده را روی اینترنت دارد بیشتر از 50 درصد از وب سایتهای موجود از  Apache استفاده میکنند. این محصول توسط گروهی عرضه می شود که به Apache Group موسوم اند و این گروه پروژه Apache Http Server Project را اداره می کنند این گروه سخت درکارند تا با ارائه محصولاتی با Configuration بالا وانعطاف پذیری خوب عرضه نمایند.

اولین ورژن Apache درApril سال 1995 که ورژن 0.6.2 است خارج شد و آخرین ورژن موجود 2.4.23 است. تا قبل از آپاچی یک وب سرور وجود داشت بنام NCSA Httpd 1.3 که در واقع اولین ورژن آپاچی از این وب سرو نشات گرفته است و در واقع پایه و اساس آپاچی بود ولی آپاچی به سرعت رشد کرد ودرmay-june سال 1995 گروه آپاچی ورژن 0.7 را تولید کردند اما بعد از مدتی گروه اپاچی متوجه شد که این وب سرور  نیاز به معماری جدید دارد و با یک معماری جدید محصول بعدی وارد بازار شد درسال 1995 (Auguest) این محصول ورژن 0.8.8 آپاچی بود.

ورژن جدید با معماری جدید شامل ساختارهای ماژولار و همچنین بسط توابع API وهمچنین یک سری خصوصیات سیستم عامل از قبیل POOL-based memory  allocatcon و new forking process model بود و این معماری جدید گسترش یافت تا به آخرین ورژن ان یعنی 2.4.23 رسید، البته با ورود این وب سرور جدید وب سرور قدیمی Ncsa http4 بازنشسته شد و این نسل جدید شروع به کار کرد.

بسته نرم افزاریApache از نظر معماری وکاربرد به چهارلایه زیر تقسیم شده است:

آپاچی apache

operating system

اساس functionolity درشکل فوق به وسیله سیستم عامل در لایه زیرین تهیه می شود، برای apache سیستم عامل مربوطه ورژن های گوناگون unix است اما سیستم عامل دیگر نیز می توانند پاسخ قرار گیرند، سیستم عامل هایی از قبیل macos.win32.os/2 وحتی posix که سیستم عامل ماشین های main frame است .

Apache kernel ,core module, kernel libravies

لایه 2 که هسته اصلی و شامل کرنل و ماژول های مربوط به آن  و یک سری librariey  استاندارد است، این لایه به همراه ماژول های مربوطه در عمل Http Server یعنی مبادله اطلاعاتی میان Browser و Server مورد استفاده قرار می گیرد. این لایه همچنین دارای توابع API و کدهای قابل استفاده مجدد (REUSABLE) برای لایه های بالایی است.

Apache Modules

این لایه در واقع لایه ای است که Apache Webserver را در میان وب سرورهای دیگر متمایز کرده است و در واقع در این لایه قسمت User-visible Functionality شگفت انگیز و تحسین بر انگیز است و ماژول های موجود آنقدر دارای Functionlity بالاهستند که  برای سرویس دادن استفاده میشود و این نشان دهنده مستقل بودن و وابسته نبودن ماژولها نسبت به یکدیگر است.

در واقع ماژول هایی که مورد استفاده وب سرورهای دیگر است. وب سرورهای دیگر بدون دسترسی به لایه 1 و 2 می توانند مستقیم از ماژول های لایه 3 و 4 استفاده کنند.

Third-party libraries

در لایه 3 ممکن است بعضی از ماژول ها به تنهایی کارآیی نداشته باشند و برای به کار بردن آنها نیاز به library های خارجی است مانند mod-perl و mod-ssl، مثلا برای استفاده از mod-perl به یک سری library های زبان perl نیاز داریم. از آنجاکه لایه های 4 و 3 و ماژول های مربوطه مستقل از لایه 2 هستند و به صورت loosely coupled با لایه 2 هستند و در واقع ارتباط استاتیکی با لایه 2 ندارند و در حقیقت ارتباط آنها با این لایه به صورت پویا یا dynamic است و این ارتباط به وسیله  Dynamic Shared Objectفراهم می شود.

این ویژگی و ساختار دارای انعطاف پذیری بالا است، یک نمونه انعطاف پذیری این است که بجای اینکه این ارتباط (ارتباط بین 4و3 با 2) در موقع نصب کردن آپاچی به صورت استاتیکی بر قرار شود، این ارتباط در واقع STARTUPTIME  لایه ای 4 و 3 برقرار می شود یعنی هر موقع لایه 3  می خواهند با لایه 2 ارتباط برقرار کنند همان موقع پیوند توسط DSO برقرار می شود لذا پیوند دائمی و ایستا نیست. در واقع DSO یکی از ویژگی های متمایز آپاچی نسبت به سایر وب سرورها می باشد.

Apache kernel functionlity

هسته آپاچی که در لایه 2  واقع است دارای دو هدف است:

1- تهیه Basic HTTP server functionality (برای مبادله اطلاعاتی بین سرور و مرورگر)

2- تهیه ماژول های API و توابع مورد نیاز

کرنل در قسمت 1 وظایف زیر را انجام میدهد:

1- یک سری وظایف سیستم عاملی از قبیل:

الف – Memory Segment و… که در واقع Resource Handling می شود.

ب – نگهداری Pre-Forked Process Model

2- سرکشی بهSocket  هایTCP/IP

3- کنترل ورود HTTP Request به وسیله پروسس های مربوطه

4- مدیریت HTTP Protocol به منظور رسیدگی به در خواست HTTP Request

5- تهیه Read/Write Buffer

و همچنین توابع اضافی مثل url، mime ,header passing و dsoloading.

API ماژول هایی هستند که مورد استفاده لایه سوم هستند و در هسته آپاچی به وجود می آیند، البته این به آن معنا نیست که لایه سوم وابسته به این ماژول ها (ماژول های API) است. API شامل لیست توابعی هستند که در داخل ماژول های لایه سوم وجود دارد.

وقتی که هسته یک درخواست HTTP REQUEST دریافت می کند برای انتشار این درخواست بین ماژول های مختلف از API استفاده می کند چرا که API مشخص می کند که هر تابع مربوط به چه ماژولی است و هر ماژول چه توابعی دارد و هر درخواست پیغام به کدام ماژول باید برود البته API فقط لیست توابع موجود درماژول ها نیست بلکه دارای توابعی هست که به طور عمومی قابل استفاده ماژول های لایه سوم است. این توابع با (ap-xxx) شروع می شود هر  HTTP REQUESTبه ده شاخه مجزا تقسیم می شود و هر ماژول اجرای یکی از شاخه ها را بر عهده می گیرد و در مواقع لازم نیز از توابع (ap-xxx) استفاده می کند.

مقایسه آپاچی و سایر وب سرورها

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

دروپال dropall

Nginx، اعلام کرده که Engine-X، یک وب سرور جدید است و ابتدا در سال 2004 منتشر شد. این وب سرور امروزه بسیار محبوب واقع شده. Nginx با هدف حل مشکل به اصطلاح *c10k طراحی شده است. (*به این معنی که یک وب سرور قادر به مدیریت بیش از 10،000 اتصال در یک زمان نیست.)

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

بررسی جوانب مثبت و منفی وب سرور آپاچی

آپاچی جزء بهترین وب سرورها است اما هر برنامه ای مزایا و معایب خاص خود را دارد که باید به آن ها دقت کرد.

ویژگی های مثبت آپاچی

  • منبع باز و رایگان، حتی برای استفاده های تجاری نیز رایگان است.
  • قابل اطمینان، پایدار، انعطاف پذیر
  • موارد  امنیتی به طور منظم به روزرسانی می شوند.
  • ساختار مبتنی بر ماژول
  •  پیکربندی ساده
  • Cross-platform (در سرورهای یونیکس و ویندوز کار می کند)
  • سازگار با وب سایت های وردپرسی

ویژگی های منفی آپاچی

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

جمع بندی نهایی

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

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

Sending
User Review
0 (0 votes)
محمدسالار آدم زاده
محمدسالار آدم زاده

برنامه نویس و طراح وب به خصوص فرانت‌اند با استفاده از بروز ترین زبان‌های برنامه‌نویسی مانند PHP ،CSSes و ...

بدون نظر

ارسال نظر

نظر
نام
ایمیل
وب سایت