Неделя 2: Установка Nginx и первый сайт

Цель: Установить веб-сервер, разобраться с его конфигами, запустить статический сайт.

ТЕОРИЯ (продолжение вашего текста):

Установка программ в Linux

Менеджер пакетов apt

  • apt update - обновить список пакетов

  • apt upgrade - обновить все пакеты

  • apt install nginx - установить nginx

  • apt remove nginx - удалить

  • apt search nginx - поиск

Systemd - управление службами

  • systemctl status nginx - статус службы

  • systemctl start nginx - запустить

  • systemctl stop nginx - остановить

  • systemctl restart nginx - перезапустить

  • systemctl enable nginx - добавить в автозагрузку

Важные команды

  • curl http://localhost - сделать HTTP-запрос

  • journalctl -u nginx - посмотреть логи службы

ПРАКТИКА:

Задание 2.1: Установка и проверка

# 1. Обновите список пакетов
apt update

# 2. Установите nginx
apt install -y nginx

# 3. Проверьте статус
systemctl status nginx

# 4. Сделайте запрос к локальному серверу
curl http://localhost

# 5. Посмотрите, какие файлы поставил nginx
dpkg -L nginx | head -20

Задание 2.2: Исследование конфигов nginx

# 1. Главный конфиг
cat /etc/nginx/nginx.conf

# 2. Папка с сайтами (ваше описание)
ls -la /etc/nginx/sites-available/
ls -la /etc/nginx/sites-enabled/

# 3. Найдите, какой сайт включен по умолчанию
cat /etc/nginx/sites-enabled/default

# 4. Где лежат файлы сайта по умолчанию?
# (подсказка: ищите root в конфиге)

Задание 2.3: Создаём свой статический сайт

# 1. Создайте папку для своего сайта
mkdir -p /var/www/timurstatic.geekslore.ru

# 2. Создайте простую HTML-страницу
cat > /var/www/timurstatic.geekslore.ru/index.html << 'EOF'
<!DOCTYPE html>
<html>
<head>
    <title>Мой первый сайт</title>
</head>
<body>
    <h1>Привет, мир!</h1>
    <p>Это мой статический сайт на сервере</p>
    <p>Дата создания: $(date)</p>
</body>
</html>
EOF

# 3. Проверьте, что файл создался
ls -la /var/www/timurstatic.geekslore.ru/
cat /var/www/timurstatic.geekslore.ru/index.html

Задание 2.4: Создаём конфиг для сайта

# 1. Создайте файл конфигурации
cat > /etc/nginx/sites-available/timurstatic.geekslore.ru << 'EOF'
server {
    listen 80;
    server_name timurstatic.geekslore.ru;

    root /var/www/timurstatic.geekslore.ru;
    index index.html;

    access_log /var/log/nginx/timurstatic.access.log;
    error_log /var/log/nginx/timurstatic.error.log;
}
EOF

# 2. Включите сайт (создайте символьную ссылку)
ln -s /etc/nginx/sites-available/timurstatic.geekslore.ru /etc/nginx/sites-enabled/

# 3. Проверьте конфигурацию
nginx -t

# 4. Перезапустите nginx
systemctl reload nginx

Задание 2.5: Проверка

# 1. Локально (с сервера)
curl -H "Host: timurstatic.geekslore.ru" http://localhost

# 2. Проверьте логи
tail -f /var/log/nginx/timurstatic.access.log
# (в другом окне выполните curl ещё раз)

ПРОВЕРКА СЕБЯ:

  • [ ] Я могу установить программу через apt

  • [ ] Я могу запустить/остановить службу через systemctl

  • [ ] Я понимаю разницу между sites-available и sites-enabled

  • [ ] Я создал свой первый конфиг nginx

  • [ ] Я проверил конфиг через nginx -t

  • [ ] Мой сайт отвечает на запросы

ЗАДАНИЕ НА НЕДЕЛЮ:

Проект «Мой статический сайт»

  1. Улучшите HTML-страницу:

    • Добавьте CSS (хотя бы пару стилей)

    • Добавьте картинку (можно из интернета по URL)

    • Сделайте, чтобы страница показывала текущее время (JavaScript)

  2. Добавьте второй статический сайт для практики:

    • Создайте папку /var/www/test.geekslore.ru

    • Создайте простую страницу «Тестовая страница»

    • Создайте конфиг для test.geekslore.ru

    • Включите его

  3. Напишите отчёт week2-report.md:

    • Скриншот страницы в браузере (можно через curl или реальный браузер, если настроили DNS)

    • Содержание обоих конфигов

    • Команды, которые использовали

    • Что было сложного

    • Что узнали нового

Дополнительно (со звёздочкой):

  • Настройте, чтобы сайт timurstatic.geekslore.ru открывался по IP без указания Host (как сайт по умолчанию)