Как арендовать доменное имя и купить домен для сайта или услуг через NGINX

Как арендовать доменное имя и купить домен для сайта или услуг через NGINX Хостинг

  • DevMan

Каждый день мы гуляем по десяткам сайтов: работаем, читаем новости, смотрим видео и слушаем музыку. Эти действия настолько автоматизированны, что нет потребности понимать, где находятся сайты и почему переход по адресу ru.hexlet.io откроет именно сайт Хекслета, а не музыкальный сервис или новостной портал про котиков.

В этом гайде разберем:

  • Как появились домены
  • Кто такие хостеры и где лежит сайт в интернете
  • Какие виды хостингов используются

Вы зарегистрировали домен для сайта и выбрали хостинг – первые шаги к размещению вашего ресурса в интернете сделаны. Следующий этап – привязать домен к хостингу. То есть сделать так, чтобы при обращении к вашему имени сайта (домену) запросы из браузера отправлялись на сервер хостера, где лежат файлы сайта.

В этой статье расскажем, как установить домен на хостинг, автоматически и вручную, а также как привязать поддомены.

Важно! Интерфейс настроек и некоторые их возможности будут отличаться у разных хостеров и регистраторов доменных имен. Мы постараемся дать общее понимание, в чем заключается процесс и возможные варианты действий. Если после прочтения статьи вам все еще будет непонятно, как привязать домен к хостингу – рекомендуем обратиться в техподдержку вашего хостера.

Время на прочтение

Как арендовать доменное имя и купить домен для сайта или услуг через NGINX

Этот небольшой гайд для тех, кто давно хотел сделать свой сайт на своем домене и разместить на своем сервере, но все никак.

С чем будем работать далее:

  • Узнаем, что такое доменное имя и как оно связано с DNS.

  • Зарегистрируем свой домен и узнаем, что это быстро, легко и может стоить 199 рублей за первый год (продление может стоить дороже, а цены варьироваться в зависимости от регистратора).

  • Настроим ресурсные записи, чтобы привязать доменное имя сайта к вашему IP‑адресу. Дополнительно рассмотрим, как при помощи DDNS автоматизировать обновление адресов, если у вас нет выделенного IP.

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

  • Развернем http‑сервер NGINX.

  • Настроим конфигурацию для размещения сайта и проверим, что сайт‑лендинг открывается.

  • Узнаем, как прикрутить ssl сертификаты и https.

  • Если используются какие‑то другие сервисы, например, nodered, узнаем, как использовать купленный домен в своих сервисах в варианте, например, nodered.mydomainhere.ru и т.д вместо 77.88.111.222:1880 или mydomainhere.ru:1880 (т. е. поработаем с доменами третьего уровня).

  • Получим бесплатные Wildcard SSL сертификаты от Lets Encrypt при помощи утилиты Cerbot, и настроим их для использования в NGINX.

В данном материале не будет рассмотрено, как сделать сам сайт, как он устроен или как корректно вести процесс его разработки.

Материал не претендует на истину в последней инстанции. Приводится одна из многочисленных рабочих реализаций. Если у вас другой взгляд на приведенное в статье, обязательно поделитесь этим в комментариях.

В данном материале демонстрируется минимальный объем, необходимый для того, чтобы своими силами с минимумом используемых технологий можно было реализовать задуманное.

Да, можно использовать сторонние инструменты вроде Tilda.ws, Figma.com, uCoz.ru (ого, они еще работают) или им подобные, а можно и так. На вкус и цвет, как говорится.

Любое упоминание каких‑то сервисов не является их рекламой. Просто показана частная реализация: что вот здесь можно сделать вот так, и все заработает. Уловив суть происходящего, можно реализовать это и на альтернативных сервисах.

Тех, кому интересно, приглашаю далее.

Содержание
  1. Что такое доменное имя, зачем оно нужно и причем тут DNS?
  2. Как правильно выбрать хостинг, к которому привязать доменное имя
  3. На что следует обращать внимание при выборе хостинга
  4. Как привязать домен к хостингу
  5. Создайте свои интернет-магазин в два клика!
  6. Шаг 3. Развернем HTTP‑сервер NGINX и настроим его
  7. Настройка портов
  8. Шаг 4. Настройка проксирования через NGINX для других своих сервисов с добавлением https
  9. Шаг 5 (опционально). Настраиваем DDNS, чтобы не менять доменные записи на reg.ru при каждом изменении IP-адреса.
  10. Шаг 6 (опционально). Получение своих и бесплатных SSL Wildcard сертификатов при помощи сервиса Let’s Encrypt для NGINX на Debian.
  11. Добавление поддоменов
  12. Шаг 1. Зарегистрируем свой домен, настроим ресурсные записи, получим сертификаты
  13. Хостинг
  14. Виды хостингов: On-Prem, IaaS, PaaS, SaaS
  15. Сертификаты
  16. Шаг 2. Переходим к развертыванию ОС Debian (и созданию виртуальной машины)
  17. Подготовка к развертыванию виртуальной машины
  18. Ручная привязка домена к хостингу
  19. Доменное имя (домен)
  20. Как компьютер находит адрес
  21. Автоматическая привязка домена
  22. Добавление домена в панель хостинга
  23. Как привязать хостинг к домену?
  24. Минуточку внимания
  25. Первый этап ручной привязки
  26. Заключение

Что такое доменное имя, зачем оно нужно и причем тут DNS?

Доменное имя — это сетевой идентификатор веб‑сайта или веб‑сервиса. Оно действует как адрес, который люди могут использовать для доступа к сайту в Интернете. Доменное имя представляет собой комбинацию букв и/или цифр, разделенных точками (например, habr.com).

Проще говоря, считайте, что доменное имя — это имя контакта в записной книге телефона. Точно так же, как вы используете имя контакта, связанное с телефонным номером, чтобы позвонить кому‑то, вы используете доменное имя для доступа к веб‑сайту. Разница в том, что вместо вызова контакта вы вводите доменное имя в адресную строку веб‑браузера.

Важность доменного имени заключается в его уникальности. Никакие два сайта не могут иметь одинаковое доменное имя, что гарантирует, что люди смогут легко найти нужный им сайт. Это облегчает частным лицам и компаниям создание своего присутствия в Интернете и охват более широкой аудитории.

Система доменных имен (DNS — Domain Name System) — это протокол, который позволяет браузеру найти запрошенный пользователем сайт по его доменному имени.

Считайте, что DNS — это гигантская телефонная книга, в которой доменные имена сопоставлены с IP‑адресами. Точно так же, как вы используете телефонную книгу для поиска номера телефона человека по его имени, ваш браузер использует DNS для поиска IP‑адреса веб‑сайта по его доменному имени. Каждому имени сайта соответствует набор цифр формата 000.000.000.000, называемым IP‑адресом (если мы про классический IPv4).

Когда пользователь вводит в адресной строке браузера имя сайта, например habr.com, компьютер запрашивает IP‑адрес этого сайта на специальном DNS‑сервере и после получения корректного ответа ( 178.248.237.68 ) открывает сам сайт, что и показано на рисунке.

