Apache HTTP

Как настроить Apache VirtualHost в Ubuntu 18.04 LTS

Как настроить Apache VirtualHost в Ubuntu 18.04 LTS
Apache VirtualHost используется для запуска нескольких веб-сайтов на одном сервере Apache. Это потрясающая функция веб-сервера Apache 2 для развертывания веб-сайтов с высокой плотностью на одном сервере. Apache имеет два типа конфигурации VirtualHost: VirtualHost на основе IP и VirtualHost на основе имени.VirtualHost на базе IP: В VirtualHost на основе IP сервер Apache имеет несколько IP-адресов и отвечает разными веб-сайтами на основе IP-адреса.

Рис.1: VirtualHost на базе Apache IP.

VirtualHost на основе имени: В VirtualHost на основе имен сервер Apache имеет один IP-адрес и несколько доменных имен, настроенных для каждого веб-сайта. На DNS-сервере каждому из этих доменных имен назначается IP-адрес сервера Apache. В зависимости от того, какое доменное имя использовал клиент, сервер возвращает разные веб-сайты.

Рис 2: VirtualHost на основе имени Apache.

В этой статье я покажу вам, как настроить VirtualHost на основе имени Apache. Я буду использовать Ubuntu 18.04 LTS для демонстрации. Но он должен работать с любым современным дистрибутивом Linux практически без изменений. Итак, приступим.

Установка веб-сервера Apache 2:

Веб-сервер Apache 2 доступен в официальном репозитории пакетов Ubuntu 18.04 LTS. Таким образом, вы можете легко установить его с помощью диспетчера пакетов APT.

Сначала обновите кеш репозитория пакетов APT с помощью следующей команды:

$ sudo подходящее обновление

Теперь выполните следующую команду, чтобы установить веб-сервер Apache 2:

$ sudo apt install apache2

Теперь нажмите у а затем нажмите продолжать.

Должен быть установлен веб-сервер Apache 2.

Настройка DNS:

Теперь вам нужно настроить DNS-сервер для сопоставления доменных имен, которые вы хотите использовать для VirtualHost, с IP-адресом вашего сервера Apache.

Вы можете узнать IP-адрес вашего сервера Apache с помощью следующей команды:

$ ip a | egrep "инет"

Как видите, в моем случае IP-адрес 192.168.21 год.166. Для тебя будет иначе. Так что не забудьте заменить его теперь своим.

Если вы хотите узнать, как настроить Apache VirtualHost локально, вы можете использовать / etc / hosts файл для локального DNS / разрешения имен.

Чтобы настроить локальное разрешение DNS, откройте / etc / hosts файл с нано следующим образом:

$ sudo nano / etc / hosts

Теперь добавьте в файл строку, отмеченную на скриншоте ниже. Затем нажмите + Икс с последующим у а также сохранить файл.

Теперь локальное разрешение имен должно работать.

Структуры каталогов:

Я хочу хранить все данные веб-сайта моего Apache VirtualHost в определенном каталоге / www. Здесь я хочу создать каталог для каждого пользователя. У каждого пользователя будет свой public_html / а также журналы / каталог также.

Например, для 3 пользователей боб (пример1.com), Алиса (пример2.com), Линда (example3.com), структура каталогов следующая:

/ www
- example1.com /
- www /
- public_html /
- индекс.html
- журналы /
- пример2.com /
- www /
- public_html /
- индекс.html
- журналы /
- example3.com /
- www /
- public_html /
- индекс.html
- журналы /

Самый простой способ сделать это - создать каталог шаблона или скелета и поместить туда структуру каталогов.  Затем создайте каждого пользователя, используя этот каркасный каталог.

Сначала скопируйте содержимое каталога скелета по умолчанию / etc / skel в другой каталог / etc / skel-www следующим образом:

$ sudo cp -rv / etc / skel / etc / skel-www

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

$ cd / и т. д. / skel-www

Затем создайте желаемую структуру каталогов внутри скелетного каталога следующим образом:

$ sudo mkdir -p www / public_html, logs

Вы также можете создать по умолчанию индекс.html файл в public_html / каталог, если хотите.

$ echo "

Оно работает

"| sudo tee www / public_html / index.html

Теперь создайте / www каталог с помощью следующей команды:

$ sudo mkdir / www

Создание пользователей:

Теперь вы можете создать пользователя боб для www.example1.com следующим образом:

$ sudo useradd --create-home --home-dir / www / example1.com --shell
/ bin / bash --gid www-data --skel / etc / skel-www bob

Таким же образом создайте пользователя Алиса для www.пример2.com следующим образом:

