0Pricing
Linux Server Deployment & SSH Mastery · Урок

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

Настройте виртуальные хосты (или блоки сервера), чтобы размещать несколько веб-сайтов на одном сервере с разными доменными именами.

«Основная настройка виртуальных хостов» — бесплатный урок Linux Server Deployment & SSH Mastery на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Linux Server Deployment & SSH Mastery, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.

Размещение нескольких website

Представьте, что у Вас есть один мощный сервер, но Вы хотите разместить на нём несколько разных website, каждый со своим именем домена (например, myshop.com и myblog.com).

Как один сервер может эффективно обслуживать их без отдельной машины для каждого сайта?

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

Именно здесь используются виртуальные хосты (Apache) или серверные блоки (Nginx)!

  • Это элементы конфигурации, которые позволяют одному веб-серверу обслуживать несколько имён доменов.
  • У каждого домена могут быть собственные корневой каталог документов (где хранятся его файлы), файлы log и специальные настройки.
  • Это экономит ресурсы и упрощает управление сервером.

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

В Apache конфигурации виртуальных хостов обычно хранятся в файлах .conf в специальных каталогах:

  • /etc/apache2/sites-available/: содержит все доступные конфигурации виртуальных хостов.
  • /etc/apache2/sites-enabled/: содержит символические ссылки на активные конфигурации.

Для их включения используются такие команды, как a2ensite.

Apache: базовый виртуальный хост

Вот простая конфигурация виртуального хоста Apache. Этот файл следует создать в каталоге sites-available.

<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    ServerName myfirstsite.com
    ServerAlias www.myfirstsite.com
    DocumentRoot /var/www/myfirstsite
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Apache: настройка по шагам

Чтобы настроить виртуальный хост Apache для myfirstsite.com:

  1. Создайте каталог для файлов вашего веб-сайта.
  2. Создайте файл конфигурации виртуального хоста.
  3. Включите сайт и перезагрузите Apache.

Рассмотрим команды для первых двух шагов:

sudo mkdir -p /var/www/myfirstsite/html
sudo chown -R $USER:$USER /var/www/myfirstsite/html
sudo nano /etc/apache2/sites-available/myfirstsite.conf

Apache: включение и перезагрузка

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

  • sudo a2ensite myfirstsite.conf: создаёт символическую ссылку в каталоге sites-enabled.
  • sudo apache2ctl configtest: проверяет конфигурацию Apache на синтаксические ошибки.
  • sudo systemctl reload apache2: применяет новую конфигурацию без перезапуска сервера.
sudo a2ensite myfirstsite.conf
sudo apache2ctl configtest
sudo systemctl reload apache2

Настройка серверного блока Nginx

Nginx использует серверные блоки, которые очень похожи на виртуальные хосты Apache. Для них также используется похожая структура каталогов:

  • /etc/nginx/sites-available/: хранит все конфигурации серверных блоков.
  • /etc/nginx/sites-enabled/: содержит символические ссылки на активные серверные блоки.

Вместо вспомогательной команды мы создаём символические ссылки вручную.

Nginx: базовый серверный блок

Вот базовая конфигурация серверного блока Nginx для mysecondsite.com. Этот файл следует создать в каталоге sites-available.

server {
    listen 80;
    listen [::]:80;

    root /var/www/mysecondsite/html;
    index index.html index.htm;

    server_name mysecondsite.com www.mysecondsite.com;

    location / {
        try_files $uri $uri/ =404;
    }
}

Nginx: настройка по шагам

Чтобы настроить серверный блок Nginx для mysecondsite.com:

  1. Создайте каталог для файлов вашего веб-сайта.
  2. Создайте файл конфигурации серверного блока.
  3. Создайте символическую ссылку и перезагрузите Nginx.

Вот команды для первых двух шагов:

sudo mkdir -p /var/www/mysecondsite/html
sudo chown -R $USER:$USER /var/www/mysecondsite/html
sudo nano /etc/nginx/sites-available/mysecondsite

Nginx: включение и перезагрузка

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

  • sudo ln -s /etc/nginx/sites-available/mysecondsite /etc/nginx/sites-enabled/: создаёт символическую ссылку.
  • sudo nginx -t: проверяет конфигурацию Nginx на синтаксические ошибки.
  • sudo systemctl reload nginx: применяет новую конфигурацию без перезапуска.
sudo ln -s /etc/nginx/sites-available/mysecondsite /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

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

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

Повторение: несколько сайтов на одном сервере

Отличная работа! Вы изучили основные принципы настройки виртуальных хостов (Apache) и серверных блоков (Nginx).

  • Эти конфигурации позволяют эффективно размещать несколько веб-сайтов на одном сервере.
  • Теперь вы умеете настраивать отдельные конфигурации для разных доменных имён.
  • Это базовый навык администрирования веб-серверов и развёртывания нескольких приложений.

Часто задаваемые вопросы

Урок «Основная настройка виртуальных хостов» бесплатный?

Да — полный текст урока «Основная настройка виртуальных хостов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Linux Server Deployment & SSH Mastery, подпишись на CoddyKit PRO. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.

Чему я научусь в уроке «Основная настройка виртуальных хостов»?

Настройте виртуальные хосты (или блоки сервера), чтобы размещать несколько веб-сайтов на одном сервере с разными доменными именами. Ты практикуешь Linux Server Deployment & SSH Mastery с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Linux Server Deployment & SSH Mastery?

Предыдущий опыт не требуется. Linux Server Deployment & SSH Mastery на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Основная настройка виртуальных хостов»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Linux Server Deployment & SSH Mastery?

Да. Каждый урок Linux Server Deployment & SSH Mastery включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Установка Nginx/Apache
  2. Размещение статических веб-сайтов
  3. Основная настройка виртуальных хостов
  4. Включение HTTPS с помощью Let's Encrypt
← Назад к Linux Server Deployment & SSH Mastery