Обращаясь к сайту по имени habr.com мы на самом деле обращаемся к IP-адресу 178.248.237.68
Обращаясь к сайту по имени habr.com мы на самом деле обращаемся к IP-адресу 178.248.237.68
Для тех, кому интересно посмотреть, как это работает схематично и по шагам:
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
  1. Вы вводите название сайта в адресную строку и нажимаете Enter. Увлекательная история DNS началась.

  2. Сначала браузер обращается к файлу hosts на компьютере (пункт 1). Да, записи в hosts всё ещё используются и воспринимаются браузером. Если в hosts есть нужный домен и запись, какой IP‑адрес ему соответствует, браузер сразу обращается к серверу, где хранятся файлы сайта, и загружает страницу (пункт 11). Если записей нет, браузер продолжает поиск.

  3. Теперь браузер обращается к DNS‑серверу интернет‑провайдера (пункт 3). Провайдеры кэшируют некоторые данные, чтобы ускорить процесс обработки запросов. Если на кэширующем DNS‑сервере интернет‑провайдера есть данные об IP‑адресе нужного домена, браузер идёт по указанному адресу на сервер и загружает сайт. Если записи нет, сервер интернет‑провайдера продолжает поиск дальше.

  4. Следующими в цепи появляются корневые DNS‑серверы (пункт 4). На корневых DNS‑серверах хранятся только данные о DNS‑серверах, которые ответственны за доменные зоны. Например, если вы ищете IP домена habr.com, то корневой DNS‑сервер отправит сервер интернет‑провайдера на DNS‑сервер, который ответственен за зону.COM.

  5. Интернет‑провайдер идёт к DNS‑серверу зоны, адрес которого дал ему корневой сервер (пункт 6). В нашем случае он идёт на DNS‑сервер зоны.COM и просит предоставить IP‑адрес домена.

  6. DNS‑сервер зоны не знает IP‑адреса доменов. Он может дать только IP‑адрес DNS‑сервера, на котором находится информация о необходимом домене (пункт 7).

  7. Затем интернет‑провайдер идёт к DNS‑серверу, на который его послал сервер зоны (пункт 8). Он обращается к DNS‑серверу домена (например, данные о доменах клиентов reg.ru находятся на ns1.reg.ru ns2.reg.ru). Сервер домена находит запрашиваемый домен в своей базе и отдаёт IP‑адрес интернет‑провайдеру (пункт 9).

  8. Полученный IP‑адрес интернет‑провайдер кэширует на своем сервере и отправляет найденный адрес браузеру пользователя (пункт 10).

  9. Браузер обращается к серверу, где лежат файлы нужного сайта (пункт 11).

  10. Сайт открывается на экране пользователя.

Продолжая нашу рубрику «Делаем интернет-магазин вместе», хочу рассказать Вам, как привязать доменное имя к хостингу.

Привязка доменного имени к хостингу осуществляется при помощи настройки DNS-серверов. Перед тем, как привязать доменное имя к хостингу, давайте разберемся, что такое DNS. (Если Вы ещё не зарегистрировали доменное имя, почитайте мою предыдущую статью — Как зарегистрировать доменное имя)

Как привязать доменное имя к серверу

Как правильно выбрать хостинг, к которому привязать доменное имя

В интернете великое множество разных хостингов, как платных, так и бесплатных.

Основные недостатки привязки доменного имени к бесплатным хостингам, это

  1. Ограниченное место на диске.
  2. Ограниченное количество запросов к сайту.
  3. Меньшая скорость передачи данных.
  4. Возможна реклама на Вашем сайте.
  5. Отсутствие хорошей технической поддержки.

К какому хостингу, платному или бесплатному, привязать Ваш домен, зависит от ресурса, который Вы собираетесь сделать. Для лэндингов и небольших сайтов вполне подойдёт бесплатный хостинг, однако, если Вы собираетесь создавать серьёзный интернет-магазин, Вам следует привязать свой домен к хорошему, платному хостингу. Также более высокая скорость работы платных хостингов даст Вам большое преимущество при последующем продвижении Вашего сайта.

На что следует обращать внимание при выборе хостинга

  • Аптайм(Uptime) – Время работы сервера в нормальном режиме. Аптайм должен стремиться к 100%. Если в то время, когда сайт недоступен, на него придёт поисковый робот, то потом сайт долгое время не будет индексироваться. Если такое будет повторяться, то возможно выпадение страниц из индекса, а в последствии и всего сайта. Наилучшим показателем считается 99,98%
  • Оперативная память(RAM) – один из самых важных параметров, на который стоит обращать внимание при выборе хостинга. От количества выделенной для Вашего сайта памяти на сервере, зависит максимальное количество одновременных посещений пользователями вашего сайта.
  • Число процессов – отвечает за максимальную нагрузку, на сервер допускаемую для вашего сайта. Говоря простым языком, чем больше процессорного времени выделяется хостингом, тем больше операций в секунду может производить ваш сайт.
  • Объём дискового пространства – Многие хостинги буквально кричат на главных страницах о гигабайтах дискового пространства, завлекая этим пользователей. Однако, если Вы конечно не собираетесь открывать файлообменник или какой-нибудь видео-хостинг, то Вам вполне хватит и 100-200 мб, даже для интернет-магазина.
  • Базы данных MySQL – их наличие обязательно, так как именно там будет храниться вся информация о товарах и заказах Вашего интернет-магазина. Желательно иметь несколько баз данных, на случай если Вы решите создать блог или форум.
  • Поддержка PHP5 – без поддержки PHP5 большинство современных CMS работать не будет . Он должен поддерживаться почти на всех хостингах, но проверить будет не лишним.
  • Ну и конечно же цена, тут конечно все зависит только от Ваших возможностей, скажу только, что не стоит экономить, если Вы начинаете серьезный проект.

Как привязать домен к хостингу

На его примере я и покажу, как привязать доменное имя к хостингу.

  1. Для начала проходим на сайт hostinger.ru, проходим процедуру регистрации либо авторизуемся через социальные сети.
  2. В левом углу выбираем вкладку Хостинг/Новый аккаунт.

Как привязать домен к хостингу Hostinger

  1. Выбираем тарифный план.
  2. По умолчанию Тип Домена: «Субдомен», меняем на «Домен». Указываем доменное имя, которое необходимо привязать к хостингу, придумываем пароль.

Как привязать доменное имя к хостингу 2

  1. Нажимаем продолжить и доказываем, что Вы не робот.
  2. Регистрация на хостинге закончена. В ближайшее время Вам нам на почту придёт письмо, с логином/паролем от ftp, а также адресами DNS серверов хостинга, на который нужно будет направить Ваш домен:
  1. Переходим на сайт регистратора, на котором было зарегистрировано доменное имя, и заходим в панель управления, ищем настройки DNS и прописываем наши имена серверов. Чаще всего требуется указать только имена серверов, без IP-адреса.

