Глава 2: Знакомство с веб-сервером Apache
2.1 Что такое веб-сервер? Простая аналогия
Давай на секунду отвлечёмся от кода и терминала. Представь обычный ресторан.
Ты (клиент) — это твой браузер (Chrome, Firefox).
Твой заказ (например, "паста карбонара и меню") — это запрос к сайту (например, "дай мне
index.htmlиstyle.css").Кухня, где лежат все блюда (файлы сайта: HTML, картинки) — это жёсткий диск сервера (папка
/var/www/html/).Официант — это и есть веб-сервер Apache.
Задача официанта (Apache):
Услышать твой запрос (принять соединение от браузера).
Понять, что ты хочешь (проанализировать запрос: "пациент просит файл
about.html").Сходить на кухню (на диск) и найти нужное блюдо (файл).
Аккуратно донести его до тебя (отправить файл браузеру по сети).
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 Проверка работы: наша первая веб-страница
Самый волнующий момент — увидеть результат.
Узнай IP-адрес своего виртуального сервера. Введи в терминале:
Ты увидишь несколько блоков текста. Нас интересует блок, связанный с
eth0илиenp0s3. Найди строчку, начинающуюся сinet. Там будет что-то типа:Запомни эти цифры (например,
192.168.1.100). Это локальный IP-адрес твоего сервера в виртуальной сети.Теперь иди к своему основному компьютеру (не к виртуальной машине!). Открой свой обычный браузер (Chrome/Firefox на Windows/macOS).
В адресную строку браузера введи 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 раздаёт файлы.
Вернись в терминал виртуальной машины.
Введи команду, чтобы перейти в корневую папку веб-сервера:
Посмотрим, что там внутри:
Команда
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:
Галочка "сделано": Убедись, что ты видишь страницу Apache в браузере своего основного компьютера.
Любопытство: С помощью команды
catпосмотри содержание дефолтного файла:Ты увидишь HTML-код. Не страшно, если непонятно. В следующей главе мы его полностью заменим своим!
Эксперимент: Попробуй создать простой тестовый файл:
В открывшемся редакторе напиши:
Hello from my first server!. НажмиCtrl+O(чтобы сохранить), Enter, затемCtrl+X(чтобы выйти). Теперь в браузере перейди по адресуhttp://ТВОЙ_IP/test.txt. Ты увидишь содержимое этого файла! Apache просто отдал его "как есть".
Вывод главы: Ты установил и запустил "движок" своего сайта — веб-сервер Apache. Теперь он слушает запросы и может отдавать файлы. Фундамент заложен. В следующей части мы наконец-то начнём создавать свой сайт!
Последнее обновление