Apache HTTP Server

Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено з Apache)
Перейти до: навігація, пошук
Apache HTTP Server
Apache HTTPd Logo
Розробник(и) Apache Software Foundation
Стабільний випуск 2.4.9 (16 березня 2014; 137 днів тому)
Операційна система Крос-платформовий
Тип Веб-сервер
Ліцензія Apache Software License
Сайт httpd.apache.org

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

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

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

Історія та назва[ред.ред. код]

Сервер 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 зіграв ключову роль у початковому зростанні всесвітньої павутини, і продовжує бути найпопулярнішим у світі веб-сервером, де-факто платформою, на яку орієнтуються інші веб-сервери.

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

Архітектура[ред.ред. код]

Ядро[ред.ред. код]

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

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

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

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

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

  • Конфігурація сервера (httpd.conf).
  • Конфігурація віртуального хоста (httpd.conf c версії 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 року.

Примітки[ред.ред. код]

Див. також[ред.ред. код]

Посилання[ред.ред. код]