Как привязать доменное имя к хостингу 3

  1. Вот и всё! Процесс делегирования DNS зоны домена обычно занимает от 20 минут до суток, так что, возможно придётся потерпеть.

До новых встреч!

Создайте свои интернет-магазин в два клика!

Шаг 3. Развернем HTTP‑сервер NGINX и настроим его

На установленную систему поставим пакет HTTP-сервера NGINX следующим набором команд:

apt update  && \
apt install -y wget curl gpg && \
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null && \
gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg && \
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/mainline/debian bullseye nginx" | tee /etc/apt/sources.list.d/nginx.list && \
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | tee /etc/apt/preferences.d/99nginx && \
wget http://ftp.ru.debian.org/debian/pool/main/o/openssl/libssl1.1_1.1.1n-0+deb11u3_amd64.deb && \
dpkg -i libssl1.1_1.1.1n-0+deb11u3_amd64.deb && \
rm libssl1.1_1.1.1n-0+deb11u3_amd64.deb && \
apt update && \
apt install -y nginx && \
sed -i 32i\ 'include /etc/nginx/sites-enabled/*;' /etc/nginx/nginx.conf && \
systemctl restart nginx

В терминал можно вставлять сразу весь блок, так как команды объединены связкой « && \«, которая выполняет команду одну за другой, если предыдущая выполнена успешно.

Данная команда устанавливает пару утилит, для добавления репозитория NGINX, актуальный репозиторий NGINX, устанавливает соответствующий пакет и делает небольшое изменение в конфиге, перезапуская службу для применения настроек.

Далее, создадим директорию для сайта в соответствии с доменным именем, куда будут скопированы файлы сайта (вам необходимо будет изменить только доменный адрес, остальные папки системные, но их надо создать):

mkdir -m 777 -p /var/www/superpuperhabr.ru /etc/nginx/sites-available /etc/nginx/sites-enabled

Далее, создадим конфигурацию для сайта:

nano /etc/nginx/sites-available/superpuperhabr.ru

И вставим следующее содержимое:

# Первый блок настроек.
# Переадресация (редирект) с superpuperhabr.ru на www.superpuperhabr.ru
# Важный момент, в зависимости от указания http или https будет использоваться или второй блок настроек или третий.
server {
	listen 80;
	server_name superpuperhabr.ru;
	return 301 https://www.superpuperhabr.ru$request_uri;
}

# Второй блок настроек.
# Настройка работы с сайтом на адресе www.superpuperhabr.ru для http. Указываем путь к файлам сайта.
server {
	listen 80;
	server_name www.superpuperhabr.ru;
	root /var/www/superpuperhabr.ru;

	index index.html;

	location / {
		try_files $uri $uri/ /index.html;
	}
}

# Третий блок настроек.
# Настройка работы с сайтом на адресе www.superpuperhabr.ru для https. Указываем путь к сертификатам. Указываем путь к файлам сайта. 
# Важный момент, если не планируете использовать https или по указанному ниже пути не будет сертификатов - сервис не запустится.
server {
	listen 443 ssl;
	server_name www.superpuperhabr.ru;
	root /var/www/superpuperhabr.ru;

    # Указываем путь, где будут лежать сертификаты для шифрования
	ssl_certificate /etc/nginx/sites-available/superpuperhabr.crt;
	ssl_certificate_key /etc/nginx/sites-available/superpuperhabr.pem;

	index index.html;

	location / {
		try_files $uri $uri/ /index.html;
	}
}

(Не забываем поменять доменное имя superpuperhabr на свое)

Записываем файл ctrl+o, enter и выходим из редактора ctrl+x.

Данная команда создаст файл /etc/nginx/sites-available/superpuperhabr.ru с конфигурацией в которой:

Первый блок server при обращении к сайту по адресу superpuperhabr.ru будет переадресовывать (редиректить) его на адрес www.superpuperhabr.ru. с использованием https. Если оставить все так, как в примере, то после переадресации будет идти обращение к третьему блоку настроек. Если изменить на http, то ко второму. Разница в том, что используются разные порты (80 и 443) и есть указание на путь к сертификату для шифрования передачи данных.

Предлагается оставить все как есть и продолжить, вернувшись чуть позже к размещению сертификата в указанной папке /etc/nginx/sites‑available/.

А пока, после создания конфига командой выше, необходимо разместить файлы сайта по пути: /var/www/superpuperhabr.ru

Я подготовил сайт‑заглушку через один из конструкторов сайтов. Данный сайт по сути является шаблоном для лендинга условной кофейни с отображением меню. Загрузить файлы на развернутый сервер можно двумя способами. 

  1. Либо при помощи загрузки архива сайта в расширении tar.gz через ссылку. 

  2. Либо перемещение файлов при помощи SFTP и консольной программки Termius, которая его поддерживает.

Для первого варианта: скачаем архив с файлом и распакуем в необходимую нам директорию:

wget -O /var/www/superpuperhabr.ru/landing.tar.gz -c https://clck.ru/33W2KU  && \
tar -zxvf /var/www/superpuperhabr.ru/landing.tar.gz -C /var/www/superpuperhabr.ru/  && \
rm /var/www/superpuperhabr.ru/landing.tar.gz

Вторая строчка занимается разархивацией, третья удалением исходного архива.

Для второго варианта: можно скопировать файлы по SFTP, используя Termius, просто перетащив файлы со своего компьютера на сервер в соответствующую папку:

Простым перетаскиванием копируем файлы сайта с локальной машины на настраиваемый сервер
Простым перетаскиванием копируем файлы сайта с локальной машины на настраиваемый сервер

Созданные ранее сертификат (superpuperhabr.crt) и приватный ключ (superpuperhabr.pem) необходимо переместить по пути, указанному в конфиге: /etc/nginx/sites-available/(Либо в любое другом место на сервере, тогда не забудьте изменить путь в конфиге выше)

Простым перетаскиванием копируем файлы сертификатов с локальной машины на настраиваемый сервер.Теперь конфигурация точно запустится, потому что все файлы на месте :)
Простым перетаскиванием копируем файлы сертификатов с локальной машины на настраиваемый сервер.
Теперь конфигурация точно запустится, потому что все файлы на месте 🙂

Теперь говорим NGINX, чтобы он подтянул созданную нами конфигурацию и применим ее:

ln -s /etc/nginx/sites-available/superpuperhabr.ru /etc/nginx/sites-enabled && \
nginx -t && \
service nginx reload && \
systemctl restart nginx

Настройка портов

Перед проверкой, что все работает, необходимо открыть 80 и 443 порт на вашем сетевом оборудовании. Для этого необходимо зайти на роутер (в моем случае адрес 192.168.50.1), авторизоваться и перейти в раздел меню настроек WAN. Там выбрать раздел Virtual Server / Port Forwarding и настроить значения следующим образом через «Add profile». Необходимо ввести имя сервиса, порт, который открываем, тип протокола и адрес нашего сервера. (На вашем оборудовании может быть что-то одно из названий)

