Apache HTTP Server

Apache HTTP-сервер (вимовляється /ə.ˈpæ.ʧi/) відкритий веб-сервер Інтернет для UNIX-подібних, Microsoft Windows, Novell NetWare та інших операційних систем.

Apache HTTP Server
Тип Вебсервер
Автор(и) Robert McCoold
Розробник Apache Software Foundation
Стабільний випуск 2.4.23 (4 липня 2016 (2016-07-04))
Репозиторій svn.apache.org/repos/asf/httpd/httpd/
Операційна система Крос-платформовий
Мова програмування C[1][2][…]
Ліцензія Apache Software License
Вебсайт httpd.apache.org

 Apache HTTP Server у Вікісховищі

Apache розроблюється та підтримується спільнотою розробників відкритого програмного забезпечення під керівництвом Apache Software Foundation.

В 1996 році Apache обійшов NCSA HTTPd із того часу є найбільш популярним веб-сервером у світі. Станом на червень 2013 року Apache встановлений на 53.34% (358 974 045 серверів) для порівняння на другому місці Microsoft IIS їхня частка 17.22% (115 920 681 серверів).[3]

Історія та назва

Сервер Apache створений на початку 1995 року співтовариством незалежних розробників «Apache Group», члени якої у свій час брали участь у проекті з побудови перших Web-серверів у NCSA (National Center for Supercomputer Applications, USA). «Apache Group» пропонує Web-сервери, сумісні з будь-якою UNIX-системою, установленої на будь-якій апаратній платформі. Сервер перенесений і на інші операційні системи. Так, уже зараз Apache Web-сервер доступний для OS/2, UNIX-платформ, Windows 2000 та ін.

Web-сервер Apache, як і всі інші Web-сервери, базується на ідеях і частині коду, реалізованих у першому по-справжньому популярному Web-Сервері — NCSA httpd 1.3.

Є два пояснення назви проекту. Згідно з Apache Foundation, назву проекту було вибрано з поваги до корінного племені американського континенту апачів, що були відомі за свою витривалість та військову майстерність. Проте, перший FAQ на вебсайті проекту Apache Server з 1996 до 2001 стверджував, що «назва „Apache“ походить від абревіатури „А PAtCHy server“, що дослівно перекладається як „залатаний сервер“ — сервер, у код якого внесений цілий ряд серйозних змін.» Перше пояснення було підтверджено на Конференції Apache і в інтерв'ю 2000 року з Брайаном Беглендорфом, який, тим не менш, спростував це твердження в інтерв'ю 2007 року, заявляючи, що «сервер Apache не названий на честь племені Джеронімо».

Версія 2 веб-сервера Apache була істотним переписом великої частини коду програми версії 1.x, з сильним нахилом на подальшу модульність та портативність. Версія 2.2 має гнучкіший API авторизації. Вона також включає поліпшені модулі кешу й проксі сервера.

Можливості

Web-сервер Apache є самостійним, некомерційним, вільно розповсюджуваним продуктом. Продукт підтримує безліч можливостей, багато з яких реалізовані як скомпільовані модулі, які розширюють основні функціональні можливості. Вони різняться від серверної підтримки мов програмування до схем аутентифікації. Існують інтерфейси для підтримки мов програмування Perl, Python, Tcl і PHP.

Популярні методи стискування на Apache включають зовнішній модуль mod_gzip, створений для зменшення розміру веб-сторінок, переданих по HTTP.

Функції віртуального хостингу дозволяють одній інсталяції Apache обслуговувати різні вебсайти. Наприклад, одна машина, з однією інсталяцією Apache може одночасно містити www.example.com, www.test.com, test47.test-server.test.com і так далі.

Використання

Apache передусім використовується для передачі через HTTP статичних та динамічних веб-сторінок у всесвітній павутині. Багато веб-застосунків спроектовано, зважаючи на середовище і можливості, які надає цей веб-сервер.

Продукт може працювати як кешувальний проксі-сервер, що дозволяє істотно підвищити продуктивність роботи користувачів локальної мережі при роботі з документами, розташованими в Інтернет. Можна задавати такі параметри і налаштування проксі-сервера:

  • типи файлів, які необхідно кешувати або навпаки, не включати в кеш;
  • максимальний обсяг дискового простору, відведений під кеш;
  • періодичний перегляд і індексування бази даних кешу з метою вивільнення дискового простору шляхом видалення застарілих об'єктів.

