Главная / Программа / Урок 10
УРОК 10 ИЗ 12

Сервер с нуля: Linux, SSH, nginx

Подключаемся к серверу, осваиваем Linux и ставим веб-сервер.

⏱ 50 мин🏷 server, linux, ssh, nginx

Чему научишься

Подключение по SSH

SSH — безопасный способ управлять удалённым сервером из своего терминала. Через Google Cloud это делается одной командой (ключи создаются автоматически):

вход на сервер
gcloud compute ssh ИМЯ_VM \
  --zone=us-central1-a \
  --project=ТВОЙ_PROJECT_ID

# Или классически, если настроен ключ:
ssh user@34.56.34.99

После входа приглашение в терминале сменится — теперь команды выполняются на сервере, а не на твоём компьютере.

💡

Claude Code тоже умеет работать с сервером: дай ему команду подключения, и он будет выполнять задачи на сервере за тебя — ровно так настроен этот курс.

Основы Linux

команды Linux
whoami           # кто я
pwd              # где я
ls -la           # файлы с деталями и скрытые
sudo COMMAND     # выполнить как администратор
apt update       # обновить список пакетов
htop             # что нагружает сервер (q — выход)
df -h            # сколько места на диске

Навигация и файлы

файлы и папки
cd /var/www        # перейти в папку
cd ~               # домой
cd ..              # на уровень вверх
ls -lh             # список с размерами по-человечески
mkdir -p a/b/c     # создать вложенные папки
touch file.txt     # создать пустой файл
cp a.txt b.txt     # копировать
cp -r dir1 dir2    # копировать папку
mv old.txt new.txt # переименовать / переместить
rm file.txt        # удалить файл
rm -r dir          # удалить папку (осторожно!)
cat file.txt       # показать содержимое
less file.txt      # листать большой файл (q — выход)
head -n 20 f.txt   # первые 20 строк
tail -n 50 f.txt   # последние 50 строк
tail -f app.log    # следить за логом в реальном времени

Поиск и просмотр

поиск
grep "ошибка" app.log          # найти строки с текстом
grep -ri "todo" .              # рекурсивно, без учёта регистра
find . -name "*.html"          # найти файлы по имени
find / -type d -name nginx     # найти папки
wc -l file.txt                 # сколько строк
history                        # история команд
ls -la | grep .conf            # конвейер: вывод одной команды в другую
💡

Символ | (конвейер) соединяет команды: левая отдаёт вывод правой. > пишет вывод в файл, >> дописывает в конец.

Процессы и система

процессы и ресурсы
ps aux                  # все запущенные процессы
ps aux | grep nginx     # найти процесс по имени
kill 1234               # завершить процесс по PID
kill -9 1234            # принудительно
top                     # нагрузка в реальном времени
free -h                 # сколько свободно памяти
df -h                   # место на диске
du -sh *                # размер папок в текущей директории
uptime                  # сколько работает сервер
ip a                    # сетевые адреса
ss -tlnp                # какие порты слушаются

Сервисы (systemctl)

управление сервисами
sudo systemctl status nginx     # статус сервиса
sudo systemctl start nginx      # запустить
sudo systemctl stop nginx       # остановить
sudo systemctl restart nginx    # перезапустить
sudo systemctl reload nginx     # перечитать конфиг без простоя
sudo systemctl enable nginx     # автозапуск при загрузке
sudo journalctl -u nginx -n 50  # последние 50 строк логов сервиса
sudo journalctl -u nginx -f     # следить за логами вживую

Пакеты и установка

установка софта (Debian/Ubuntu)
sudo apt update                 # обновить список пакетов
sudo apt upgrade -y             # обновить установленное
sudo apt install -y git curl    # установить программы
sudo apt remove nginx           # удалить
apt search node                 # поиск пакета
which python3                   # где лежит программа

Права доступа

права на файлы
ls -l                       # колонка вроде -rwxr-xr-x — это права
chmod +x script.sh          # сделать файл исполняемым
chmod 644 file.txt          # чтение всем, запись владельцу
sudo chown www-data:www-data -R /var/www/site   # сменить владельца
sudo chmod -R 755 /var/www/site                 # права на папку сайта
💡

Права в виде 755: первая цифра — владелец, вторая — группа, третья — все остальные. 7=чтение+запись+запуск, 5=чтение+запуск, 4=только чтение.

Редактирование файлов

правка конфигов прямо на сервере
nano /etc/nginx/sites-available/site   # простой редактор
# Внутри nano: Ctrl+O — сохранить, Ctrl+X — выйти

vim file.txt   # мощный редактор: i — ввод, Esc — выход в режим, :wq — сохранить и выйти

Не хочешь редактировать вручную? Подключи Claude Code к серверу и просто скажи: «открой конфиг nginx и добавь редирект». Агент сделает это командами за тебя.

Права и sudo

В Linux действия, затрагивающие систему (установка программ, правка системных файлов), требуют прав администратора — пишешь sudo перед командой. Будь аккуратен: sudo может и сломать систему.

⚠️

Никогда не запускай команды из интернета через sudo, не понимая, что они делают. Особенно rm -rf.

Обновляем сервер

первым делом на новом сервере
sudo apt update && sudo apt upgrade -y

Что такое nginx и apache

Веб-сервер — программа, которая принимает запросы из интернета (по портам 80/443) и отдаёт твои страницы. Два главных: nginx (лёгкий, быстрый, популярен для статики и прокси) и Apache (классика, гибкий через .htaccess). Мы используем nginx.

Ставим nginx

установка веб-сервера
sudo apt install -y nginx
sudo systemctl enable --now nginx   # запустить и в автозагрузку
sudo systemctl status nginx         # проверить, что работает

Теперь открой в браузере внешний IP сервера (например http://34.56.34.99) — увидишь дефолтную страницу nginx. Сервер слушает мир!

Не открывается? Проверь, что в firewall облака разрешены порты 80/443 (мы делали это в уроке 2) — без этого никто снаружи не достучится.

Где лежат файлы сайта

Практика

🛠 Подними веб-сервер

Зайди на свой сервер по SSH, обнови систему, установи nginx и открой его дефолтную страницу по внешнему IP в браузере. Затем замени её на простой «Hello» силами агента.

Чеклист

Готово, если:

  • Ты заходишь на сервер по SSH
  • Знаешь базовые команды Linux и роль sudo
  • nginx установлен, запущен и виден по IP в браузере

📖 Термины этого урока

Незнакомое слово? Нажми — откроется полное объяснение в словаре.