Port Forwarding (или Virtual Server) — настройка для WAN‑интерфейса (который отвечает за подключение к интернету), позволяющая извне (через интернет) обращаться к конкретным клиентам локальной сети (например, к нашему серверу) по определенному порту приложения.

Таким образом, можно на любом устройстве открыть браузер, ввести зарегистрированное доменное имя и указать порт необходимого приложения, и вуаля, вы зашли на приложение своего сервера. Почти также, как вы попали на habr.com

Выглядит это примерно следующим образом для роутеров ASUS:

Как арендовать доменное имя и купить домен для сайта или услуг через NGINX

После перезагрузки сервиса последним блоком команд, все внесенные изменения вступают в силу и теперь можно открыть свой сайт по адресу superpuperhabr.ru (будет отображаться та самая «заглушка», про которую я писал выше, с файлами которой мы работали):

Как арендовать доменное имя и купить домен для сайта или услуг через NGINX

Поздравляю! Вы на своем собственном железе, запустили свой собственный сайт под своим доменом 🙂

Да, там еще NGINX можно дополнительно конфигурировать для условно «боевой» работы, и в Docker`e все можно запустить, но в минимуме дается так. Дальше каждый может посмотреть, где и что ему подкрутить под свои нужды.

Шаг 4. Настройка проксирования через NGINX для других своих сервисов с добавлением https

Изначально я начал разбираться как работать с доменным именем, потому что надоело пользоваться адресами в формате:

http://77.88.111.222:1880     –>     Node-RED
http://77.88.111.222:1883     –>     Mosquitto MQTT
http://77.88.111.222:1871     –>     WireGuard VPN
http://77.88.111.222:3000     –>     Grafana
http://77.88.111.222:8086     –>     InfluxDBv2
http://77.88.111.222:8080     –>     Chirpstack-v4
http://77.88.111.222:8090     –>     Chirpstack-api
https://nodered.superpuperhabr.ru           –>     Node-RED
https://mqtt.superpuperhabr.ru              –>     Mosquitto MQTT
https://wg.superpuperhabr.ru                –>     WireGuard VPN
https://grafana.superpuperhabr.ru           –>     Grafana
https://influx.superpuperhabr.ru            –>     InfluxDBv2
https://chirpstack.superpuperhabr.ru        –>     Chirpstack-v4
https://chirpstack-api.superpuperhabr.ru    –>     Chirpstack-api

Что же для этого нужно? А всего лишь добавить в NGINX конфигурацию для проксирования обращения с соответствующего имени на внутренний сервис (который localhost).

Для этого создаем конфигурацию командой:

nano /etc/nginx/sites-available/proxy

И вставляем туда следующее содержимое:

# Grafana primary listener and redirect
# Ждет обращения к адресу grafana.superpuperhabr.ru по порту 80, с переадресацией на https. 
server {
  listen 80;
  server_name grafana.superpuperhabr.ru;
  return 301 https://$host$request_uri;
}

# Grafana ssl config
# Редиректимся сюда, указываем сертификаты и адрес сервиса к которому обращаемся: http://127.0.0.1:3000
server {
  listen 443 ssl http2;
  server_name grafana.superpuperhabr.ru;

  ssl_certificate /etc/nginx/sites-available/superpuperhabr.crt;
  ssl_certificate_key /etc/nginx/sites-available/superpuperhabr.pem;

  location / {
	proxy_pass http://127.0.0.1:3000;
	proxy_set_header Host $host;
	proxy_set_header Connection "upgrade";
	proxy_set_header Upgrade $http_upgrade;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}


####################################################################


# Influxdb primary listener and redirect
server {
  listen 80;
  server_name influxdb.superpuperhabr.ru;
  return 301 https://$host$request_uri;
}

# Influxdb ssl config
server {
  listen 443 ssl http2;
  server_name influxdb.superpuperhabr.ru;

  ssl_certificate /etc/nginx/sites-available/superpuperhabr.crt;
  ssl_certificate_key /etc/nginx/sites-available/superpuperhabr.pem;

  location / {
	proxy_pass http://127.0.0.1:8086;
	proxy_set_header Host $host;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}


####################################################################


# Nodered primary listener and redirect
server {
  listen 80;
  server_name nodered.superpuperhabr.ru;
  return 301 https://$host$request_uri;
}

# Nodered ssl config
server {
  listen 443 ssl http2;
  server_name nodered.superpuperhabr.ru;

  ssl_certificate /etc/nginx/sites-available/superpuperhabr.crt;
  ssl_certificate_key /etc/nginx/sites-available/superpuperhabr.pem;
  
  location / {
	proxy_pass http://127.0.0.1:1880;
	proxy_set_header Host $host;
	proxy_set_header Connection "upgrade";
	proxy_set_header Upgrade $http_upgrade;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}


####################################################################


# Chirpstack primary listener and redirect
server {
  listen 80;
  server_name chirpstack.superpuperhabr.ru;
  return 301 https://$host$request_uri;
}

# Chirpstack ssl config
server {
  listen 443 ssl http2;
  server_name chirpstack.superpuperhabr.ru;

  ssl_certificate /etc/nginx/sites-available/superpuperhabr.crt;
  ssl_certificate_key /etc/nginx/sites-available/superpuperhabr.pem;
  
  location / {
	proxy_pass http://127.0.0.1:8080;
	proxy_set_header Host $host;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}


####################################################################


# Chirpstack-api primary listener and redirect
server {
  listen 80;
  server_name chirpstack-api.superpuperhabr.ru;
  return 301 https://$host$request_uri;
}

# Chirpstack-api ssl config
server {
  listen 443 ssl http2;
  server_name chirpstack-api.superpuperhabr.ru;

  ssl_certificate /etc/nginx/sites-available/superpuperhabr.crt;
  ssl_certificate_key /etc/nginx/sites-available/superpuperhabr.pem;
  
  location / {
	proxy_pass http://127.0.0.1:8090;
	proxy_set_header Host $host;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

Записываем файл ctrl+o, enter и выходим из редактора ctrl+x.

Данная конфигурация приведена для определенного набора сервисов. Соответственно, в зависимости от вашего набора, содержимое и состав конфига может отличаться.

Остается только применить конфигурацию, по аналогии с сайтом.

ln -s /etc/nginx/sites-available/proxy /etc/nginx/sites-enabled/proxy
nginx -t && \
service nginx reload && \
systemctl restart nginx

Момент конфигурации с проксированием можно порядком упростить, перенеся его в специальное по с графическим интерфейсом: Nginx Proxy Manager поставить. Он, ко всему прочему, ещё и SSL-сертификаты может выдавать и обновлять.

Шаг 5 (опционально). Настраиваем DDNS, чтобы не менять доменные записи на reg.ru при каждом изменении IP-адреса.

Чтобы настроить DDNS внутренними силами того же роутера, необходимо перейти в соседний от Virtual Server / Port Forwarding пункт меню, включить службу DDNS, установить метод запроса IP -> External. Указать свободное доменное имя и зарегистрировать его (в качестве примера используется: yours-nginx-server.asuscomm.com). Когда процесс успешно завершится, применить всю конфигурацию. Через небольшой промежуток времени ваш публичный IP адрес привяжется к доменному имени, которое вы зарегистрировали и доступ к приложениям можно будет запрашивать по нему, вместо публичного IP адреса.

(ваш роутер может и не поддерживать данного функционала, поэтому посмотреть, как это сделать при помощи других сервисов, можно самостоятельно)

Остается последний шаг, сказать reg.ru, чтобы он брал адрес для вашего домена с вашего DDNS. Делается это при помощи создания CNAME записи и выглядит следующим образом:

Вы хотите, чтобы адрес grafana.superpuperhabr.ru указывал на тот же хост, что и адрес yours-nginx-server.asuscomm.com.Для этого необходимо в поле ’Subdomain’ указать «grafana», а в поле ’Canonical name’ указать «yours-nginx-server.asuscomm.com».
Вы хотите, чтобы адрес grafana.superpuperhabr.ru указывал на тот же хост, что и адрес yours-nginx-server.asuscomm.com.
Для этого необходимо в поле ’Subdomain’ указать «grafana», а в поле ’Canonical name’ указать «yours-nginx-server.asuscomm.com».

Кстати, что за CNAME и что там еще есть, можно посмотреть в недавней статье от Selectel: -> тык <-

Шаг 6 (опционально). Получение своих и бесплатных SSL Wildcard сертификатов при помощи сервиса Let’s Encrypt для NGINX на Debian.

Вкратце разберется, а что же за Wildcard сертификаты такие.

Сертификат Wildcard — это тип сертификата SSL/TLS, который используется для защиты домена и всех его поддоменов. Например, если у вас есть сайт с доменным именем superpuperhabr.ru, сертификат Wildcard защитит не только superpuperhabr.ru, но и все поддомены, такие как blog.superpuperhabr.ru, grafana.superpuperhabr.ru и так далее.

Принцип работы сертификата Wildcard заключается в использовании специального символа, звездочки (*), в качестве обозначения любого поддомена. Поэтому вместо того, чтобы покупать отдельные SSL/TLS-сертификаты для каждого поддомена, вы можете использовать сертификат Wildcard для защиты всех поддоменов.

Основное преимущество использования сертификата Wildcard заключается в том, что он может сэкономить ваше время и деньги. Вместо того чтобы покупать и управлять отдельными SSL/TLS-сертификатами для каждого поддомена, вы можете использовать один Wildcard-сертификат для их защиты. Это может быть особенно полезно, если у вас большое количество поддоменов, поскольку управление отдельными сертификатами для каждого поддомена может отнимать много времени и средств.

Еще одним преимуществом использования сертификата Wildcard является упрощение управления сертификатами SSL/TLS. Поскольку все ваши поддомены покрываются одним сертификатом, вам нужно обновлять и управлять только одним сертификатом, а не несколькими. Это может облегчить отслеживание сертификатов и гарантировать, что они всегда актуальны и правильно настроены.

Однако есть и некоторые потенциальные недостатки использования сертификата Wildcard, о которых следует знать студентам. Во-первых, сертификаты Wildcard могут быть дороже отдельных сертификатов SSL/TLS, в зависимости от выбранного вами поставщика. Кроме того, сертификаты Wildcard не всегда подходят для определенных типов веб-сайтов, например, для тех, которые требуют сертификатов с расширенной проверкой (EV).

На reg.ru стоимость такого сертификата начинается с примерно с 10 тысяч рублей:

Б - Бизнес
Б — Бизнес

Но можно не платить, а выпустить сертификат самостоятельно при помощи сервиса Let’s Encrypt!

Let’s Encrypt — это бесплатный, автоматизированный и открытый центр сертификации, который предоставляет SSL/TLS-сертификаты для веб-сайтов. Let’s Encrypt предлагает сертификат Wildcard, который можно использовать для защиты домена и всех его поддоменов.

Используя сертификат Wildcard от Let’s Encrypt, вы можете сэкономить время и деньги, поскольку вам не нужно приобретать SSL/TLS-сертификаты для каждого поддомена. Сертификат Wildcard от Let’s Encrypt также прост в установке и управлении, поскольку его можно автоматически обновлять раз в три месяца (срок действия сертификатов) и настраивать с помощью автоматизированных инструментов Let’s Encrypt.

Что для этого нужно?

Установим утилиту Certbot, которая занимается выпуском сертификатов через Let’s Encrypt:

apt install -y certbot python3-certbot-nginx

После чего необходимо командой запустить процесс выпуска сертификатов:

certbot -d *.superpuperhabr.ru -d superpuperhabr.ru --manual --preferred-challenges dns certonly --server https://acme-v02.api.letsencrypt.org/directory

Вас попросят указать e-mail, на который зарегистрирован домен. И задать две TXT записи, после добавления каждой из TXT записей следует подождать 10-15 минут, чтобы эта запись обновилась на сервере и Certbot мог ее прочитать после чего можно переходить к следующему шагу. Добавление выглядит примерно следующим образом:

Как арендовать доменное имя и купить домен для сайта или услуг через NGINX

Делается это для того, чтобы сервис проверил, действительно ли вы являетесь владельцем домена, так как только он может добавить указанные в терминале TXT строки в доменные записи.

В результате вам в терминал будут выведены пути сертификатов, которые необходимо будет поправить в файле /etc/nginx/sites-available/proxy (если речь про сторонние сервисы, которые проксируются) или /etc/nginx/sites-available/superpuperhabr.ru (если речь про ваш сайт). Соответственно, меняете этот фрагмент в конфингах:

  ssl_certificate /etc/nginx/sites-available/superpuperhabr.crt;
  ssl_certificate_key /etc/nginx/sites-available/superpuperhabr.pem;

На тот, что был выведен в терминале по завершении работы Cerbot:

  ssl_certificate /etc/letsencrypt/live/superpuperhabr.ru/fullchain.pem;
  ssl_trusted_certificate /etc/letsencrypt/live/superpuperhabr.ru/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/superpuperhabr.ru/privkey.pem;

После указания новых путей к сертификатам в конфигах, необходимо применить конфигурацию NGINX:

sudo nginx -t && \
sudo service nginx reload && \
sudo systemctl restart nginx

Поскольку сертификаты действительны лишь три месяца, и чтобы не запускать постоянно команду на обновление:

certbot renew --force-renewal --post-hook "systemctl restart nginx"

Можно создать службу:

nano /etc/systemd/system/certbot-renewal.service
[Unit]
Description=Certbot Renewal
[Service]
ExecStart=/usr/bin/certbot renew --force-renewal --post-hook "systemctl restart nginx"
nano /etc/systemd/system/certbot-renewal.timer
[Unit]
Description=Timer for Certbot Renewal
[Timer]
OnBootSec=100
OnUnitActiveSec=1w
[Install]
WantedBy=multi-user.target

Пофиксим ошибку не указания nginx в конфиге перевыпуск сертификата:

sudo sed -i 's/manual/nginx/' /etc/letsencrypt/renewal/superpuperhabr.ru.conf

И запустим службу:

systemctl start certbot-renewal.timer && \
systemctl enable certbot-renewal.timer && \
systemctl status certbot-renewal.timer

У вас бесплатные Wildcard сертификаты на домен и его поддомены, а их выпуск автоматизирован на раз в неделю.

На этом все 🙂 А самурай может дальше продолжать свой путь.

Добавление поддоменов

Поддомен не требуется отдельно подключать к хостингу – достаточно привязать домен, который является основным. Чтобы создать поддомен, найдите в панели управления хостингом, в разделе доменов опции «Добавить субдомен» или «Добавить поддомен». В зависимости от типа панели название может отличаться.

В настройках поддомена обычно требуется только указать его название и основной домен, остальное все будет создано автоматически.

После подключения домена к хостингу следующий шаг – разместить файлы сайта на серверах хостера. Об этом мы поговорим в следующей статье.

Шаг 1. Зарегистрируем свой домен, настроим ресурсные записи, получим сертификаты

Путь самурая начинается с того, что необходимо арендовать себе в пользование доменное имя, которое он хочет использовать. Для этого можно воспользоваться любым из многочисленных регистраторов доменных имен. В данном примере будет рассматриваться регистратор reg.ru. Из чего будет состоять путь?

  1. Подтвердить почту, номер телефона, включить двухфакторную аутентификацию.

  2. Заполнить контакты владельца аккаунта (нужны данные паспорта, процесс описывать не буду, все стандартно и с пояснениями на самом сайте).

Пример внешнего вида заполненного личного кабинета
Пример внешнего вида заполненного личного кабинета
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX

Важно: по ходу всей статьи будет использоваться пример доменного имени superpuperhabr, вместо него вам необходимо использовать свой домен, который вы арендуете.

  1. В доменной зоне.RU домен стоит 199₽ в год (или чуть больше 50 копеек в день). (Важно понимании, что продление уже будет дороже). Все платные опции можно со спокойной душой отключить. А чтобы «поиграться» в дальнейшем с настройками https (и ssl) можно получить бесплатные сертификаты на 6 месяцев. Выглядит это примерно следующим образом, остается только оплатить любым удобным способом.

Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
  1. Далее, зададим настройку, которая связывает доменное имя и ваш IP‑адрес (условно, создаем запись в большой телефонной книге DNS, что за вашим именем такой‑то номер телефона). Для этого необходимо провалиться в раздел меню «Домены» и перейти в раздел настроек «DNS‑серверы и управление зоной»:

Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
  1. В данном разделе необходимо «Добавить запись», а из предложенного списка выбрать «A‑запись», которая очень просто заполняется следующим образом:

Как арендовать доменное имя и купить домен для сайта или услуг через NGINX

Свой публичный адрес, который необходимо указать в поле «IP Address» можно найти на 2ip.ru, например:

Как арендовать доменное имя и купить домен для сайта или услуг через NGINX

Соответственно итоговый результат будет выглядеть следующим образом:

Поздравляю! Теперь вы владелец домена, который будет работать также, как и habr.com!
Поздравляю! Теперь вы владелец домена, который будет работать также, как и habr.com!

Данная запись означает, что основной домен «superpuperhabr.ru» и его поддомены, например: «stage.superpuperhabr.ru» или «home‑camera.superpuperhabr.ru» или любой другой домен третьего уровня, будут перенаправлены на указанный вами IP‑адрес.

Если желания платить за такую услугу нет, надо понимать риски: в случае изменения у вас внешнего публичного IP‑адреса, его необходимо будет изменить вручную в настройках выше. Все то время, что будет указан старый адрес + 15 минут на применение внесенных изменений, сайт и другие сервисы, использующие доменное имя будут недоступны.

Как полумеру здесь можно использовать DDNS, чтобы IP‑адрес в случае изменения автоматически подтягивался к доменному имени, но про это в самом конце статьи.

Хостинг

Интернет — это глобальная сеть, объединяющая огромное число устройств. К устройствам относятся далеко не только стационарные компьютеры и ноутбуки, но также и мобильные устройства, камеры, различные электронные и бытовые приборы. Хотя все эти устройства совершенно разные, они без проблем общаются друг с другом с помощью единого языка. Таким языком в мире машин стал стек протоколов TCP/IP. Не вдаваясь в детали, скажем, что протокол — это правила, по которым происходит общение. При этом природа общающихся устройств не важна.

Среди компьютеров, подключённых к интернету, выделяется класс машин, которые выполняют роль серверов. Эти сервера, как правило, располагаются у хостеров, и именно они обслуживают многочисленные интернет сайты.

Серверные стойки

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

Однако есть и бесплатные хостинги, требующие только базовых знаний веб-разработки. Чтобы разместить свою страницу в интернете может быть достаточно возможностей бесплатного Github Pages и одной HTML-страницы. Там же можно получить домен третьего уровня или привязать собственный. Подробнее это рассматривается в наших профессиях в уроке Публикация в интернете.

Виды хостингов: On-Prem, IaaS, PaaS, SaaS

Вы можете использовать старый компьютер, как собственный хостинг, но придётся самостоятельно обеспечивать его постоянную доступность в интернете, защиту от атак и обновление софта. Такое решение будет называться On-Premises. Вместо рукопашки можно воспользоваться решениями “as Service”:

  • IaaS — Infrastructure as a Service, инфраструктура как услуга;
  • PaaS — Platform as a Service, платформа как услуга;
  • SaaS — Software as a Service, программное обеспечение как услуга.

Каждый термин означает разный уровень ответственности. В случае с Github Pages от вас требуется только написать HTML и загрузить его в сервис, остальное решается через интерфейс (панель управления), а вся “магия” происходит на стороне сервиса. Это решение SaaS.

Одно из популярных решений PaaS является Heroku, предоставляющая множество удобных бесплатных инструментов. Практический навык работы с Heroku студенты получают при работе над 4-м проектом в наших профессиях.

А среди популярных решений IaaS — это Amazon Web Services. Примечательно, что Heroku использует AWS для размещения ваших ресурсов, то есть выступает посредником, упрощая многие процедуры управления серверами.

Популярна визуализация этих решений на примере приготовления пиццы, где On-Prem требует наличия и ингредиентов, и инструментов, а SaaS представлен пиццерией, куда вы приходите чтобы съесть пиццу:

Пицца as service

Сертификаты

После всех настроек спустя какое-то время вам на почту придут сертификаты. Из всего того объема информации, что будет в письме, необходимо создать два файла.

Итоговый сертификат и приватный ключ.

Для создания итогового сертификата необходимо объединить три сертификата «по меньше» (сам SSL‑сертификат, корневой и промежуточный сертификаты) в один файл. Для этого создайте на ПК новый текстовый документ с именем superpuperhabr.crt (superpuperhabr — доменное имя вашего сайта). Создать его можно при помощи блокнота или любого другого текстового редактора. Поочередно скопируйте и вставьте в созданный документ каждый сертификат. После вставки всех сертификатов файл должен иметь вид:

-----BEGIN CERTIFICATE-----
#Ваш сертификат#
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
#Промежуточный сертификат#
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
#Корневой сертификат#
-----END CERTIFICATE-----

Обратите внимание: один сертификат идёт следом за другим, без пустых строк.

Далее, создайте файл приватного ключа superpuperhabr.key и скопируйте в него содержание приватного ключа сертификата из письма.

-----BEGIN RSA PRIVATE KEY-----
#Ваш приватный ключ#
-----END RSA PRIVATE KEY-----

Еще момент: браузер может ругаться на именно эти бесплатные сертификаты, если использовать что‑то отличное от www.superpuperhabr.ru. Потому что сертификаты не поддерживают домены третьего уровня. Если занести денюжку, одним сертификатом можно покрыть все, в рамках домена и поддоменов (и superpuperhabr.ru и, например, Influx.superpuperhabr.ru).

Шаг 2. Переходим к развертыванию ОС Debian (и созданию виртуальной машины)

Создание ВМ, установка и первичная настройка будут под спойлером, чтобы много картинок не захламляли основной текст.

Подготовка к развертыванию виртуальной машины

Если вы используете виртуальную машину, можно смотреть отсюда. Если проделывать все будете на отдельной физической машине или VPS, можете сразу перейти на момент установки ОС.

1) ПО для виртуализации и создания виртуальных машин (можете использовать любое другое, главное, чтобы была возможность настроить сетевой адаптер в режиме bridge (мост или сетевой мост))

1.1) Для Win/Linux (бесплатно для некоммерческого использования) VMware Workstation Player 17: -> тык <-

1.2) Для MacOS (есть бесплатный Trial период, либо поиск активированного решения на просторах интернета) VMware Fusion Player 13: -> тык <-

2) SSH клиент (опять же, можно пользоваться любым другим, даже встроенным в вашу систему):

2.1) Termius for Windows: -> тык <-

2.2) Termius for Linux: -> тык <-

2.3) Termius for MacOS: -> тык <-

3.1) Linux Debian 11.6 stable: -> тык <-

3.2)Или же более свежая, но тестовая сборка (очень редко установка может пойти не по плану, но пакеты и версия ядря куда свежее): -> тык <-

Установку ПО для виртуализации описывать не буду, там все элементарно. Начнем с процесса создания самой виртуалки.

Запускаем волшебного помощника через "Create a New Virtual Machine"
Запускаем волшебного помощника через «Create a New Virtual Machine»
Выбираем скачанный образ Linux Debian
Выбираем скачанный образ Linux Debian
Говорим ПО с какой ОС будем работать
Говорим ПО с какой ОС будем работать
Задаем имя для виртуалки
Задаем имя для виртуалки
Указываем максимальный объем диска (выдялется по мере того, как занимается файлами, не сразу 20GB)
Указываем максимальный объем диска (выдялется по мере того, как занимается файлами, не сразу 20GB)
Дополнительно настроим сетевой адаптер в режиме bridge через "Customize hardware"
Дополнительно настроим сетевой адаптер в режиме bridge через «Customize hardware»
Включаем режим "Bridged" и выбираем адаптер, который подключен к сети интернет (без разницы, проводной или wi-fi) через "Configure Adapters"
Включаем режим «Bridged» и выбираем адаптер, который подключен к сети интернет (без разницы, проводной или wi-fi) через «Configure Adapters»
Запускаем виртуальную машину
Запускаем виртуальную машину
Нажимаем Enter для перехода в стандартный графический установщик
Нажимаем Enter для перехода в стандартный графический установщик
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
Пароли, само-собой, меняете на свои :)
Пароли, само-собой, меняете на свои 🙂
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
Пароли, само-собой, меняете на свои :)
Пароли, само-собой, меняете на свои 🙂
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
На этом установка завершена. После перезагрузки системы попадаем в загрузчик, который через 5 секунд автоматически запустит установленную ОС.
На этом установка завершена. После перезагрузки системы попадаем в загрузчик, который через 5 секунд автоматически запустит установленную ОС.
Как арендовать доменное имя и купить домен для сайта или услуг через NGINX
После установки необходимо войти под пользователем root с паролем, который задавался при установке (и да, пароль при вводе никак не отображается, это нормально)После ввода root-пароля просто нажимаем enter
После установки необходимо войти под пользователем root с паролем, который задавался при установке (и да, пароль при вводе никак не отображается, это нормально)
После ввода root-пароля просто нажимаем enter
В конфигурации SSH необходимо разрешить подключение root пользователю, так как, все операции будем выполнять от него (не секьюрно и не по линуксоидовски, но настроить безопасность и sudo можно при желании отдельно).Для этого вводим: nano /etc/ssh/sshd_config
В конфигурации SSH необходимо разрешить подключение root пользователю, так как, все операции будем выполнять от него (не секьюрно и не по линуксоидовски, но настроить безопасность и sudo можно при желании отдельно).
Для этого вводим: nano /etc/ssh/sshd_config
Ищем закомментированную строку #PermitRootLogin prohibit-password и правим в это: PermitRootLogin yesЗаписываем файл ctrl+o, enter и выходим из редактора ctrl+x.
Ищем закомментированную строку #PermitRootLogin prohibit-password и правим в это: PermitRootLogin yes
Записываем файл ctrl+o, enter и выходим из редактора ctrl+x.

И перезагружаемся командой

reboot

Как видим, на старте система потребляем минимальное количество ресурсов:

Данную статистику можно посмотреть через утилитку htop. А чтобы ее установить необходимо ввести команду: apt install -y htop
Данную статистику можно посмотреть через утилитку htop.
А чтобы ее установить необходимо ввести команду: apt install -y htop
Далее, необходимо узнать ip адрес машины для удаленного подключения через команду:ip a
Далее, необходимо узнать ip адрес машины для удаленного подключения через команду:
ip a

192.168.XXX.YYY (Например, 192.168.0.25 или 192.168.25.136). 

Узнав адрес, можно подключиться по SSH через терминал с основной машины, находящейся в одной локальной сети с сервером, следующей командой:

ssh root@192.168.50.66 

Остается только ввести пароль от пользователя root и можно переходить к шагу 3.

Ручная привязка домена к хостингу

Как подключить домен к хостингу, если автоматической привязки нет? Это делается вручную, двумя способами:

  • путем смены NS-серверов в настройках домена. Более предпочтительный вариант: при смене IP-адреса хостинга все перенастройки будут проведены автоматически;
  • путем смены IP-адреса в DNS-записях вашего домена на IP-адрес хостинга. Менее предпочтительный способ: при смене IP-адреса хостинга вам придется повторить процедуру, а перед этим еще и, возможно, разбираться, почему вдруг сайт стал недоступен.

Доменное имя (домен)

Первым решением стал специальный файл hosts. Он находился на каждом компьютере в сети и позволял дать компьютерам имена. Адрес компьютера и его имя связывались, а значит передавать информацию можно по имени, например Alex-PC вместо 10.210.107.23. Этот файл существует до сих пор и часто используется программистами во время разработки. Формат файла:

# Формат файла: <ip-адрес> <имя компьютера>
34.117.253.138 hexlet.io
10.210.107.23 Alex-PC

Со временем и такой способ стал неудобен: файл нужно было обновлять вручную или самостоятельно скачивать с компьютера, у которого был актуальный список адресов. Требовался автоматизированный способ связывания адреса и имени. Для решения этих проблем создали Domain Name System (DNS). Эта система научилась автоматически связывать адреса с именами, сняв головную боль с пользователей компьютеров.

Как работает DNS

Как компьютер находит адрес

Когда происходит запрос по адресу, например, hexlet.io, то сначала проверяется файл hosts, и если домен найден, то браузер устанавливает соединение с сервером. В нашем примере он пойдёт по адресу 34.117.253.138.

# Пример обращения к DNS с помощью утилиты host
 hexlet.io
hexlet.io has address .253.138
hexlet.io mail is handled by  alt4.aspmx.l.google.com.
hexlet.io mail is handled by  aspmx.l.google.com.
hexlet.io mail is handled by  alt3.aspmx.l.google.com.
hexlet.io mail is handled by  alt1.aspmx.l.google.com.
hexlet.io mail is handled by  alt2.aspmx.l.google.com.

Если такой адрес в файле hosts не найден, то будет передан запрос к службе DNS, которая, в качестве ответа, вернет адрес компьютера с сайтом.

Важно понимать, что DNS — это именно служба, а не конкретный сервер. Так как весь интернет зависит от стабильности работы этой системы, то в неё входит множество серверов по всему миру. Кроме того, DNS устроена таким образом, что нет центральной организации, управляющей этими серверами. Подробнее о DNS прочитайте в нашем гайде.

Автоматическая привязка домена

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

Чаще всего для такой привязки есть два варианта:

  • при заказе услуг хостинга вам предлагается сразу же и зарегистрировать домен. После этого домен сразу прикрепляется к хостингу;
  • в панели управления хостинга нужно найти опцию «Привязать домен», «Подключить домен» и т. п. Если вы регистрировали домен у этого же провайдера, то привязка будет автоматической. Если нет – подключить домен вы сможете, но придется дополнительно либо менять NS-серверы у регистратора имен, либо менять IP-адреса NS-серверов.

Добавление домена в панель хостинга

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

После привязки домена пройдет как минимум несколько часов, как максимум – сутки, прежде чем сайт станет доступен. Это время требуется для того, чтобы информация о DNS-записях обновилась по всей сети.

Как привязать хостинг к домену?

Имеется оформленный хостинг на юридическое лицо на хостинге reg ru. Домен висит у Инфолады (на самом деле регистратор nic ru). который зарегистрирован на юридическое лицо. Тех поддержка Инфолады говорит, что прописать dns серваки от reg ru не могут, а для переноса домена к другому регистратору необходимо переоформлять документы для юр лица. Как вариант они предлагают зарегистрировать новый домен и сделать редирект со старого на новый. Есть ли какие-то ещё варианты как привязать домен к сайту помимо рега нового и редиректа?


  • Вопрос задан

    22 авг. 2022

  • 261 просмотр

через А записи пропишите и всё

либо требуйте изменения NS записей у «инфолажы» )

прописать dns серваки от reg ru не могут

Что значит не могут? Пропишите сами. В настройках домена должна быть возможность редактировать NS записи.

Добрый день!
nic.ru один из немногих российских регистраторов, где услуга DNS-хостинга платная. Поэтому, если у Вас домен на nic.ru Вы можете подключить услугу DNS-мастер и добавлять любые DNS записи там.
С Инфоладой я не работал, но скорее всего можно перенести бесплатно домен непосредственно на сам nic.ru
Второй вариант это сменить NS записи домена на записи хостинга reg.ru или на какие нибудь сторонние. Если Вы не исключаете в будущем смены хостинга, рекомендую второй вариант. Из сторонних отличный вариант майл ру, можно заодно и почту сделать, бесплатную и безразмерную. А хостинг потом привязать через A записи

Тех поддержка Инфолады говорит, что прописать dns серваки от reg ru не могут

Если они «не могут» (читай — не хотят), шлите их лесом (это бесплатно и безбумажно), и управляйте доменом на nic.ru самостоятельно без бестолковых посредников в их лице.

26 апр. 2023, в 02:47

30000 руб./за проект

26 апр. 2023, в 00:41

10000 руб./за проект

26 апр. 2023, в 00:37

5000 руб./за проект

Минуточку внимания

Первый этап ручной привязки

Первый способ: меняем NS-сервера.

  • Узнаем адреса NS-серверов хостинга. Их можно посмотреть в письме от хостера с данными о покупке услуги или в настройках панели управления хостингом. Можно написать в техподдержку и попросить подсказать адреса.
  • Идем в личный кабинет на сайте регистратора доменных имен. Заходим в настройки домена и ищем опцию, которая так и называется – «NS-серверы», «DNS-серверы» или подобным образом.
  • Меняем в соответствующих полях наименования серверов на те, что мы узнали выше.
  • Если тут же есть поля с IP-адресами DNS-серверов – оставляем их пустыми. Заполнять нужно только в том случае, если провайдер сделал их обязательными. Узнать IP можно, сделав ping в Командной строке Windows к каждому из NS-серверов.
  • Узнаем IP-адрес нашего сайта. У некоторых хостеров его довольно просто найти в панели управления, у других можно уточнить в техподдержке
  • Идем на сайт владельца NS-серверов нашего сайта. Скорее всего это будет компания, у которой вы регистрировали домен.
  • Находим настройки доменной зоны/ DNS.
  • Добавляем 2 записи со следующими параметрами:    
  • Тип – А
  • Субдомен одной записи – @, второй – www.
  • В каждой прописываем IP-адрес сайта (из п.1). 

Заключение

Хостинг может быть простым и бесплатным, а может быть платным и требующим специальных знаний и навыков администрирования. Можно начать с размещения на бесплатном хостинге с бесплатным доменом. Но не следует путать регистраторов доменных имён и хостеров. Часто хостеры выступают как посредники и предлагают купить домены через себя, но, в общем случае, регистраторы — это отдельные компании, которые никак не связаны с хостингом.

А получить все необходимые навыки программирования и работы с веб-приложениями можно с нашими наставниками в одной из профессий: https://ru.hexlet.io/professions

Читайте также:  Все, что вам нужно знать о домене BBW (упрощенно)
Оцените статью
Хостинги