Глава 2: Знакомство с веб-сервером Apache

2.1 Что такое веб-сервер? Простая аналогия

Давай на секунду отвлечёмся от кода и терминала. Представь обычный ресторан.

  • Ты (клиент) — это твой браузер (Chrome, Firefox).

  • Твой заказ (например, "паста карбонара и меню") — это запрос к сайту (например, "дай мне index.html и style.css").

  • Кухня, где лежат все блюда (файлы сайта: HTML, картинки) — это жёсткий диск сервера (папка /var/www/html/).

  • Официант — это и есть веб-сервер Apache.

Задача официанта (Apache):

  1. Услышать твой запрос (принять соединение от браузера).

  2. Понять, что ты хочешь (проанализировать запрос: "пациент просит файл about.html").

  3. Сходить на кухню (на диск) и найти нужное блюдо (файл).

  4. Аккуратно донести его до тебя (отправить файл браузеру по сети).

Apache — самый популярный и проверенный временем "официант" в интернете. Он надёжен, понятен в настройке и отлично подходит для наших задач.

2.2 Установка Apache

Всё делается одной командой. Открой терминал на своём виртуальном сервере и введи:

sudo apt install apache2

Разберём команду по кусочкам:

  • sudo — делаем от имени администратора.

  • apt — это менеджер пакетов, "магазин приложений" Ubuntu.

  • install — команда "установить".

  • apache2 — название пакета, который мы хотим установить.

Нажми Enter. Система покажет, сколько места займёт пакет, и спросит Do you want to continue? [Y/n]. Нажми Y и Enter.

Через несколько секунд установка завершится. Apache уже установлен, запущен и даже настроен на автоматический запуск при каждой загрузке системы!

2.3 Проверка работы: наша первая веб-страница

Самый волнующий момент — увидеть результат.

  1. Узнай IP-адрес своего виртуального сервера. Введи в терминале:

    Ты увидишь несколько блоков текста. Нас интересует блок, связанный с eth0 или enp0s3. Найди строчку, начинающуюся с inet. Там будет что-то типа:

    Запомни эти цифры (например, 192.168.1.100). Это локальный IP-адрес твоего сервера в виртуальной сети.

  2. Теперь иди к своему основному компьютеру (не к виртуальной машине!). Открой свой обычный браузер (Chrome/Firefox на Windows/macOS).

  3. В адресную строку браузера введи IP-адрес сервера: http://192.168.1.100 (подставь свой адрес) и нажми Enter.

ФАНФАРЫ! 🎉

Ты должен увидеть стандартную страницу Ubuntu Apache2.

Надпись "Apache2 Ubuntu Default Page" и несколько ссылок — это знак того, что твой веб-сервер жив, здоров и готов отдавать файлы.

Что только что произошло? Твой браузер с основного компьютера отправил запрос на адрес 192.168.1.100:80 (порт 80 — стандартный для HTTP). Виртуальная машина получила этот запрос. Официант Apache, увидев, что запрошен корень сайта (/), не нашёл в папке файла index.html и отдал тебе свой, заранее приготовленный, "дефолтный" файл.

2.4 Где "лежит" сайт по умолчанию?

Давай посмотрим на нашу "кухню" — папку, из которой Apache раздаёт файлы.

  1. Вернись в терминал виртуальной машины.

  2. Введи команду, чтобы перейти в корневую папку веб-сервера:

  3. Посмотрим, что там внутри:

    Команда ls -la показывает все файлы (-a, включая скрытые) в подробном формате (-l).

Ты увидишь примерно следующее:

Это и есть тот самый файл index.html, который мы только что видели в браузере!

Важные моменты:

  • /var/www/html/ — это корневая директория документа (DocumentRoot). По умолчанию Apache ищет все запрашиваемые файлы именно здесь.

  • Файл принадлежит пользователю root (это видно в третьем столбце). Это значит, чтобы изменить его, нам снова понадобится sudo.

2.5 (Бонус) Краткое знакомство с Nginx. Когда он может пригодиться

Рядом с Apache всегда упоминают Nginx (произносится "энджин-икс" или "энжин-икс"). Это тоже веб-сервер, но с другой философией.

Простая аналогия:

  • Apache — универсальный официант. Он может не только принести блюдо, но и помочь его приготовить (если подключить модули для PHP, Python). Он создаёт новый процесс ("клонирует официанта") для каждого нового клиента. Отлично подходит для динамических сайтов.

  • Nginx — супер-быстрый курьер-распределитель. Он создан, чтобы максимально быстро раздавать статику (HTML, CSS, картинки, видео). Он эффективно обрабатывает тысячи одновременных соединений. Часто его ставят перед Apache в качестве обратного прокси или кэширующего сервера, чтобы разгрузить его.

Когда думать о Nginx?

  • Если твой сайт становится очень популярным и нужно отдавать много статичных файлов (блог, медиа-портал).

  • Если ты делаешь одностраничное приложение (SPA) на Vue.js/React.

  • Если ты хочешь попробовать что-то новое и современное.

Наш выбор: Мы остаёмся с Apache. Он идеально подходит для обучения: его логи легко читать, а файлы конфигурации очень наглядны. Все принципы, которые мы изучим на Apache, пригодятся и для понимания Nginx в будущем.


Практическое задание к главе 2:

  1. Галочка "сделано": Убедись, что ты видишь страницу Apache в браузере своего основного компьютера.

  2. Любопытство: С помощью команды cat посмотри содержание дефолтного файла:

    Ты увидишь HTML-код. Не страшно, если непонятно. В следующей главе мы его полностью заменим своим!

  3. Эксперимент: Попробуй создать простой тестовый файл:

    В открывшемся редакторе напиши: Hello from my first server!. Нажми Ctrl+O (чтобы сохранить), Enter, затем Ctrl+X (чтобы выйти). Теперь в браузере перейди по адресу http://ТВОЙ_IP/test.txt. Ты увидишь содержимое этого файла! Apache просто отдал его "как есть".

Вывод главы: Ты установил и запустил "движок" своего сайта — веб-сервер Apache. Теперь он слушает запросы и может отдавать файлы. Фундамент заложен. В следующей части мы наконец-то начнём создавать свой сайт!

Последнее обновление