Как привязать домен к виртуальному серверу
Мы будем настраивать в соответствии с тем, что у нас будет сначала один сайт, а потом их может стать больше. Сервер на Ubuntu 20.04 LTS будет нашей рабочей лошадкой.
Зайдите на сервер по SSH и запустите его обновление. Для Ubuntu это команда:
apt update && apt -y upgrade && apt-get -y dist-upgrade
Пока сервер обновляется, перейдите в
Наши услуги — Хостинг DNS и проведите процедуру заказа хостинга DNS. Закажите его по
инструкции, затем нажмите
Перейти.
Нажмите Новый домен и укажите тот домен, который только что купили. Тип записи: master. В поле IP адрес будет IP адрес Вашего сервера. Вы получили его по почте и можете найти в панели. Доменное имя Вы зарегистрировали вчера и получили сегодня. В полях не должно быть лишних пробелов. Убедитесь, что их нет, перед тем, как продолжить.
Если сайтов будет несколько, то в хостинге DNS понадобится больше доменных имён. Это можно быстро расширить, если нажать Изменить. Услуга бесплатная по формуле: 1 виртуальный сервер — 1 хостинг DNS и платная, если хостинг DNS требуется с несколькими записями. Нажмите ОК, чтобы задать новое количество доменных имён в DNS хостинге. Изменения применятся быстрее, чем за минуту.
Новое доменное имя добавлено. Теперь нужно проверить, что оно работает. Установите вебсервер Apache2 и добавьте его и SSH в разрешения браундмауэра:
apt -y install apache2 && ufw allow 'Apache' && ufw allow ssh && ufw enable
Теперь откройте сайт в браузере. В залоловке Вы должны увидеть то, что ввели между тегами <title> Теперь необходимо настроить мультисайтовость. Для этого потребуются виртуальные хосты. У нас есть один стандартный, который добавился при установке Apache2. Если будет один сайт, это сойдёт, если планируется несколько сайтов, то так жить нельзя.
Измените hostname сервера со стандартного на удобоваримый и понятный:
hostnamectl set-hostname sparrowhawk
Далее откройте файл /etc/hosts в nano:
nano /etc/hosts
Измените строчку, соответствующую 127.0.1.1 и строчку, соответствующую внешнему IP сервера на то же, что указали в hostnamectl set-hostname после пробела. Нажмите Ctrl+O для сохранения и Ctrl+X для выхода.
ВМ уже работает и настраивается Вами. Удалите cloud-init:
echo 'datasource_list: [ None ]' | sudo -s tee /etc/cloud/cloud.cfg.d/90_dpkg.cfg && apt-get -y purge cloud-init && rm -rf /etc/cloud/; rm -rf /var/lib/cloud/
Включите Canonical Livepatch Service:
https://auth.livepatch.canonical.com перейдите сюда, выберите Ubuntu user и нажмите Get your livepatch token. Пройдите процедуру регистрации. Далее следуйте подсказкам на экране. Не забудьте подтвердить email. Эта система позволит закрывать дырки в ядре без перезагрузки сервера.
Установите snap пакет:
snap install canonical-livepatch
Активируйте сервис вашим токеном:
sudo canonical-livepatch enable токен
Токен найдёте в личном кабинете Ubuntu.
Посмотрите статус Canonical Livepatch Service командой:
canonical-livepatch status --verbose
Виртуальные хосты
Если вкратце, виртуальные хосты позволяют на одном сервере с Linux (не важно, физическом или виртуальном) и на одном IP адресе сделать несколько сайтов. Подробнее можно увидеть в официальной документации:
https://httpd.apache.org/docs/2.4/vhosts/
Создайте директорию для будущего виртуального хоста и выдайте права:
mkdir -p /var/www/sparrowhawk.ru/html && chown -R $USER:$USER /var/www/sparrowhawk.ru && chmod -R 755 /var/www/sparrowhawk.ru
Создайте файл настроек виртуального хоста:
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/sparrowhawk.ru.conf && nano /etc/apache2/sites-available/sparrowhawk.ru.conf
Без комментариев этот файл будет выглядеть примерно так:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
В файле мы настроим элементы для нашего первого домена и добавим несколько дополнительных директив. Этот раздел виртуального хоста соответствует любым запросам на порт 80, используемый по умолчанию для протокола HTTP.
Укажите здесь свою почту администратора ресурса:
ServerAdmin admin@example.com
Укажите вместо example.com адрес сайта (в моём случае это sparrowhawk.ru):
ServerName example.com
ServerAlias www.example.com
Здесь вместо example.com укажите корневую директорию сайта (в моём случае это сайт sparrowhawk.ru):
DocumentRoot /var/www/html
После внесения изменений файл станет таким:
<VirtualHost *:80>
ServerName sparrowhawk.ru
ServerAlias www.sparrowhawk.ru
ServerAdmin techsupport@cloudlite.ru
DocumentRoot /var/www/sparrowhawk.ru/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Нажмите Ctrl+O для сохранения и Ctrl+X для выхода.
Если понадобится ещё один сайт, то создайте ещё один домен, ещё одну корневую директорию сайта, ещё один файл index.html и скопируйте файл sparrowhawk.ru.conf в ту же папку под новым именем для того, чтобы сделать новый файл виртуального хоста.
Теперь создайте файлы index.html для своих сайтов и проверьте их работу. Позднее Вы сможете разместить сайт через SFTP.
Проверьте, что все задуманные для размещения сайты открываются.
Перезагрузите сервер, чтобы применить обновление hostname и некоторые из обновлений ОС.
После загрузки сервера, можно подключиться к нему по SFTP (рекомендую SSHFS, для Linux в репозиториях, для Windows — на
GitHub), затем перейти к настройке CMS, а после этого приглашать людей к посещению сайта.
Управление процессом Apache 2
Теперь ваш веб-сервер запущен и работает, и настало время изучить некоторые простые команды управления, используя systemctl.
Чтобы остановить веб-сервер, введите:
sudo systemctl stop apache2
Чтобы запустить остановленный веб-сервер, введите:
sudo systemctl start apache2
Чтобы остановить и снова запустить службу, введите:
sudo systemctl restart apache2
Если вы просто вносите изменения в конфигурацию, во многих случаях Apache может перезагружаться без отключения соединений. Для этого нужно использовать следующую команду:
sudo systemctl reload apache2
По умолчанию Apache настроен на автоматический запуск при загрузке сервера. Если вы не хотите этого, отключите такое поведение с помощью следующей команды:
sudo systemctl disable apache2
Чтобы перезагрузить службу для запуска во время загрузки, введите:
sudo systemctl enable apache2