Ой, ничего не найдено!

К сожалению, по вашему запросу пока ничего нет (но это только пока!), зато вы можете подписаться на нашу замечательную email-рассылку, чтобы не пропустить самое интересное в будущем.

  • 144

Поднимаем свой сайт на VPS за вечер: честный пошаговый путь

  • 2 минуты на чтение

Часть 7 из 12 · Серия «Свой сервер с нуля»

К этому моменту у вас уже многое есть. Сервер арендован, вы заходите на него по SSH, вход закрыт ключом — мы прошли это в прошлых статьях. Не хватает главного: собственно сайта. Того, что откроется по вашему адресу, с зелёным замочком в браузере, и будет вашим.

Честно о том, что нас ждёт. За вечер вы реально успеете поднять универсальный каркас, на котором стоит любой сайт: веб-сервер, ваши файлы, домен и HTTPS. В качестве примера возьмём простой сайт — так нагляднее, — но эти же шаги лежат в основе и лендинга, и блога на WordPress, и приложения. Первые восемьдесят процентов пути у всех одинаковые.

И ещё честность: вряд ли всё взлетит идеально с первого раза. Где-то закрадётся опечатка в конфиге, где-то придётся подождать, пока домен «доедет». Это не ваша криворукость — так у всех. Я заранее покажу, где обычно спотыкаются.

На выходе у вас будет: ваши файлы, которые отдаёт nginx, по адресу https://ваш-домен.ru.

Что понадобится на старте

Сервер с доступом по SSH — он у нас есть. Домен — его покупают отдельно у регистратора, в стоимость VPS он не входит и обходится в считаные сотни рублей в год. Файлы сайта — для начала хватит одного index.html с парой строк. И час-два спокойного вечера без спешки.

Запуск за 2 минуты
Идея есть — пусть будет где её запустить
VPN, Telegram-бот, своё облако или пет-проект — арендуйте сервер за пару минут и проверьте идею в деле уже сегодня.
Создать сервер

Шаг 0. Быстрый чек сервера

Зайдите по SSH, обновите систему и убедитесь, что работаете под обычным пользователем с sudo, а не под root:

sudo apt update && sudo apt upgrade

Если вы шли по прошлым статьям, тут уже всё готово, и можно идти дальше.

Шаг 1. Ставим веб-сервер

Веб-сервер — это программа, которая принимает запросы браузеров и отдаёт им страницы. Берём nginx: лёгкий, быстрый и для нового проекта выбор по умолчанию, как мы разбирали в статье про холивар с Apache.

sudo apt install nginx

Если на сервере включён файрвол (а после статьи про ошибки новичка он у вас включён), не забудьте открыть веб-порты — ровно так же, как когда-то не забыли про SSH:

sudo ufw allow 'Nginx Full'

Теперь откройте в браузере http://IP_вашего_сервера. Должна появиться заглушка «Welcome to nginx». Это первый маленький триумф: на вашем сервере уже что-то живёт и отвечает всему интернету.

Шаг 2. Кладём файлы сайта

По умолчанию nginx отдаёт страницы из папки /var/www/html. Но чище завести под свой сайт отдельную папку — так проще, когда сайтов станет несколько:

sudo mkdir -p /var/www/ваш-сайт
от 0 ₽ на старте
Свой сервер по цене чашки кофе в неделю
Прозрачные тарифы без сюрпризов в чеке. Платите за то, что реально используете, и масштабируйтесь, когда вырастете.
Смотреть тарифы

Положите туда index.html. Для проверки достаточно простейшей страницы — пары строк текста хватит. Увидеть, что сервер отдаёт именно ваше содержимое, на этом этапе важнее красоты. Файлы с компьютера на сервер удобно доставлять по scp или через SFTP-клиент — это тот же SSH, только для передачи файлов.

Шаг 3. Направляем домен на сервер

Этот шаг делается не на сервере, а в личном кабинете у регистратора домена. В настройках DNS нужно добавить A-запись, которая связывает ваш домен с IP-адресом сервера: имя @ указывает на IP вашего сервера, и отдельной записью то же самое для www.

Здесь — самая честная оговорка вечера. Изменения DNS расходятся по интернету не мгновенно. Обычно это минуты, но иногда — несколько часов. Если домен сразу не открылся, это не ошибка, это нормальная задержка. Пока он «едет», можно спокойно заниматься следующим шагом.

Шаг 4. Настраиваем nginx под ваш домен

Теперь объясним nginx, что для вашего домена нужно отдавать файлы из вашей папки. Создайте конфиг сайта в /etc/nginx/sites-available/ваш-сайт примерно такого содержания:

server {
    listen 80;
    server_name ваш-домен.ru www.ваш-домен.ru;
    root /var/www/ваш-сайт;
    index index.html;
}

Включите этот сайт, создав ссылку на него в папке sites-enabled, и обязательно проверьте конфигурацию перед применением:

sudo nginx -t

Вот именно здесь чаще всего и вылезает опечатка — забытая точка с запятой, лишняя скобка. Не переживайте: nginx прямо скажет, в какой строке проблема. Поправили, добились ответа «syntax is ok» — и перезагружаете:

sudo systemctl reload nginx
1 месяц бесплатно
Первый сервер? Пусть будет нестрашным
Понятная панель, готовые шаблоны и поддержка, которая объясняет по-человечески. Поднимите проект, даже если SSH видите впервые.
Попробовать бесплатно

Если домен уже доехал, http://ваш-домен.ru теперь отдаёт ваш сайт.

Шаг 5. Включаем HTTPS — бесплатно

Тот самый зелёный замочек — это шифрование соединения, и сегодня оно бесплатно. Сертификаты выдаёт Let's Encrypt, а ставит и настраивает их утилита certbot:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d ваш-домен.ru -d www.ваш-домен.ru

Certbot сам получит сертификат, пропишет всё в конфиг nginx и настроит переадресацию с http на https — вам останется ответить на пару вопросов. Важное условие: к этому моменту домен уже должен указывать на сервер (шаг 3 должен «доехать»), иначе certbot не сможет подтвердить, что домен действительно ваш.

Сертификат живёт 90 дней, но беспокоиться об этом не нужно — certbot настраивает автоматическое продление и обновляет его сам, без вашего участия.

Готово — и что вы сейчас видите

Откройте https://ваш-домен.ru. Замок в адресной строке, ваш домен, ваше содержимое. Вот ради этого момента всё и затевалось — от чёрного экрана пару статей назад до работающего сайта с шифрованием на собственном адресе.

Честно про то, что дальше

Если ваш сайт — статика, лендинг или обычный HTML, вы закончили. Всё работает.

1 месяц бесплатно
Сервер с нуля — без боли и гугления каждой команды
Понятная панель, готовые шаблоны и поддержка, которая объясняет по-человечески. Поднимите проект, даже если SSH видите впервые.
Попробовать бесплатно

Если планируется WordPress или динамика, добавляется ещё один слой. Для WordPress это PHP и база данных (MariaDB или MySQL). Для приложения на Node или Python — среда выполнения и менеджер процессов, который держит его постоянно запущенным. Но — и это важно — первые пять шагов остаются ровно теми же. Сервер, nginx, домен и HTTPS — это фундамент, на который потом ставится любой движок. Так что считайте, что половину работы для будущего блога вы уже сделали сегодня. Сам движок — тема отдельного вечера.

Если что-то не открылось

Не открывается даже по IP — проверьте, запущен ли nginx (sudo systemctl status nginx) и пропускает ли файрвол порты 80 и 443. Открывается по IP, но не по домену — значит, DNS ещё не доехал или A-запись смотрит не на тот адрес. Certbot не выдал сертификат — почти всегда дело в том, что домен пока не указывает на сервер или закрыт порт 80. Ошибка при перезагрузке nginx — запустите sudo nginx -t, он покажет строку с проблемой.

Шаг Что делаем
1 Ставим nginx: sudo apt install nginx
2 Кладём файлы в /var/www/ваш-сайт
3 A-запись у регистратора → IP сервера
4 Конфиг в sites-available, nginx -t, reload
5 HTTPS: sudo certbot --nginx -d ваш-домен.ru

За один вечер вы прошли путь от пустого сервера до сайта с замочком на своём домене. Получилось не с первого клика — это нормально, опечатка в конфиге и задержка DNS случаются у всех. Главное другое: теперь это ваш сервер и ваш сайт, и вы понимаете, из каких деталей он собран. А это уже совсем не то же самое, что нажать «опубликовать» в чужом конструкторе.


Серия «Свой сервер с нуля»

Полный цикл — от выбора хостинга до рабочего сайта с почтой, Docker и бэкапами. Вы читаете часть 7 из 12.

  1. VDS, VPS, хостинг, облако — что это
  2. Nginx vs Apache: холивар, который пора закрыть
  3. Зачем арендовать сервер, если есть хостинг за 100 ₽
  4. SSH для тех, кто боится чёрного экрана
  5. Как не запороть сервер в первый день: топ ошибок
  6. SSH-ключи за 10 минут: вход без пароля
  7. Поднимаем свой сайт на VPS за вечер — вы здесь
  8. Ставим WordPress на свой VPS
  9. Свой почтовый сервер — героизм или мазохизм?
  10. Docker на VPS: спасение или пушка по воробьям
  11. Настраиваем домен и SSL, чтобы браузер не ругался
  12. Бэкапы, которые реально спасут

← Предыдущая: SSH-ключи за 10 минут: вход без пароля · Следующая: Ставим WordPress на свой VPS →

Хостинг Siteko

VDS с первого дня

Свой сервер Siteko под полным контролем

NVMe-диски, root-доступ и честные ресурсы без «соседей». Поднимите VPN, бота или прод-проект и масштабируйтесь без тесных рамок.

  • Root-доступ полная свобода настройки под ваш стек.
  • NVMe и свежее железо скорость заметна с первого запроса.
  • Перенос бесплатно поможем переехать без простоя.
Выбрать VDS