Що таке Apache і як працює цей вебсервер?
Автор: Редакція Domeny.ForSale Опубліковано
Коротко: Apache HTTP Server — безплатне програмне забезпечення вебсервера, яке приймає запити браузера й повертає вміст сторінок, файли або відповіді застосунків. Воно може надавати прості сторінки HTML, обслуговувати сайти WordPress у поєднанні з PHP та передавати трафік іншим застосункам. Apache — не домен і не хостинг, а одна з програм, які можуть працювати на сервері хостинг-провайдера.
Для чого потрібен Apache і як він працює?
Вебсервер — це програма, яка забезпечує обмін даними через HTTP або HTTPS, тобто протоколи передавання вебсторінок. Слово «сервер» може також означати комп’ютер, але Apache — це програмне забезпечення, а не пристрій. Проєкт Apache HTTP Server розвивається в межах Apache Software Foundation і має відкритий вихідний код.
Коли ви вводите адресу сайту в браузері, система DNS допомагає визначити адресу сервера для цього домену. Далі браузер з’єднується із сервером і надсилає запит, наприклад на отримання головної сторінки. Apache визначає сайт і шлях до ресурсу, застосовує правила конфігурації, а потім повертає відповідь.
Спосіб підготовки цієї відповіді залежить від ресурсу:
- Статичний файл, наприклад зображення або документ HTML, Apache може прочитати з диска й передати безпосередньо.
- Динамічна сторінка, наприклад допис у WordPressie, потребує виконання коду застосунку. У цьому разі Apache взаємодіє з механізмом виконання PHP, а готовий результат надходить до браузера.
- Запит до окремого застосунку можна передати далі. Тоді Apache працює як зворотний проксі (reverse proxy), тобто посередник між відвідувачем та іншим сервером застосунку.
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?
