Сайт-визитка на VPS за час: домен, HTTPS, страница

Основы и выбор
Сайт-визитка на VPS за час: домен, HTTPS, страница

Сайт-визитка — это одна аккуратная страница: кто вы, чем занимаетесь, как с вами связаться. Конструкторы предлагают собрать её «бесплатно», а потом просят 300–700 ₽ в месяц за свой домен и отключение рекламы. Мы пойдём другим путём: возьмём NAT VPS за 59 ₽/мес, привяжем собственный домен, включим HTTPS и выложим страницу — весь сценарий укладывается в час даже без опыта администрирования. Эта статья — маршрут из готовых блоков: на каждом шаге короткая инструкция и ссылка на подробный гайд.

Что получится в итоге

К концу часа у вас будет:

  • собственный домен вида ivanov.ru, который принадлежит вам, а не конструктору;
  • страница, открывающаяся по HTTPS с валидным сертификатом;
  • сервер, на котором позже поместятся ещё и портфолио, и пет-проекты;
  • фиксированные расходы: 59 ₽/мес за сервер плюс цена домена (обычно 200–400 ₽ в год за зону .ru).

Для одностраничника не нужен мощный сервер: статическую страницу Nginx отдаёт за миллисекунды практически на любом железе. Поэтому берём самый доступный тариф — NAT Start за 59 ₽/мес. Это VPS в Германии с общим IPv4-адресом: вам выдаётся диапазон из 999 портов, а трафик на стандартные порты 80/443 мы заведём через бесплатный прокси Cloudflare. Для визитки это рабочая и очень экономная схема.

План на час

ШагЧто делаемВремяПодробный гайд
1Покупаем NAT VPS5 мин—
2Базовая настройка сервера10 минПервые шаги после покупки VPS
3Домен и DNS через Cloudflare10 минПривязка домена к VPS
4Nginx и страница15 минСтатичный сайт на VPS
5HTTPS-сертификат10 минSSL-сертификат Let's Encrypt

Осталось ещё 10 минут запаса на кофе и опечатки в конфигах.

Шаг 1. Покупаем сервер (5 минут)

Заходим на страницу NAT VPS, выбираем тариф NAT Start, оплачиваем. Сервер выдаётся автоматически за 45–60 секунд — в панели появятся IP-адрес, ваш диапазон портов и данные для SSH-доступа.

Два момента, которые стоит знать заранее:

  • IPv4-адрес общий, поэтому «голый» IP в браузере ваш сайт не откроет — нужен домен и прокси (шаг 3);
  • порт 25 закрыт, то есть почтовый сервер на этой машине не поднять. Для визитки это не проблема: форму обратной связи лучше делать через сторонний сервис или просто указать e-mail.

Шаг 2. Базовая настройка (10 минут)

Подключаемся по SSH (порт из панели) и делаем минимальную гигиену. Полный чек-лист — в статье «Первые шаги после покупки VPS», здесь короткая версия:

# Обновляем систему
apt update && apt upgrade -y

# Создаём пользователя вместо root
adduser web
usermod -aG sudo web

# Ставим базовые пакеты
apt install -y nginx ufw curl

Если какая-то команда выглядит незнакомо — держите под рукой шпаргалку «Основные команды Linux»: для этого сценария хватает десятка команд.

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

ufw allow <ваш_ssh_порт>/tcp
ufw allow 20443/tcp
ufw enable

Шаг 3. Домен и Cloudflare (10 минут)

Купите домен у любого регистратора и подключите его к бесплатному тарифу Cloudflare: он возьмёт на себя DNS, спрячет схему с портами и будет отдавать сайт посетителям по стандартному 443-му порту.

Порядок действий:

  1. В Cloudflare добавьте сайт и смените NS-записи у регистратора на выданные.
  2. Создайте A-запись @ → IP вашего сервера, режим Proxied (оранжевое облако).
  3. В разделе Rules создайте Origin Rule: для вашего домена переопределите порт назначения (destination port) на порт из вашего диапазона, например 20443.

Теперь посетитель открывает https://ivanov.ru, Cloudflare принимает запрос на 443-м порту и проксирует его на ваш сервер на порт 20443. Подробно про DNS-записи, TTL и проверку распространения — в гайде «Привязка домена к VPS».

Шаг 4. Nginx и сама страница (15 минут)

Создаём каталог сайта и кладём туда страницу:

mkdir -p /var/www/vizitka
nano /var/www/vizitka/index.html

