وبسرور آپاچی
این مقاله نیازمند ویکیسازی است. لطفاً با توجه به راهنمای ویرایش و شیوهنامه، محتوای آن را بهبود بخشید. |
![]() | |
نویسنده(های) اصلی | رابرت مککول |
---|---|
توسعهدهنده(ها) | بنیاد نرمافزار آپاچی |
انتشار ابتدایی | [۱] ۱۹۹۵ |
انتشار پایدار | ۲٫۴٫۴
۲۵ فوریه ۲۰۱۳ |
مخزن | |
نوشتهشده با | سی |
سیستمعامل | چندسکویی |
در دسترس به | انگلیسی |
گونه | وب سرور |
پروانه | اجازهنامه آپاچی نسخهٔ ۲٫۰ |
وبگاه |
Apache HTTP Server ، که به زبان عام آپاچی نامیده می شود ، یک نرم افزار سرور وب چند پلتفرم رایگان و منبع باز است و تحت لیسانس Apache License 2.0 منتشر شده است. Apache توسط جامعه ای آزاد از توسعه دهندگان تحت حمایت بنیاد نرم افزار Apache توسعه و نگهداری می شود.
اکثریت قریب به اتفاق نمونه های سرور Apache HTTP بر روی سیستم عامل لینوکس اجرا می شوند ، اما نسخه های فعلی نیز بر روی ویندوز ، OpenVMS و طیف گسترده ای از سیستم های مشابه یونیکس اجرا می شوند. نسخه های گذشته همچنین در NetWare ، OS / 2 و سایر سیستم عامل ها ، از جمله درگاه های اصلی اجرا می شدند.
در ابتدا توسعه آپاچی در اوایل سال 1995 بر اساس سرور NCSA httpd ، پس از متوقف شدن کار بر روی کد NCSA آغاز شد. آپاچی نقشی اساسی در رشد اولیه شبکه جهانی وب داشت ، به سرعت از NCSA httpd به عنوان سرور HTTP غالب پیشی گرفت. در سال 2009 ، آپاچی اولین نرم افزار وب سرور بود که بیش از 100 میلیون وب سایت را سرو می کرد. از ژانویه 2021 ، Netcraft تخمین زده است که آپاچی 24.63٪ از میلیون وب سایت شلوغ را سرویس دهی می کند ، در حالی که Nginx 23.21٪ را سرویس می دهد و مایکروسافت با 6.85٪ در مکان سوم است (برای برخی دیگر از آمار Netcraft Nginx از Apache جلوتر است) ، در حالی که طبق آمار W3Techs ، آپاچی با 35.0٪ و Nginx با 33.0٪ دوم و Cloudflare Server با 17.3٪ سوم است.
نام[ویرایش]
نام این نرم افزار طبق اعلام بنیاد نرم افزار آپاچی " از روی احترام به ملت های مختلف بومی آمریکا که در مجموع با نام Apache شناخته می شوند ، انتخاب شد. این نامگذاری به دلیل مهارت های کم نظیر در استراتژی جنگ و استقامت پایان ناپذیر شناخته شده است." اما بنظر می آید که این نام همچنین در یک وب سرور تکه تکه - یک سرور ساخته شده از یک سری وصله ها (patches) یک جناس زیبا ایجاد می کند.
منابع دیگری نیز برای نظریه , وجود جناس بین نام نرم افزار و عملکرد آن در عمل وجود دارد ، از جمله اسناد رسمی پروژه در سال 1995 ، که اظهار داشت: "Apache یک نام زیبا است که جا افتاده است. این بر اساس برخی از کد موجود و یک سری از وصله های نرم افزار بود ، سرور "کوچک".
(“ A patchy sever”)
اما در یک مصاحبه در آوریل 2000 ، برایان بهلندورف ، یکی از خالقان آپاچی ، ادعا کرد که ریشه های آپاچی یک جناس نیست ، و اظهار داشت:
این اسم به معنای واقعی کلمه از ناکجاآباد بیرون آمده است. ای کاش می توانستم بگویم که این چیز خارق العاده ای بود ، اما واقعا از هیچ بدست آمده است. من آن را در یک صفحه نوشتم و بعد از چند ماه که این پروژه شروع شد ، مردم را به سمت این صفحه هدایت کردم و گفتم: "سلام ، نظر شما در مورد این ایده چیست؟"… شخصی گفت که آنها از این نام خوششان می آید و این یک واقعاً جناس خوب و من مثل این بودم: "جناس؟ منظورت چیست؟" او گفت ، "خوب ، ما در حال ساخت یک سرور از روی چند وصله نرم افزاری(patch) هستیم ، درست است؟ بنابراین این یک وب سرور تکه تکه
(patchy) است." من رفتم ، "آه ، خوب." … وقتی به اسم فکر کردم ، نه. این فقط به نوعی دلالت داشت: "هیچ زندانی ای را نگیرید. نوعی پرخاشگر باشید و لگد در کون بقیه بزنید"
هنگامی که آپاچی تحت یونیکس در حال اجرا است ، نام فرآیند آن httpd است که مخفف "HTTP daemon" است.
مرور ویژگی ها[ویرایش]
Apache از انواع ویژگی ها پشتیبانی می کند ، بسیاری از آنها به عنوان ماژول های کامپایل شده که عملکرد اصلی را گسترش می دهند ، اجرا می شوند. این موارد می توانند از طرح های تأیید اعتبار تا پشتیبانی از زبان های برنامه نویسی سمت سرور مانند Perl ، Python ، Tcl و PHP باشند. ماژول های احراز هویت محبوب شامل mod _ access، mod _ auth، mod _ digest، mod _ auth _digest، هستند. نمونه ای از ویژگی های دیگر شامل Secure Sockets Layer و Transport Layer Security Security (mod _ ssl) ، یک ماژول پروکسی (mod _proxy) ، یک ماژول بازنویسی URL به نام (mod _ rewrite) پرونده های ثبت سفارشی (mod _ log _ config) ، و پشتیبانی از فیلتر (mod _ include و mod _ ext _ filter).
روشهای فشرده سازی رایج در Apache شامل ماژول الحاقی mod _ gzip است که برای کمک به کاهش حجم (وزن) صفحات وب ارائه شده از طریق HTTP پیاده سازی شده است. ModSecurity یک موتور تشخیص و جلوگیری از نفوذ منبع باز برای برنامه های وب است. گزارش های Apache را می توان از طریق مرورگر وب با استفاده از اسکریپت های رایگان مانند AWStats / W3Perl یا Visitors تجزیه و تحلیل کرد.
میزبانی مجازی اجازه می دهد تا یک نصب مستقل Apache به وب سایت های مختلف خدمات ارائه دهد. به عنوان مثال ، یک کامپیوتر با یک نصب Apache می تواند به طور همزمان example.com ، example.org ، test47.test-server.example.edu و غیره را ارایه کند.
Apache دارای پیغامهای خطای قابل تنظیم ، پایگاه داده احراز هویت مبتنی بر دیتابیس و مذاکره در مورد محتوا است و از چندین رابط کاربر گرافیکی (GUI) پشتیبانی می کند.
از احراز هویت رمز عبور و احراز هویت گواهی دیجیتال پشتیبانی می کند. از آنجا که کد منبع آزادانه در دسترس است ، هر کسی می تواند سرور را برای نیازهای خاص وفق دهد و یک کتابخانه عمومی بزرگ از add-on های apache وجود دارد.
لیست دقیق تری از ویژگی ها در زیر ارائه شده است:
- ماژول های پویا قابل بارگیری
- حالتهای پردازش درخواست چندگانه (MPM) شامل Event-based / Async ، Threaded و Prefork.
- بسیار مقیاس پذیر (به راحتی بیش از 10000 اتصال همزمان را کنترل می کند)
- مدیریت فایل های ساکن ، پرونده های فهرست ، نمایه سازی خودکار و مذاکره در مورد محتوا
- . htaccess per - پشتیبانی از پیکربندی دایرکتوری
- پروکسی معکوس با حافظه پنهان
- توازن بار با بررسی های سلامت درون باند
- مکانیسم های متعادل کننده بار چندگانه
- تحمل خطا و Failover با بازیابی خودکار
- WebSocket ، FastCGI ، SCGI ، AJP و uWSGI با caching پشتیبانی می کنند
- پیکربندی پویا
- TLS / SSL با پشتیبانی منگنه SNI و OCSP ، از طریق OpenSSL یا wolfSSL.
- سرورهای مجازی مبتنی بر نام و آدرس IP
- IPv6 - سازگار است
- پشتیبانی از HTTP / 2
- تأیید اعتبار دقیق و کنترل دسترسی مجوز
- فشرده سازی و فشرده سازی gzip
- بازنویسی URL
- بازنویسی سرصفحه ها و محتوا
- ورود به سیستم سفارشی با چرخش
- محدود کردن اتصال همزمان
- درخواست محدود کردن نرخ پردازش
- پهنای باند گاز
- سمت سرور شامل می شود
- مکان جغرافیایی مبتنی بر آدرس IP
- ردیابی کاربر و جلسه
- WebDAV
- برنامه نویسی Perl ، PHP و Lua جاسازی شده
- پشتیبانی CGI
- _ _ HTML در هر صفحه - وب کاربر -
- تجزیه کننده بیان عمومی
- نمایش وضعیت در زمان واقعی
- پشتیبانی از FTP (توسط یک ماژول جداگانه)
عملکرد[ویرایش]
به جای پیاده سازی یک معماری واحد ، آپاچی انواع مختلفی از ماژول های چندرشته ای ( MultiProcessing Modules یاMPM) را فراهم می کند ، که به آن امکان می دهد در هر دو حالت مبتنی بر فرآیند و ترکیبی (فرآیند و رشته) یا رویداد - رشته ترکیبی اجرا شود تا مطابقت بهتر با خواسته های هر زیرساختی را داشته باشد. بنابراین انتخاب MPM و پیکربندی مهم است. در مواردی که باید در عملکرد سازش انجام شود ، Apache برای کاهش تأخیر و افزایش توان تولید نسبت به رسیدگی تا به درخواستهای بیشتری بتواند رسیدگی کند. بنابراین از پردازش مداوم و قابل اعتماد درخواست ها در بازه های زمانی مناسب اطمینان حاصل می کند.
برای تحویل صفحات ساکن ، سری Apache 2.2 به مراتب کندتر از nginx و varnish در نظر گرفته شد. برای حل این مسئله ، توسعه دهندگان Apache Event MPM را ایجاد کردند که استفاده از چندین فرآیند و چندین رشته در هر فرآیند را در یک حلقه مبتنی بر رویداد ناهمزمان مخلوط می کند. این معماری همانطور که در سری Apache 2.4 پیاده سازی شده است ، طبق گفته جیم جاگیلسکی و سایر منابع مستقل ، حداقل به عنوان سرورهای وب مبتنی بر رویداد عمل می کند. با این حال ، برخی از معیارهای مستقل اما به طور قابل توجهی منسوخ نشان می دهند که به عنوان مثال سرعت آن هنوز نیمی از nginx است.
پیاده سازی[ویرایش]
پروژه سرور Apache HTTP یک تلاش مشترک توسعه نرم افزار با هدف ایجاد یک کد منبع قدرتمند ، دارای درجه تجاری ، دارای ویژگی و آزاد در دسترس از یک سرور HTTP (وب) است. این پروژه به طور مشترک توسط گروهی از داوطلبان مستقر در سراسر جهان و با استفاده از اینترنت و وب برای برقراری ارتباط ، برنامه ریزی و توسعه سرور و مستندات مربوط به آن ، مدیریت می شود. این پروژه بخشی از بنیاد نرم افزار Apache است. علاوه بر این ، صدها کاربر به کمک ایده ، کد و مستندات پروژه را گسترش داده اند.
Apache 2.4 پشتیبانی از سیستم عامل های BeOS ، TPF ، A / UX ، NeXT و Tandem را قطع کرد.
پروانه های کاری[ویرایش]
پایگاه کد Apache HTTP Server در ژانویه 2004 مجدداً از مجوز Apache 2.0 (از مجوز قبلی 1.1) مجوز گرفت و Apache HTTP 1.3.31 Server و 2.0.49 اولین نسخه هایی بودند که از مجوز جدید استفاده کردند.
پروژه OpenBSD این تغییر را دوست نداشت و استفاده از نسخه های قبل از 2.0 Apache را ادامه داد و به طور موثر Apache 1.3 را استفاده کرد. آنها در ابتدا آن را با Nginx جایگزین کردند و پس از مدت کوتاهی ، OpenBSD Httpd را به عنوان جایگزین جدید خود انتخاب کردند.
نسخه ها[ویرایش]
نسخه 1.1: مجوز Apache 1.1 توسط ASF در سال 2000 تأیید شد: تغییر اصلی مجوز 1.0 در "بند تبلیغات" است (بخش 3 مجوز 1.0). محصولات مشتق شده دیگر نیازی به درج اسناد در مواد تبلیغاتی خود ندارند ، فقط در مستندات باید درج شوند.
نسخه 2.0: ASF مجوز Apache 2.0 را در ژانویه 2004 تصویب کرد. اهداف اعلام شده این مجوز شامل سهولت استفاده از پروانه برای پروژه های غیر ASF ، بهبود سازگاری با نرم افزارهای مبتنی بر GPL ، اجازه دادن به مجوز به جای ذکر شده در هر پرونده ، روشن کردن مجوز برای مشارکت ها و الزام مجوز ثبت اختراع در مورد مشارکت هایی که لزوماً حق ثبت اختراعات خود را نقض می کند.
امنیت[ویرایش]
Apache مانند سایر نرم افزارهای سرور قابل هک و سواستفاده است. اصلی ترین ابزار حمله Slowloris Apache است که از یک اشکال در نرم افزار Apache بهره می برد.slowris سوکت ها را ایجاد می کند و با ارسال چندین بایت (معروف به "keep-alive headers") هرکدام را زنده و مشغول نگه می دارد تا به سرور بفهماند که رایانه هنوز متصل است و مشکلی در شبکه ندارد. توسعه دهندگان Apache برای محدود کردن آسیب های وارد شده با چندین ماژول به Slowloris پرداخته اند. ماژول های mod_limitipconn, mod_qos, mod_evasive, mod security, mod_noloris,mod_antiloris همه به عنوان وسیله ای برای کاهش احتمال حمله موفقیت آمیز Slowloris پیشنهاد شده اند. از زمان آپاچی 2.2.15 ، آپاچی ماژول mod _ reqtimeout را به عنوان راه حل رسمی پشتیبانی شده توسط توسعه دهندگان ارسال می کند.
منابع[ویرایش]
- ↑ http://httpd.apache.org/ABOUT_APACHE.html "About the Apache HTTP Server Project". Apache Software Foundation. Archived from the original on 7 June 2008. Retrieved 2008-06-25.
پیوند به بیرون[ویرایش]
- http://www.apache.org
- Apache official website
- New Features in Apache 2.0
- New Features in Apache 2.2
- SVN trunk of Apache 2.x
- Netcraft Uptime Survey, a service tracking uptime of web servers
- Apache DevCenter بایگانیشده در ۲۱ ژوئیه ۲۰۰۶ توسط Wayback Machine
- Apache Week
- Links at Open Directory Project
- Accelerating Apache Project
- URL Rewriting with mod_rewrite - using one of Apache's modules to redirect requests.
- How to mod_rewrite site powered by php script article from Mod_Rewrite Tutorials
- بنیاد نرمافزار آپاچی
- پراکسی معکوس
- سرویسدهندههای وب آزاد
- کارساز وب
- نرمافزارهای آزاد چندسکویی
- نرمافزارهای آزاد نوشتهشده با سی
- نرمافزارهای چندسکویی
- نرمافزارهای ۱۹۹۵ (میلادی)
- نرمافزارهای ۱۹۹۶ (میلادی)
- نرمافزارهای منشعبشده
- نرمافزارهای یونیکس مرتبط با شبکه
- نرمافزارهایی که از پروانه آپاچی استفاده میکنند