$ sudo useradd --create-home --home-dir / www / example2.com --shell / bin / bash
--gid www-data --skel / etc / skel-www Алиса

Снова создайте пользователя linda для www.example3.com следующим образом:

$ sudo useradd --create-home --home-dir / www / example3.com --shell / bin / bash
--гид www-data --skel / etc / skel-www linda

Здесь я назначил основную группу каждого пользователя www-data. По умолчанию сервер Apache работает как эта группа. Если бы я этого не сделал, сервер Apache не смог бы получить доступ к файлам в public_html / каталог и создайте файлы журнала в журналы / каталог.

Настройка Apache VirtualHost:

Теперь вы готовы настроить Apache VirtualHost для 3 пользователей боб (www.example1.com), Алиса (www.пример2.com) и Линда (www.example3.com).

Каталог конфигурации сайта Apache по умолчанию в Ubuntu: / и т.д. / apache2 / сайты-доступные.

Теперь перейдите в каталог / и т.д. / apache2 / сайты-доступные / следующим образом.

$ cd / etc / apache2 / sites-available /

Сначала создайте новый файл конфигурации для bob www.example1.ком.conf следующим образом:

$ sudo nano www.example1.ком.conf

Текстовый редактор должен быть открыт.

Теперь введите следующие строки.

ServerName example1.ком
ServerAlias ​​www.example1.ком
DocumentRoot "/ www / example1.com / www / public_html "

Параметры -FollowSymLinks + MultiViews + Indexes
AllowOverride все
Требовать все предоставлено
ErrorLog "/ www / example1.com / www / журналы / ошибка.бревно"
CustomLog "/ www / example1.com / www / журналы / доступ.журнал "комбинированный

ПРИМЕЧАНИЕ. Измените полужирный текст в соответствии с вашими требованиями.

Наконец, конфигурационный файл www.пример.ком.conf должно выглядеть следующим образом. Нажмите + Икс за которым следуют y и сохранить файл конфигурации.

просто скопировать файл конфигурации для боб (www.example1.ком.conf) и внесите необходимые небольшие изменения.

Скопируйте файл конфигурации боб для Алиса а также Линда с помощью следующих команд:

$ sudo cp -v www.example1.ком.conf www.пример2.ком.conf
$ sudo cp -v www.example1.ком.conf www.example3.ком.conf

Теперь отредактируйте файл конфигурации Алиса следующим образом:

$ sudo nano www.пример2.ком.conf

Теперь измените все вхождения example1 к пример2. Затем сохраните файл.

Сделайте то же самое для Линда.

$ sudo nano www.example3.ком.conf

Измените все вхождения example1 к example3 и сохраните файл.

Включение конфигураций VirtualHost:

Теперь отключите конфигурацию веб-сайта Apache по умолчанию следующим образом:

$ sudo a2dissite 000-по умолчанию.conf

Теперь включите конфигурации VirtualHost www.example1.ком.conf, www.пример2.ком.conf, www.example3.ком.conf следующим образом:

$ sudo a2ensite www.example1.ком.conf www.пример2.ком.conf www.example3.ком.conf

Наконец, перезапустите службу Apache следующим образом:

$ sudo systemctl перезапустить apache2

Тестирование VirtualHosts:

Теперь попробуйте получить доступ к веб-сайтам www.example1.com, www.пример2.com, www.example3.ком

Как видите, все эти веб-сайты работают должным образом.

ПРИМЕЧАНИЕ: Я изменил страницу по умолчанию индекс.html для каждого сайта, чтобы он немного отличался для каждого сайта в целях тестирования. В противном случае вы не сможете определить, работает ли конфигурация VirtualHost или нет.

Итак, вот как вы настраиваете Apache VirtualHost на основе имени в Ubuntu 18.04 LTS. Спасибо, что прочитали эту статью.

Как изменить настройки мыши и сенсорной панели с помощью Xinput в Linux
Большинство дистрибутивов Linux по умолчанию поставляются с библиотекой libinput для обработки событий ввода в системе. Он может обрабатывать события ...
Переназначьте кнопки мыши по-разному для разных программ с помощью X-Mouse Button Control
Может быть, вам нужен инструмент, который мог бы изменять управление вашей мышью с каждым приложением, которое вы используете. В этом случае вы можете...
Обзор беспроводной мыши Microsoft Sculpt Touch
Я недавно прочитал о Microsoft Sculpt Touch беспроводная мышь и решил ее купить. Побывав некоторое время, я решил поделиться своим опытом с ним. Эта б...