О чём этот курс
Десять уроков, которые проводят один небольшой сайт от пустого
доменного имени в вебе до сервера, которым вы
управляете сами. Каждый урок объясняет одну часть цепочки, даёт команды
в том порядке, в каком они выполняются, и заканчивается коротким тестом.
Ничего теоретического здесь нет: каждая команда — та, что вы набираете
на своей машине или на сервере.
Курс не заменяет справочные страницы, на которые ссылается по дороге.
Когда урок говорит "установите Nginx" и ссылается на
установку Nginx на Ubuntu,
урок объясняет, где этот шаг стоит во всей картине, а страница по
ссылке объясняет подробности.
Кому подойдёт
- Новичку, который сделал сайт на ноутбуке и хочет выложить его в интернет под настоящим именем.
- Владельцу сайта на виртуальном хостинге, которому надоели ограничения панели управления и который думает о VPS.
- Разработчику, который пишет код, но никогда не трогал записи DNS, файрвол или почтовый сервер.
- Всем, кому на работе приходится отвечать на вопрос "почему сайт лежит и в безопасности ли наша почта?".
Опыт работы с серверами не нужен. Нужно уметь открыть терминал, отредактировать текстовый файл и прочитать имя команды без страха. Машина с Linux помогает, но первые уроки можно пройти на любой системе, где есть dig и whois, а уроки про сервер начинаются со свежей установки Ubuntu 24.04.
Что вы будете уметь в конце
- Регистрировать доменное имя, держать данные владельца в порядке и защищать аккаунт регистратора.
- Объяснять, что делают DNS-сервер, запись A и TTL, и подключать домен к любому хостингу без догадок.
- Размещать сайт с базой данных и HTTPS на виртуальном хостинге, а потом переносить тот же сайт на VPS или выделенный сервер.
- Устанавливать и настраивать Nginx, PHP-FPM и MariaDB из командной строки.
- Закрывать сервер от посторонних: ключи вместо паролей, файрвол, автоматические обновления, отдельный пользователь и отдельный пул PHP на каждый сайт.
- Отправлять и получать почту на своём домене с SPF, DKIM и DMARC.
- Знать угрозы, с которыми сталкиваются хостинг-провайдер и владелец сервера, и понимать, какие из них встретятся вам первыми.
- Поддерживать сайт живым с помощью резервных копий, мониторинга и расписания обслуживания.
Уроки
Читайте по порядку. Каждый урок заканчивается ссылкой на следующий, а тест в конце проверяет, что команды этого урока понятны, прежде чем вы будете на них опираться.
- Как устроены доменные имена и как зарегистрировать своё: дерево DNS, реестры и регистраторы, шаги регистрации и что происходит, когда домен заканчивается.
- Как работает веб-хостинг: сервер, веб-сервер, виртуальные хосты, обработчики PHP, базы данных и то, сколько клиентов делят одну машину.
- Подключить домен к хостингу: делегирование или свои записи DNS, A, AAAA, CNAME, MX, TXT, TTL и первый сертификат HTTPS.
- Сайт на виртуальном хостинге: аккаунт, загруженные файлы, база данных и небольшая страница на PHP, которая её использует, перенаправления, почтовый ящик и резервные копии.
- Тот же сайт на VPS или выделенном сервере: Ubuntu 24.04, ключи SSH, Nginx, PHP-FPM, MariaDB, перенос с rsync и сертификаты.
- Что ещё нужно знать администратору сервера: карта навыков, как их освоить, сертификаты и следующие технологии.
- Проблемы безопасности хостинга: с чем провайдеры борются каждый день и какие угрозы первыми встречает владелец сервера — по порядку.
- Защитить сервер по шагам: SSH, fail2ban, файрвол, обновления, права доступа, TLS, резервные копии и мониторинг.
- Почта на своём домене: MX, SPF, DKIM, DMARC, обратный DNS, Postfix, Dovecot и как проверить то, что вы построили.
- Чек-лист запуска и план обслуживания: один список от домена до почты, расписание на день, неделю и месяц и что проверять первым, когда сайт лежит.
Отдельная необязательная статья. Курсу WordPress не нужен. Если вы уже им пользуетесь, Отдельная статья: WordPress на виртуальном хостинге и на VPS собирает шаги для WordPress, которых в уроках больше нет. Остальные читатели могут её пропустить.
Как пользоваться курсом
Делайте шаги на настоящем домене и настоящем сервере, а не только в
голове. Дешёвый VPS на месяц стоит меньше, чем время, которое вы
потратите на догадки, что пошло не так. Заведите блокнот или простой
текстовый файл, куда записывайте каждую выполненную команду и каждое
заданное значение: IP-адрес, DNS-серверы, имя базы данных, открытые
порты. Когда что-то сломается, этот файл — первое место, где стоит
смотреть.
Тест после каждого урока — не экзамен. Ответ раскрывается по щелчку,
так что сначала можно подумать, а потом проверить себя. Если два ответа
подряд оказались неожиданными, перечитайте урок, прежде чем идти
дальше: следующий предполагает, что команды предыдущего уже работают.
Соглашения в уроках
- Домен — example.com, IPv4-адрес — 203.0.113.10, IPv6-адрес — 2001:db8::10. Это адреса для документации: замените их своими и никогда не публикуйте настоящие в руководстве.
- Сервер работает на Ubuntu 24.04 LTS с Nginx, PHP-FPM 8.3, MariaDB, certbot, ufw, fail2ban, Postfix и Dovecot. Другой дистрибутив работает так же, только со своим менеджером пакетов и своими путями к файлам.
- Команда, которую вы набираете, начинается с отдельной строки в тёмном блоке. Вывод под ней сокращён до строк, которые важны; ваши числа, пути и версии будут другими.
- Строки, которые начинаются с sudo, выполняются от root. Когда урок говорит "на вашем компьютере", он имеет в виду машину перед вами; когда "на сервере" — машину, к которой вы подключаетесь по SSH.
- Слова в моноширинном шрифте — это имена файлов, настройки или команды, упомянутые внутри предложения.