- О виртуальных хостах Виртуальные хосты используются для настройки более одного домена или веб-сайтов...
- Установите веб-сервер Apache
- Настройка виртуальных хостов Apache
- 2. Настройка собственности и разрешений
- 4. Создайте образцы страниц для виртуальных хостов.
- 5. Создайте файлы виртуальных хостов
- Тестирование виртуальных хостов
О виртуальных хостах
Виртуальные хосты используются для настройки более одного домена или веб-сайтов с использованием одного IP-адреса. Это очень полезно, если кто-то хочет запустить несколько веб-сайтов, используя один IP-адрес на одном VPS.
В этом руководстве я покажу, как настроить виртуальные хосты на веб-сервере Apache на сервере Ubuntu 15.10. Кроме того, этот метод должен работать с предыдущими дистрибутивами Ubuntu, такими как Ubuntu 15.04, 14.10 и 14.04 и т. Д.
сценарий
В этом руководстве я буду использовать 64-битную версию сервера Ubuntu 15.10, и я собираюсь разместить два тестовых сайта, а именно «unixmen1.local» и «unixmen2.local» на одном и том же сервере.
Мой тестовый IP-адрес и имя хоста - 192.168.1.103/24 и server.unixmen.local соответственно. Обязательно измените виртуальные доменные имена в соответствии с вашими требованиями.
Установите веб-сервер Apache
Прежде чем устанавливать сервер Apache, давайте обновим наш сервер Ubuntu:
Для этого запустите:
sudo apt-get update
Теперь установите веб-сервер apache с помощью следующей команды:
sudo apt-get установить apache2
После установки сервера Apache давайте проверим, работает ли веб-сервер должным образом, перейдя по URL-адресу http: // ip-address / .
Как вы видите на картинке выше, веб-сервер apache работает.
Теперь перейдем к настройке виртуальных хостов на веб-сервере Apache.
Настройка виртуальных хостов Apache
1. Создайте виртуальные каталоги
Теперь перейдем к настройке виртуальных хостов. Как я упоминал ранее, я собираюсь разместить два виртуальных хоста с именами «unixmen1.local» и «unixmen2.local» .
Создайте публичный каталог для размещения данных двух виртуальных хостов.
Во-первых, давайте создадим каталог для сайта unixmen1.local:
sudo mkdir -p /var/www/html/unixmen1.local/public_html
Затем создайте каталог для сайта unixmen2.local:
sudo mkdir -p /var/www/html/unixmen2.local/public_html
2. Настройка собственности и разрешений
Указанные выше каталоги теперь принадлежат пользователю root. Мы должны изменить владельца этих двух каталогов на обычного пользователя.
sudo chown -R $ USER: $ USER /var/www/html/unixmen1.local/public_html/ sudo chown -R $ USER: $ USER /var/www/html/unixmen2.local/public_html/
Переменная «$ USER» указывает на текущего пользователя, вошедшего в систему.
Установите права на чтение для веб-каталога Apache (/ var / www / html /), чтобы каждый мог читать файлы из этого каталога.
sudo chmod -R 755 / var / www / html /
Мы создали каталоги для хранения данных веб-сайтов и присвоили им необходимые разрешения и права собственности.
4. Создайте образцы страниц для виртуальных хостов.
Теперь нам нужно создать образцы страниц, которые будут обслуживаться через веб-сайты.
Сначала давайте создадим пример страницы для виртуального хоста unixmen1.local .
Создайте index.html для виртуального хоста unixmen1.local,
sudo vi /var/www/html/unixmen1.local/public_html/index.html
Добавьте следующее содержание:
<html> <head> <title> www.unixmen1.local </ title> </ head> <body> <h1> Добро пожаловать на сайт Unixmen1.local </ h1> </ body> </ html>
Сохраните и закройте файл.
Аналогичным образом добавьте образец страницы на второй виртуальный хост.
sudo vi /var/www/html/unixmen2.local/public_html/index.html
Добавьте следующее содержание:
<html> <head> <title> www.unixmen2.local </ title> </ head> <body> <h1> Добро пожаловать на сайт Unixmen2.local </ h1> </ body> </ html>
Сохраните и закройте файл.
5. Создайте файлы виртуальных хостов
По умолчанию Apache поставляется с файлом виртуального хоста по умолчанию, который называется 000-default.conf . Мы скопируем содержимое файла 000-default.conf в наши новые файлы виртуального хоста.
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/unixmen1.local.conf sudo cp /etc/apache2/sites-available/000-default.conf / etc / apache2 /sites-available/unixmen2.local.conf
Убедитесь, что файлы виртуального хоста имеют расширение .conf в конце.
Теперь измените файл unximen1.local.conf, чтобы он отражал наши новые собственные значения.
sudo vi /etc/apache2/sites-available/unixmen1.local.conf
Внесите соответствующие изменения, которые отражают сайт unixmen1.
<VirtualHost *: 80> # Директива ServerName устанавливает схему запроса, имя хоста и порт, который # сервер использует для идентификации себя. Это используется при создании # перенаправления URL. В контексте виртуальных хостов ServerName # указывает, какое имя хоста должно отображаться в заголовке Host: запроса, чтобы # соответствовать этому виртуальному хосту. Для виртуального хоста по умолчанию (этот файл) это значение # не является решающим, поскольку оно используется в качестве хоста последней инстанции независимо. # Однако вы должны явно установить его для любого другого виртуального хоста. #ServerName www.example.com ServerAdmin [электронная почта защищена] ServerName unixmen1.local ServerAlias www.unixmen1.local DocumentRoot /var/www/html/unixmen1.local/public_html # Доступные уровни журналов: trace8, ..., trace1, debug, информация, уведомление, предупреждение, # ошибка, критик, предупреждение, АВАРИЙНАЯ. # Также можно настроить уровень журнала для определенных # модулей, например #LogLevel info ssl: warn ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} /access.log вместе взятых # Для большинства файлов конфигурации из conf-available / # которые включены или отключены на глобальном уровне, можно включить строку только для одного конкретного виртуального хоста. Например, следующая строка # включает конфигурацию CGI для этого хоста только после того, как он был глобально отключен с помощью «a2disconf». #Include conf-available / serve-cgi-bin.conf </ VirtualHost>
Аналогичным образом измените второй файл виртуального хоста.
sudo vi /etc/apache2/sites-available/unixmen2.local.conf
Внесите соответствующие изменения, которые отражают сайт unixmen2.
<VirtualHost *: 80> # Директива ServerName устанавливает схему запроса, имя хоста и порт, который # сервер использует для идентификации себя. Это используется при создании # перенаправления URL. В контексте виртуальных хостов ServerName # указывает, какое имя хоста должно отображаться в заголовке Host: запроса, чтобы # соответствовать этому виртуальному хосту. Для виртуального хоста по умолчанию (этот файл) это значение # не является решающим, поскольку оно используется в качестве хоста последней инстанции независимо. # Однако вы должны явно установить его для любого другого виртуального хоста. #ServerName www.example.com ServerAdmin [электронная почта защищена] ServerName unixmen2.local ServerAlias www.unixmen2.local DocumentRoot /var/www/html/unixmen2.local/public_html # Доступные уровни журналов: trace8, ..., trace1, отладка, информация, уведомление, предупреждение, # ошибка, критик, предупреждение, АВАРИЙНАЯ. # Также можно настроить уровень журнала для определенных # модулей, например #LogLevel info ssl: warn ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} /access.log вместе взятых # Для большинства файлов конфигурации из conf-available / # которые включены или отключены на глобальном уровне, можно включить строку только для одного конкретного виртуального хоста. Например, следующая строка # включает конфигурацию CGI для этого хоста только после того, как он был глобально отключен с помощью «a2disconf». #Include conf-available / serve-cgi-bin.conf </ VirtualHost>
После изменения файлов виртуальных хостов отключите виртуальный хост по умолчанию (000.default.conf) и включите новые виртуальные хосты, как показано ниже.
sudo a2dissite 000-default.conf sudo a2ensite unixmen1.local.conf sudo a2ensite unixmen2.local.conf
Наконец, перезапустите службу Apache.
В Ubuntu 15.10 / 15.04:
sudo systemctl перезапустить apache2
В Ubuntu 14.10 и более ранних версиях:
перезапуск службы sudo apache2
Вот и все. Теперь мы успешно настроили виртуальные хосты apache на нашем сервере Ubuntu.
Тестирование виртуальных хостов
Отредактируйте файл / etc / hosts ,
sudo vi / etc / hosts
Добавьте виртуальные доменные имена одно за другим, как показано ниже.
[...] 192.168.1.103 unixmen1.local 192.168.1.103 unixmen2.local
Сохраните и закройте файл.
Примечание. В случае, если вы хотите получить доступ к вышеуказанным сайтам из удаленной системы, вам необходимо добавить две вышеупомянутые строки в файл / etc / hosts / вашей удаленной системы. Не забудьте заменить IP-адрес своим собственным.
Откройте браузер и укажите URL-адрес http: //unixmen1.local или http: //unixmen2.local . Вы должны увидеть образцы страниц, которые мы создали ранее.
Unixmen1.local Тестовая страница:
Unixmen2.local Тестовая страница:
Кроме того, вы можете создавать и размещать столько сайтов, сколько захотите. Настроить виртуальные хосты в Ubuntu очень просто. Надеюсь, этот урок поможет вам.
Ура!