Минимальный честный одностраничник — это заголовок, пара абзацев о себе, список услуг и контакты. Готовый бесплатный шаблон можно взять из любого набора HTML5-темплейтов и просто заменить тексты. Конфиг Nginx:

cat > /etc/nginx/sites-available/vizitka <<'EOF'
server {
    listen 20443 ssl;
    server_name ivanov.ru www.ivanov.ru;

    root /var/www/vizitka;
    index index.html;

    ssl_certificate     /etc/ssl/vizitka/cert.pem;
    ssl_certificate_key /etc/ssl/vizitka/key.pem;
}
EOF

ln -s /etc/nginx/sites-available/vizitka /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

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

Шаг 5. HTTPS (10 минут)

Так как порт 80 снаружи недоступен напрямую, классическая HTTP-проверка Let's Encrypt не подойдёт. Есть два рабочих варианта:

Вариант А (быстрый): Origin-сертификат Cloudflare. В панели Cloudflare (SSL/TLS → Origin Server) создайте сертификат сроком до 15 лет, сохраните cert.pem и key.pem в /etc/ssl/vizitka/, а режим шифрования переключите на Full (strict). Готово за пять минут.

Вариант Б (универсальный): Let's Encrypt по DNS-проверке. Certbot с плагином dns-cloudflare подтверждает владение доменом через DNS-запись, порт 80 не нужен:

apt install -y certbot python3-certbot-dns-cloudflare
certbot certonly --dns-cloudflare \
  --dns-cloudflare-credentials /root/.secrets/cf.ini \
  -d ivanov.ru -d www.ivanov.ru

Оба варианта, а также автопродление и типичные ошибки, подробно разобраны в гайде «SSL-сертификат Let's Encrypt». После установки сертификата откройте сайт в браузере — замочек на месте, визитка работает.

Что можно улучшить потом

Часовой сценарий закрывает базу, дальше — по желанию:

УлучшениеЗачемСложность
Форма обратной связи через сторонний сервисЗаявки без своего почтового сервераНизкая
Раздел «Портфолио» из нескольких страницБольше доверия от клиентовНизкая
Favicon, Open Graph-разметкаКрасивые превью в мессенджерахНизкая
Простая аналитикаПонимать, откуда приходят посетителиСредняя

Всё это живёт на том же NAT Start — запас по ресурсам у статического сайта огромный.

Частые вопросы

Можно ли обойтись без своего домена?

Технически на NAT VPS без домена не обойтись: IPv4-адрес общий, и именно домен позволяет Cloudflare направить запрос на ваш сервер. Но это и к лучшему — визитка на «голом» IP выглядела бы несерьёзно. Домен в зоне .ru стоит от 200 ₽ в год, и он навсегда ваш, в отличие от адреса вида vasya.builder-site.com.

Почему не бесплатный конструктор?

Бесплатный тариф конструктора — это чужой поддомен, реклама и невозможность переехать. Как только понадобится свой домен, цена подскакивает до 300–700 ₽/мес. Связка «NAT VPS + домен» обходится примерно в 80–90 ₽/мес суммарно, при этом страница полностью ваша: хоть завтра перенесите её на другой сервер простым копированием файлов.

Сколько посетителей выдержит сайт на NAT Start?

Статическая страница — самый лёгкий тип нагрузки: Nginx отдаёт готовый HTML без вычислений. Для визитки с десятками и даже сотнями посетителей в день ресурсов тарифа хватает с большим запасом, а Cloudflare дополнительно кеширует статику на своих серверах.

Нужна ли CMS вроде WordPress?

Для одной страницы — нет. CMS требует PHP и базу данных, её нужно обновлять и защищать. Статический HTML не ломается, не взламывается через плагины и не тормозит. Если позже захотите блог, страницу можно пересобрать генератором статических сайтов, не меняя сервер.

Что делать, если что-то пошло не так?

Сначала проверьте цепочку по порядку: открывается ли сайт по curl -k https://127.0.0.1:20443 с самого сервера (проблема в Nginx или нет), затем DNS-записи и Origin Rule в Cloudflare, затем firewall (ufw status). В 90% случаев причина — опечатка в порте или незапущенный Nginx после правки конфига.

Запускайте за 59 ₽ в месяц

Сайт-визитка — идеальный первый проект на своём сервере: час работы, и у вас страница на собственном домене с HTTPS. Тариф NAT Start за 59 ₽/мес выдаётся за 45–60 секунд, а когда визитка перерастёт в портфолио или блог, сервер останется тем же. Заказать NAT VPS на Cheap-Host →

Читайте также