Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Веб-сервер Apache

Apache HTTP-сервер (вимовляється /ə.pæ.ʧi/, названий ім'ям групи племен північноамериканських індіанців апачів; крім того, є скороченням від англ. A patchy server; серед українських користувачів загальноприйнято спотворене апач) - вільний веб-сервер (див. рисунок 13.1).

Apache є кросплатформним ПО, підтримує операційні системи Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS.

Основними достоїнствами Apache вважаються надійність і гнучкість конфігурації. Він дозволяє підключати зовнішні модулі для надання даних, використовувати СУБД для аутентифікації користувачів, модифікувати повідомлення про помилки і т. д. Підтримує IPv6.

 

Рисунок 13.1 – Логотип Apache

 

Сервер був написаний на початку 1995 року і вважається, що його ім'я сходить до жартівливого назвою «a patchy» (англ. «латочку»), так як він усував помилки популярного тоді сервера Всесвітньої павутини NCSA HTTPd 1.3. Надалі, з версії 2.х, сервер був переписаний заново і тепер не містить коду NCSA. На даний момент розробка ведеться в гілці 2.2, а у версіях 1.3 і 2.0 виробляються лише виправлення помилок безпеки. На поточний момент остання версія гілки 2.4 - 2.4.3 (21 серпня 2012), для першої версії це 1.3.42.

Веб-сервер Apache розробляється і підтримується відкритим співтовариством розробників під егідою Apache Software Foundation і включений в багато програмні продукти, серед яких СУБД Oracle і IBM WebSphere.

З квітня 1996 і до теперішнього часу є найпопулярнішим HTTP-сервером в Інтернеті. Статистика Netcraft показує наступні дані про використання Apache:

- в серпні 2007 року він працював на 51% всіх веб-серверів світу;

- у травні 2009 року - на 46%;

- у січні 2011 року - на 59%, тобто більш ніж на 160 млн. сайтів.

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

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

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

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

- Конфігурація сервера (httpd.conf).

- Конфігурація віртуального хоста (httpd.conf c версії 2.2, extra/httpd-vhosts.conf).

- Конфігурація рівня директорії (.htaccess).

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

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

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

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

 

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

Назва Розробник Підтримувані 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 року.

 

Apache HTTP Server підтримує модульність. Існує більше 500 модулів, що виконують різні функції. Частина з них розробляється командою Apache Software Foundation, але основна кількість – окремими open source-розробниками.

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

У модулях реалізуються такі речі, як:

- Підтримка мов програмування.

- Додавання функцій.

- Виправлення помилок або модифікація основних функцій.

- Посилення безпеки.

Частина веб-додатків, наприклад панелі керування ISPmanager і VDSmanager реалізовані у вигляді модуля Apache.

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

Для кожного віртуального хоста можна вказати власні настройки ядра і модулів, обмежити доступ до всього сайту або окремих файлів. Деякі MPM, наприклад Apache-ITK дозволяють запускати процес httpd для кожного віртуального хоста з окремими ідентифікаторами uid і guid.

Також, існують модулі, що дозволяють враховувати і обмежувати ресурси сервера (CPU, RAM, трафік) для кожного віртуального хоста.

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

До них відносяться:

- PHP (mod_php).

- Python (mod python, mod wsgi).

- Ruby (apache-ruby).

- Perl (mod perl).

- ASP (apache-asp).

- Tcl (rivet).

Крім того, Apache підтримує механізми CGI і FastCGI, що дозволяє виконувати програми на практично всіх мовах програмування, в тому числі C, C++, Lua, sh, Java.

Apache має різні механізми забезпечення безпеки та розмежування доступу до даних. Основними є:

- Обмеження доступу до певних директорій або файлів.

- Механізм авторизації користувачів для доступу до директорії на основі HTTP-аутентифікації (mod_auth_basic) і digest-аутентифікації (mod_auth_digest).

- Обмеження доступу до певних директорій або всьому серверу, засноване на IP-адресах користувачів.

- Заборона доступу до певних типів файлів для всіх або частини користувачів, наприклад заборона доступу до конфігураційним файлів і файлів баз даних.

- Існують модулі, що реалізують авторизацію через СУБД або PAM.

У деяких MPM-модулях присутня можливість запуску кожного процесу Apache використовуючи різні uid і gid з відповідними цим користувачам і групам користувачів.

Також, існує механізм suexec, використовуваний для запуску скриптів і CGI-додатків з правами та ідентифікаційними даними користувача.

Для реалізації шифрування даних, що передаються між клієнтом і сервером використовується механізм SSL, реалізований через бібліотеку OpenSSL. Для посвідчення справжності веб-сервера використовуються сертифікати X.509.

Існують зовнішні засоби забезпечення безпеки, наприклад mod_security.

Починаючи з версії 2.0 з'явилася можливість визначення сервером локалі користувача. Повідомлення про помилки і події, що посилаються браузеру, тепер представлені на декількох мовах і використовують SSI технологію.

Також, можна реалізувати засобами сервера відображення різних сторінок для користувачів з різними Локаль. Apache підтримує безліч кодувань, у тому числі Unicode, що дозволяє використовувати сторінки, створені в будь-яких кодуваннях і на будь-яких мовах.

Адміністратор може встановити власні сторінки і обробники для всіх HTTP помилок і подій, таких як 404 (Not Found) або 403 (Forbidden). У тому числі існує можливість запуску скриптів і відображення повідомлень на різних мовах.

 


Читайте також:

  1. Конфігурація Apache, додавання і налаштування модулів
  2. Представник «легких» веб-серверів – nginx
  3. Шаблон на веб-сервері-сервері. Створення презентації за допомогою шаблону, що знаходиться на веб-вузлі.




Переглядів: 2136

<== попередня сторінка | наступна сторінка ==>
Протокол передачі гіпертексту HTTP | Конфігурація Apache, додавання і налаштування модулів

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.07 сек.