VK Cloud

Как задеплоить сайт на облачный сервер: полное руководство с Nginx и HTTPS

31 марта 2026 г.
268267_007n7ek.jpg
Евгений Левашов
Автор статьи
_blog_head_181.png

Виртуальный хостинг справляется с сайтом-визиткой или блогом на WordPress, но как только появляется нестандартный стек, высокая нагрузка или несколько приложений на одном IP — начинаются ограничения. Облачный сервер решает эти проблемы: root-доступ, любые пакеты, предсказуемая производительность и оплата только за то, что реально используется.

В этом руководстве рассмотрим конкретные шаги от создания виртуальной машины до работающего сайта с SSL-сертификатом. Руководство рассчитано на Ubuntu 22.04 LTS и VK Cloud, но подходит для любого облачного провайдера с VPS на базе Linux. Все команды ниже готовы к выполнению в терминале.

Что такое облачный сервер и зачем он нужен

Облачный сервер, или виртуальная машина (VPS), — это изолированный вычислительный ресурс с выделенными процессором, оперативной памятью и диском. В отличие от физического сервера, его арендуют хоть на час, масштабируют за минуты и платят только за фактическое потребление.

Российский рынок облачных сервисов в 2025 году достиг 400–416 млрд рублей, показав рост 30–35% год к году. По прогнозу iKS-Consulting, среднегодовой темп роста до 2030 года составит около 24%.

Главное, чем облачный сервер отличается от виртуального хостинга — полная изолированность ресурсов. На виртуальном хостинге процессор и память делятся между всеми клиентами одной физической машины, тогда как у облачного сервера три принципиальных преимущества:

  • Полный контроль: root-доступ, любые пакеты, любые конфигурации.
  • Предсказуемая производительность: ресурсы выделены конкретной виртуальной машине и не зависят от нагрузки соседей.
  • Гибкость: поднять дополнительный сервер или добавить RAM можно за считанные минуты.

Когда нужен облачный сервер, а не хостинг

Виртуальный хостинг обычно подходит для сайтов-визиток и простых блогов на WordPress. Но дальше начинаются нюансы.

Выбирайте облачный сервер, если:

Ситуация Причина
Нестандартный стек (Node.js, Python, Go) На виртуальном хостинге часто нет нужных версий
Высокая нагрузка (>1000 запросов/мин) Shared-хостинг ограничивает CPU и RAM
Нужен Docker или кастомный Nginx Root-доступ обязателен
Несколько приложений на одном IP Виртуальные хосты Nginx
Приватный GitHub-репозиторий Настройка SSH-ключей на сервере

Шаг 1. Арендуем и настраиваем сервер

Создание виртуальной машины в облачной панели занимает 10–15 минут. Ниже — пример для VK Cloud, но последовательность аналогична у большинства провайдеров: выбор ОС, конфигурации, сети и SSH-ключа.

  1. Войдите в личный кабинет на cloud.vk.com.
  2. Перейдите в Облачные вычисления → Виртуальные машины → Создать инстанс.
  3. Укажите имя, выберите ОС — Ubuntu 22.04 LTS.
  4. Выберите конфигурацию. Для старта подходит например Standard-2-2 (2 vCPU, 2 ГБ RAM).
  5. В разделе «Сеть» выберите «Внешняя сеть (internet)» — публичный IP назначится автоматически.
  6. Создайте или выберите SSH-ключ и скачайте .pem-файл для подключения.

Security Groups — это правила файрвола, которые определяют, какой сетевой трафик может поступать на сервер и уходить с него. По умолчанию весь входящий трафик заблокирован. Для работы веб-сервера необходимо открыть три порта: TCP 22 (SSH-подключение), TCP 80 (HTTP) и TCP 443 (HTTPS).

Шаг 2. Подключаемся к серверу по SSH

Подключение к облачному серверу выполняется по протоколу SSH с использованием приватного ключа, который был создан на предыдущем шаге. Ключевой файл должен иметь права доступа 400 (только чтение для владельца), иначе SSH-клиент откажет в подключении из соображений безопасности.

