Купить Корзина
  • Домены и сайты
  • Облако и IT-инфраструктура
  • Вход

Получить консультацию

Ответим на вопросы, расскажем о конфигурациях, поможем с переносом, подберем оборудование, подготовим коммерческое предложение

Нажимая кнопку «Отправить» я даю согласие на обработку персональных данных и подтверждаю, что ознакомился с Политикой конфиденциальности и правилами пользования сайтом

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

Нажимая кнопку «Отправить» я даю согласие на обработку персональных данных и подтверждаю, что ознакомился с Политикой конфиденциальности и правилами пользования сайтом

Или просто оставьте номер телефона, и мы перезвоним вам

  • Телефон в Москве

    +7 495 580-11-11
  • Бесплатный звонок по России

    8 800 555-34-78
  • Или обратитесь в наши офисы

    Региональные номера
    1. База знаний
    2. Рег.облако
    3. Облачные серверы
    4. Установка программного обеспечения
    5. Как настроить виртуальные хосты Nginx на Ubuntu

    Как настроить виртуальные хосты Nginx на Ubuntu

    В этой инструкции мы рассмотрим настройку виртуальных хостов в Nginx для обслуживания нескольких веб-сайтов одновременно.

    Все действия на сервере осуществляются через подключение по SSH.

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

    Подготовка доменов

    Ваши домены должны быть привязаны к облачному серверу. Сделать это вы можете по инструкции.

    Обратите внимание

    В инструкции приведены примеры с доменом mydomain.ru. В тех местах, где встречается этот домен, замените его своим доменным именем.

    Установка Nginx

    • 1
      Обновите информацию о доступных пакетах с помощью команды sudo apt-get update.
    • 2
      Обновите установленные пакеты, используя команду sudo apt-get upgrade.
    • 3

      Установите Nginx:

      sudo apt -y install nginx
    • 4

      После установки проверьте статус работы Nginx:

      sudo systemctl status nginx

    Если статус inactive (dead), запустите Nginx вручную с помощью команды sudo systemctl start nginx

    Nginx автоматически запускается во время загрузки сервера.

    Чтобы отключить автозапуск, введите:

    sudo systemctl disable nginx

    Чтобы возобновить автозапуск сервиса, введите:

    sudo systemctl enable nginx

    Настройка брандмауэра

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

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

    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    
    sudo iptables-save

    Если вы планируете использовать SSL-сертификат, для подключения по HTTPS выполните команду:

    sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    
    sudo iptables-save

    При переходе по IP-адресу вашего сервера откроется страница Nginx:

    Настройка виртуальных хостов

    Настройка директорий

    Прежде чем создать виртуальный хост, нужно создать директорию для сайта, в которой будут размещены все необходимые файлы. По умолчанию в Ubuntu включен один виртуальный хост Nginx, который обслуживает документы из каталога /var/www/html. Чтобы добавить еще один домен, необходимо создать директорию в /var/www.

    • 1

      Создайте директорию для домена:

      sudo mkdir -p /var/www/mydomain.ru/html
    • 2

      Назначьте права на директорию:

      sudo chown -R www-data:www-data /var/www/mydomain.ru/html
      
      sudo chmod 755 /var/www/mydomain.ru

    Cоздание тестовой страницы

    • 1

      Для проверки работы сервиса создайте индексный файл:

      sudo nano /var/www/mydomain.ru/html/index.html
    • 2

      Заполните файл. Пример содержимого:

      <html>
          <head>
              <title>Hello World</title>
          </head>
          <body>
              <h1>Success!</h1>
          </body>
      </html>
    • 3
      Сохраните изменения и закройте файл.

    Настройка конфигурации

    Теперь нужно создать файл конфигурации для виртуального хоста. Он будет содержать всю необходимую для веб-сервера информацию о сайте. В директории /etc/nginx/sites-available есть шаблон для создаваемых конфигураций.

    • 1

      Скопируйте файл конфигурации:

      sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/mydomain.ru
    • 2
      Откройте файл с помощью команды sudo nano /etc/nginx/sites-available/mydomain.ru
    • 3

      В блоке server нужно изменить директиву root, указав путь к файлам сайта, и имя сервера. Пример содержания:

      server {
              listen 80;
              listen [::]:80;
      
              root /var/www/mydomain.ru/html;
              index index.html index.htm index.nginx-debian.html;
              server_name mydomain.ru;
              location / {
                      try_files $uri $uri/ =404;
              }
      }

      В качестве server_name вы также можете задать IP-адрес или несколько имен через пробел, по которым будет доступен хост.

    • 4
      Сохраните изменения и закройте файл.
    • 5

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

      Создайте символическую ссылку для домена:

      sudo ln -s /etc/nginx/sites-available/mydomain.ru /etc/nginx/sites-enabled/mydomain.ru
    • 6

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

      Откройте конфигурационный файл Nginx:

      sudo nano /etc/nginx/nginx.conf
    • 7

      Раскомментируйте строку:

      server_names_hash_bucket_size 64;

      Это увеличит размер хэш-таблиц имен серверов Nginx и позволит сервису обрабатывать все имена серверов.

    • 8
      Сохраните изменения и закройте файл.
    • 9

      Проверьте файл на наличие ошибок:

      sudo nginx -t

      Если все настроено корректно, в строке вывода будет следующее:

      nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
      
      nginx: configuration file /etc/nginx/nginx.conf test is successful
    • 10

      Перезапустите Nginx:

      sudo systemctl restart nginx

    Готово, настройка виртуальных хостов завершена.

    Проверка работы виртуальных хостов

    Если с момента изменения DNS прошло менее 24 часов и домен еще не делегирован, для проверки работоспособности виртуальных хостов настройте файл hosts по инструкции.

    Если вы заранее привязали домен к серверу и делегирование уже произошло, в адресной строке введите http://ваш_домен_или_ip. Если все настроено корректно, в браузере отобразится следующее:

    Готово, файл index.html можно удалить. Далее вы можете загрузить файлы сайта в созданную директорию.

    Помогла ли вам статья?

    Спасибо за оценку. Рады помочь 😊

     👍
    Специальные предложения
    • Бесплатный хостинг для сайта
    • Дешевый хостинг
    • Бесплатный VPS-сервер
    • Дешёвые VPS
    Рассылка Рег.ру

    Лайфхаки, скидки и новости об IT

    Даю согласие на получение рекламных и информационных материалов

    Домены и сайты
    • Домены
    • Хостинг
    • Создание сайтов
    • SSL-сертификаты
    • VPS и VDS серверы
    • Whois
    • Магазин доменов
    Облако
    и IT-инфраструктура
    • Облачные серверы
    • Частное облако
    • Облачное хранилище
    • Kubernetes в облаке (K8S)
    • Облачные базы данных
    • Выделенные серверы
    Полезное
    • Стоимость услуг
    • Cпособы оплаты
    • База знаний
    • Документы
    • ЭДО
    • Партнерам
    • Сообщить о нарушении
    • РБК: новости России и мира сегодня
    • Новости компаний РФ
    • РБК Инвестиции: курсы валют
    Компания
    • О компании
    • Контакты
    • Офисы
    • Новости
    • Акции и скидки
    • Блог
    • Отзывы клиентов
    8 800 555-34-78 Бесплатный звонок по России
    +7 495 580-11-11 Телефон в Москве
    • vk
    • telegram
    • ok
    • moikrug
    • youtube
    • twitter
    • Облачная платформа Рег.ру включена в реестр российского ПО Запись №23682 от 29.08.2024
    • © ООО «РЕГ.РУ»
    • Политика конфиденциальности
      Политика обработки персональных данных
      Правила применения рекомендательных технологий
      Правила пользования
      и другие правила и политики
    • Нашли опечатку?
      Выделите и нажмите Ctrl+Enter
    • Мы используем cookie и рекомендательные технологии для персонализации сервисов и удобства пользователей. Вы можете запретить сохранение cookie в настройках своего браузера