Що таке Apache і як працює цей вебсервер?

Автор: Опубліковано

Коротко: Apache HTTP Server — безплатне програмне забезпечення вебсервера, яке приймає запити браузера й повертає вміст сторінок, файли або відповіді застосунків. Воно може надавати прості сторінки HTML, обслуговувати сайти WordPress у поєднанні з PHP та передавати трафік іншим застосункам. Apache — не домен і не хостинг, а одна з програм, які можуть працювати на сервері хостинг-провайдера.

Для чого потрібен Apache і як він працює?

Вебсервер — це програма, яка забезпечує обмін даними через HTTP або HTTPS, тобто протоколи передавання вебсторінок. Слово «сервер» може також означати комп’ютер, але Apache — це програмне забезпечення, а не пристрій. Проєкт Apache HTTP Server розвивається в межах Apache Software Foundation і має відкритий вихідний код.

Коли ви вводите адресу сайту в браузері, система DNS допомагає визначити адресу сервера для цього домену. Далі браузер з’єднується із сервером і надсилає запит, наприклад на отримання головної сторінки. Apache визначає сайт і шлях до ресурсу, застосовує правила конфігурації, а потім повертає відповідь.

Спосіб підготовки цієї відповіді залежить від ресурсу:

Apache також повертає коди стану HTTP, наприклад 404, коли ресурс не знайдено. Однак сам код помилки не дає змоги однозначно встановити її причину: відповідь може надходити й від застосунку, до якого Apache передає запити.

Apache, домен, хостинг і PHP — різні завдання

Домен — це назва, яку використовують в адресі сайту, а хостинг надає ресурси, потрібні для його роботи. Apache обслуговує вебтрафік на цих ресурсах. PHP — мова програмування та середовище виконання коду, а база даних зберігає інформацію, яку використовує застосунок.

Наприклад, магазин на основі WordPressie може використовувати домен mahazyn.example, обліковий запис хостингу, Apache, PHP і базу даних MariaDB. Браузер запитує сторінку товару, Apache передає запит для обробки PHP, а WordPress отримує дані товару з бази. До клієнта надходить згенерований HTML, а не код PHP чи безпосередній вміст бази даних.

Ці компоненти не пов’язані між собою нерозривно. WordPress може працювати й з іншим вебсервером, а Apache може надавати звичайну сторінку HTML без PHP та бази даних. Тому твердження «хостинг підтримує Apache» ще не описує всього середовища, потрібного конкретному сайту.

Основні можливості Apache

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

Модулі розширюють функції сервера. Наприклад, mod_rewrite дає змогу перетворювати адреси й спрямовувати запити за правилами, а mod_ssl забезпечує підтримку TLS — шифрування, яке використовує HTTPS. Для роботи HTTPS також потрібні правильна конфігурація та сертифікат для домену.

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

Що таке файл .htaccess і коли його використовувати?

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

Приклад — правила WordPressa, які спрямовують запити зі зрозумілими адресами дописів до файлу, що обслуговує застосунок. Якщо видалити ці правила або змінити їх неправильно, головна сторінка може й далі працювати, а внутрішні сторінки — повертати помилки 404.

Перед редагуванням .htaccess збережіть його копію, вносьте зміни по одній і перевіряйте кілька адрес сайту. Недозволена директива або синтаксична помилка може спричинити відповідь 500, яка означає внутрішню помилку сервера. Якщо ви керуєте всім сервером, налаштування зазвичай краще розмістити в основній конфігурації: це полегшує контроль і усуває потребу додатково читати файли .htaccess.

Чи потрібен Apache вашому сайту?

На спільному або керованому хостингу ви зазвичай не встановлюєте Apache самостійно. Провайдер вибирає та обслуговує вебсервер, а ви налаштовуєте домен і застосунок. Документація хостингу має пояснювати, яке програмне забезпечення використовується в послузі, чи підтримує воно .htaccess і які директиви дозволяє.

Якщо у вас власний VPS, тобто віртуальний сервер, вибір та обслуговування програмного забезпечення можуть бути вашою відповідальністю. Apache — доцільний вибір, коли застосунок або ваш спосіб адміністрування використовує його модулі та правила. Одна з альтернатив — Nginx, який не читає файли .htaccess; тому під час переходу потрібно перенести відповідні правила до його конфігурації.

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

Дивіться також: Що таке 2FA?

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

Дізнайтеся, як PHP-FPM обробляє запити PHP, чим відрізняється від вебсервера та як налаштувати процеси під трафік і ресурси хостингу.
Дізнайтеся, як BIND обслуговує DNS, чим відрізняються його серверні ролі та коли варто розгортати його самостійно замість керованої послуги.
Дізнайтеся, що означають польський реєстр і номер REGON, чим вони відрізняються від NIP та KRS і як перевірити дані підприємства.