chmod 400 /path/to/your-key.pem ssh -i /path/to/your-key.pem ubuntu@<IP-адрес>

В VK Cloud пользователь по умолчанию — ubuntu (не root). У других облачных провайдеров имя пользователя может отличаться: например, ec2-user в AWS или azureuser в Azure.

Шаг 3. Настраиваем SSH-ключ для GitHub

SSH-ключ для GitHub нужен, если исходный код сайта хранится в приватном репозитории. Ключ позволяет серверу аутентифицироваться в GitHub без пароля и безопасно клонировать репозиторий. Если репозиторий публичный, этот шаг можно пропустить.

ssh-keygen -t ed25519 -C "deploy@yourserver" -f ~/.ssh/github_deploy cat ~/.ssh/github_deploy.pub cat ~/.ssh/github_deploy.pub

Скопируйте содержимое публичного ключа (github_deploy.pub) и добавьте его в настройках GitHub: Settings → Deploy keys → Add deploy key. Алгоритм Ed25519 рекомендован GitHub как более безопасный и быстрый по сравнению с RSA.

Шаг 4. Клонируем проект и устанавливаем Nginx

Nginx — это веб-сервер и обратный прокси, который отдаёт статические файлы сайта по HTTP/HTTPS. После установки Nginx необходимо клонировать репозиторий с кодом сайта в директорию веб-сервера и назначить корректные права доступа.

sudo apt install nginx -y git clone https://github.com/username/your-repo.git /var/www/mysite git clone https://github.com/username/your-repo.git /var/www/mysite sudo chown -R www-data:www-data /var/www/mysite sudo find /var/www/mysite -type d -exec chmod 755 {} \; sudo find /var/www/mysite -type f -exec chmod 644 {} \;

Права 755 для директорий (чтение и переход для всех, запись только для владельца) и 644 для файлов (чтение для всех, запись только для владельца) — стандарт безопасности для веб-серверов. Владелец www-data — это системный пользователь, от имени которого работает Nginx.

Шаг 5. Настраиваем виртуальный хост Nginx

Конфигурация виртуального хоста Nginx определяет, какой домен обслуживается, где лежат файлы сайта и как обрабатываются запросы. Файл конфигурации создаётся в директории /etc/nginx/sites-available/, а затем активируется символической ссылкой в /etc/nginx/sites-enabled/.

server { listen 80; listen 80; server_name yourdomain.ru www.yourdomain.ru; root /var/www/mysite; index index.html index.htm; location / { try_files $uri $uri/ =404; } }
  • listen 80 — сервер принимает HTTP-запросы на порту 80.
  • server_name — домены, на которые Nginx будет отвечать.
  • root — путь к файлам сайта.
  • try_files — Nginx ищет запрошенный файл, затем директорию, иначе возвращает ошибку 404.
sudo ln -s /etc/nginx/sites-available/mysite /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx

Команда nginx -t проверяет синтаксис конфигурации перед применением. Если конфигурация содержит ошибку, Nginx не перезагрузится и выведет описание проблемы.

Шаг 6. Подключаем домен

Привязка домена к серверу выполняется через DNS-записи: A-запись связывает доменное имя с IP-адресом сервера. В VK Cloud доступен встроенный DNS-хостинг с NS-серверами:

ns1.mcs.mail.ru ns2.mcs.mail.ru

Для использования DNS VK Cloud необходимо указать эти NS-серверы у регистратора домена. DNS-изменения применяются от нескольких минут до 48 часов. В редких случаях — до 72 часов (зависит от TTL и настроек провайдера). Проверить текущее состояние DNS можно командой dig yourdomain.ru +short.

Шаг 7. Подключаем HTTPS-сертификат

Let's Encrypt — крупнейший центр сертификации: ~63% всех SSL-сертификатов в интернете. Сервис бесплатный.

sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d yourdomain.ru -d www.yourdomain.ru