Apache зіграв ключову роль у початковому зростанні всесвітньої павутини, і продовжує бути найпопулярнішим у світі веб-сервером, де-факто платформою, на яку орієнтуються інші веб-сервери.

Відповідно до статистики[4] Netcaft за червень 2008 року, Apache є найпоширенішим серверним програмним забезпеченням в Мережі: на цей веб-сервер припадала частка близько 49 % відповідного сегменту ринку (майже 85 мільйонів сайтів). Друге місце за популярністю займають програмні платформи Microsoft — 35,4 % (61 мільйон сайтів).

Архітектура

Ядро

Ядро Apache включає в себе основні функціональні можливості, такі як обробка конфігураційних файлів, протокол HTTP і система завантаження модулів. Ядро (на відміну від модулів) повністю розробляється Apache Software Foundation, без участі сторонніх програмістів.

Теоретично, ядро apache може функціонувати в чистому вигляді, без використання модулів. Однак, функціональність такого рішення вкрай обмежена.

Ядро Apache повністю написано на мові програмування C.

Система конфігурації

Система конфігурації Apache заснована на текстових конфігураційних файлах. Має три умовних рівня конфігурації:

  • Конфігурація сервера (httpd.conf).
  • Конфігурація віртуального хоста (httpd.conf з версії 2.2 extra/httpd-vhosts.conf).
  • Конфігурація рівня директорії (.htaccess).

Має власну мову конфігураційних файлів, заснований на блоках директив. Практично всі параметри ядра можуть бути змінені через конфігураційні файли. Більша частина модулів має власні параметри.

Частина модулів використовує в своїй роботі конфігураційні файли операційної системи (наприклад /etc/passwd і /etc/hosts).

Крім цього, параметри можуть бути задані через ключі командного рядка.

Мультипроцесувальні моделі (MPM)

Для веб-сервера Apache існує безліч моделей симетричного мультипроцесування.

Ось основні з них:

Назва Розробник Підтримувані OS Опис Призначення Статус
worker Apache Software Foundation Linux, FreeBSD Гібридна мультипроцесорна-багатониткова модель. Зберігаючи стабільність мультипроцесорних рішень, вона дозволяє обслуговувати велику кількість клієнтів з мінімальним використанням ресурсів. Середньо-навантажені веб-сервери. Стабільний.
pre-fork Apache Software Foundation Linux, FreeBSD MPM, заснована на попередньому створенні окремих процесів, не використовує механізм threads. Велика безпека і стабільність за рахунок ізоляції процесів один від одного, збереження сумісності зі старими бібліотеками, що не підтримують threads. Стабільний.
perchild Apache Software Foundation Linux Гібридна модель, з фіксованою кількістю процесів. На високо навантажених серверах, можливість запуску дочірніх процесів використовуючи інше ім'я користувача для підвищення безпеки. У розробці, нестабільний.
netware Apache Software Foundation Novell NetWare Багатониткова модель, оптимізована для роботи в середовищі NetWare. Сервери Novell NetWare Стабільний.
winnt Apache Software Foundation Microsoft Windows Багатониткова модель, створена для операційної системи Microsoft Windows. Сервери під керуванням Windows Server. Стабільний.
Apache-ITK Steinar H. Gunderson Linux, FreeBSD MPM, заснована на моделі prefork. Дозволяє запуск кожного віртуального хоста під окремими UID та GID. Хостингові сервери, сервери, критичні до ізоляції користувачів і обліку ресурсів. Стабільний.
peruser Sean Gabriel Heacock Linux, FreeBSD Модель, створена на базі MPM perchild. Дозволяє запуск кожного віртуального хоста під окремими UID та GID. Не використовує нитки. Забезпечення підвищеної безпеки, робота з бібліотеками, не підтримуються нитки. Стабільна версія від 4 жовтня 2007 року, експериментальна — від 10 вересня 2009 року.

Примітки

Див. також

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.