Сертификаты Let's Encrypt действуют 90 дней (в 2027–2028 гг. срок сократится до 45 дней по требованиям CA/Browser Forum). Certbot при установке создаёт задачу автопродления.

sudo certbot renew --dry-run

Шаг 8. Как обновлять сайт после деплоя

Обновление сайта на сервере сводится к загрузке последних изменений из Git-репозитория и перезагрузке Nginx. Перед перезагрузкой обязательна проверка конфигурации командой nginx -t, чтобы ошибка в конфигурации не привела к остановке сервера.

cd /var/www/mysite git pull origin main sudo nginx -t && sudo systemctl reload nginx

Такой ручной процесс подходит для небольших проектов. Для продакшен-сайтов с частыми обновлениями рекомендуется настроить CI/CD (например, GitHub Actions), который будет автоматически деплоить изменения при пуше в ветку main.

cloud.png

Подберём облако под вашу задачу за 60 секунд

Ответьте на 4 вопроса и получите рекомендацию по выбору подходящих для вас облачных сервисов

Частые ошибки при деплое сайта на облачный сервер

Восемь типичных проблем, с которыми сталкиваются при первом деплое, и способы их решения:

  1. Брутфорс SSH89% атак на Linux-серверы направлены на подбор паролей SSH (Elastic, 2024 Global Threat Report. Защита: использовать SSH-ключи вместо паролей, установить Fail2Ban для блокировки IP после неудачных попыток.
  2. Невалидная конфигурация Nginx — Nginx не запустится и не перезагрузится, если в конфигурационном файле есть синтаксическая ошибка. Перед каждым reload выполняйте sudo nginx -t.
  3. Закрытые порты в файрволе — UFW (локальный файрвол) и Security Groups (облачный файрвол) в VK Cloud блокируют весь входящий трафик по умолчанию. Необходимо явно открыть порты 80 и 443.
  4. Конфигурация без активации — файл в sites-available без символической ссылки в sites-enabled не загружается Nginx.
  5. Ожидание DNS — DNS-изменения распространяются от нескольких минут до 48 часов.
  6. Certbot не находит домен — Certbot не сможет выпустить сертификат, пока DNS-запись A не указывает на IP-адрес сервера.
  7. 502 Bad Gateway — означает, что Nginx работает, но бэкенд-приложение (Node.js, Python, PHP-FPM) не запущено или слушает другой порт.
  8. Ошибки прав доступа — Nginx работает от системного пользователя www-data. Файлы сайта должны иметь права: директории 755, файлы 644, владелец www-data.

Итог

Деплой сайта на облачный сервер по схеме VPS + Ubuntu + Nginx + Let's Encrypt занимает 30–60 минут и не требует специальных DevOps-навыков. Nginx обслуживает 33,8% сайтов в мире (более 60% в России), Let's Encrypt обеспечивает ~63% всех SSL-сертификатов — это проверенный и широко используемый стек. Руководство подходит для статических сайтов и SPA; для приложений с серверным бэкендом потребуется дополнительная настройка reverse proxy в Nginx.

Оставьте заявку, чтобы получить консультацию

Наши специалисты свяжутся с вами в ближайшее время и ответят на все вопросы.

section_subscribe_2x_9ab2d878a6.png

            Узнавайте о выходе новых статей в блоге первыми!

            Будем держать в курсе новостей и облачных трендов

            section-subscribe_2x.png
              section-subscribe_2x.png
              Теги: Nginx, VK Cloud, облачный сервер
              Ссылка скопирована
              Поделиться

              Почитать по теме

              _blog_head_172.png
              3 августа

              Гибридное облако: как объединить локальную инфраструктуру с облаком VK Cloud

              _blog_head_45.png
              23 июля

              От текущих вызовов к нео-клинике: в деталях о потенциале внедрения Cloud и AI для развития медицинской отрасли

              _blog_head_32.png
              23 июля

              Варианты применения облачных сервисов в медицине: обзор решений от VK Cloud

              40+ готовых сервисов