Настройка виртуальных хостов Apache на Ubuntu
- Что такое виртуальный хост
- Как настроить виртуальные хосты Apache
- Шаг 1. Создание каталогов и настройка прав
- Шаг 2. Настройка конфигурационных файлов
- Шаг 3. Создание тестовой HTML-страницы
- Шаг 4. Включение виртуального хоста в Apache
- Шаг 5. Проверка работы виртуального хоста
Apache ― это популярный веб-сервер, на котором работает 24% веб-сайтов в интернете. В статье Что такое Apache мы рассказывали о истории его создания, принципах работы и преимуществах. В этой статье мы расскажем, для чего нужны в Apache виртуальные хосты и как их настроить в Ubuntu 18.04 и 20.04.
Что такое виртуальный хост
Виртуальный хост ― это сущность, которая позволяет работать множеству сайтов на одном сервере. Хосты совместно и максимально эффективно используют доступные ресурсы сервера.
Файлы сайтов хранятся на серверах в отдельных директориях. На одном сервере может быть размещено множество сайтов. Чтобы сервер понимал, какую директорию использовать, когда пользователь переходит на сайт, нужно связать домен и директорию между собой. За это отвечают виртуальные хосты. Они связывают доменное имя сайта с директорией, в которой находятся нужные файлы.
Настройка хостов при помощи связи домена с директорией называется Name-based (на основании имени). Есть и другие способы настройки виртуальных хостов. Например, Port-based (на основании порта) и IP-based (на основании IP-адреса).
Мы рассмотрим вариант настройки виртуального хоста на основании домена и покажем, как это сделать в Apache на сервере с Ubuntu 18.04 и 20.04.
Как настроить виртуальные хосты Apache
Если на вашем сервере нет Apache, установите его. Для этого:
Обновите список пакетов:
sudo apt update
Установите Apache:
sudo apt install apache2
Готово, этого будет достаточно, чтобы настроить виртуальный хост и протестировать его работу при помощи HTML. Если в дальнейшем вы хотите запустить сайт на PHP с базой данных, выполните установку остальных компонентов LAMP (Linux, Apache, MySQL/MariaDB, PHP) по инструкции.
Дальше в инструкции мы будем использовать тестовый домен faq-2d.ru. При работе с инструкцией вы можете использовать как его, так и собственный домен.
Всю процедуру настройки виртуального хоста мы разделили на шаги.
Стандартная корневая директория для хостов ― /var/www. Здесь в отдельных каталогах хранятся виртуальные хосты. Создайте директорию для faq-2d.ru:
sudo mkdir -p /var/www/faq-2d.ru
Смените владельца директории на текущего пользователя, под которым вы авторизованы:
chown -R $USER:$USER /var/www/faq-2d.ru
Задайте права для этой директории:
sudo chmod -R 755 /var/www
Шаг 2. Настройка конфигурационных файлов
У каждого виртуального хоста есть свой конфигурационный файл (конфиг). Конфиги отвечают за настройку хоста и за поведение Apache при получении запросов. Они хранятся в директории /etc/apache2/sites-available. Там же есть стандартный файл конфигурации 000-default.conf, который можно использовать в качестве шаблона для новых виртуальных хостов.
Чтобы создать конфигурационный файл для нового виртуального хоста (faq-2d.ru в нашем случае), воспользуйтесь шаблоном:
1. Скопируйте содержимое файла 000-default.conf в новый файл:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/faq-2d.ru.conf
Вместо faq-2d.ru введите имя вашего домена.
2. Откройте новый файл при помощи текстового редактора:
sudo nano /etc/apache2/sites-available/faq-2d.ru.conf
3. В файле есть директивы и комментарии (строки, которые начинаются с символа #). Если исключить комментарии, останутся следующие директивы:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.
log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Где:
- <VirtualHost *:80> и </VirtualHost>
- ServerAdmin webmaster@localhost ― это электронная почта администратора. Замените webmaster@localhost на свой почтовый ящик;
- DocumentRoot /var/www/html ― это корневая директория сайта, которую вы создали на 1 шаге. Вместо /var/www/html укажите путь к корневой папке виртуального хоста;
- ErrorLog и CustomLog ― это логи ошибок и доступа.
3. Добавьте 3 новые директивы после строки <VirtualHost *:80>:
ServerName faq-2d.ru
ServerAlias www.faq-2d.
ru
DirectoryIndex index.html
Где:
- ServerName faq-2d.ru ― это основной домен виртуального хоста;
- ServerAlias www.faq-2d.ru ― это псевдоним основного домена. Нужен для того, чтобы сайт открывался и по поддомену www.
- DirectoryIndex index.html ― эта директива указывает, что файл index.html ― это главная страница сайта. Этот файл будет открываться при переходе по домену.
В итоге в файле будут следующие директории:
<VirtualHost *:80>
ServerName faq-2d.ru
ServerAlias www.faq-2d.ru
DirectoryIndex index.html
ServerAdmin admin@faq-2d.ru
DocumentRoot /var/www/faq-2d.ru
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Готово, вы настроили конфигурационный файл виртуального хоста.
Чтобы проверить работу хоста, создайте страницу с простым кодом на HTML.
echo "<h2>faq-2d.ru</h2>" > /var/www/faq-2d.ru/index.html
Вместо /var/www/faq-2d.ru/ введите путь до корневой директории виртуального хоста.
Готово, вы создали тестовую страницу.
Шаг 4. Включение виртуального хоста в Apache
1. Отключите стандартный конфиг:
sudo a2dissite 000-default.conf
2. Активируйте новый виртуальный хост:
sudo a2ensite faq-2d.ru.conf
Вместо faq-2d.ru введите имя вашего домена.
3. Перезапустите веб-сервер Apache:
sudo systemctl restart apache2
Готово, файл для проверки создан.
Шаг 5. Проверка работы виртуального хоста
Если ваш домен привязан к виртуальному серверу, перейдите по домену. Если вы правильно настроили хост, на сайте вы увидите текст, который добавили на 3 шаге:
Если вы использовали домен faq-2d.
123.123.123.123 faq-2d.ru www.faq-2d.ru
Где:
123.123.123.123 ― IP-адрес сервера,
faq-2d.ru ― домен, который вы использовали.
Готово, вы настроили и проверили работу виртуального хоста.
Как настроить виртуальные хосты Apache в Ubuntu 22.04
Срок «Виртуальный хостинг” относится к размещению множества доменов на одном сервере. В системах на базе Linux, таких как Убунту 22.04, а Виртуальный хост — это директива конфигурации в Apache, которая позволяет вам управлять несколькими веб-сайтами на одном сервере.
В этой статье будет обсуждаться метод Установить Uп Виртуальные хосты Apache на Убунту 22.04. Итак, начнем!
Настройка виртуальных хостов Apache в Ubuntu 22.
Чтобы настроить виртуальные хосты Apache в Ubuntu 22.04, ознакомьтесь с приведенной ниже процедурой.
Шаг 1. Проверьте статус службы apache2.Перед настройкой виртуальных хостов важно проверить, работает ли Apache. Для этого мы проверим статус «апач2» услуга:
$ статус systemctl apache2
Приведенное ниже показывает, что «апач2” услуга активна в нашей системе:
Вы также можете использовать свой любимый веб-браузер для указанной проверки. Для этого откройте веб-браузер и проверьте, что «локальный хост” веб-страница созерцает для вас:
Навигация к «локальный хост” означает, что веб-сервер Apache работает правильно. Теперь мы перейдем к процедуре настройки виртуального хоста Apache.
Шаг 2. Настройте виртуальный хост Apache в Ubuntu 22.04.К набор а виртуальный хост в Апачи, создайте каталог, который будет использоваться для хранения данных на веб-сайте. Для этого перейдем к «/var/www», используя следующий «компакт дисккоманда:
$ компакт диск/вар/www/
Затем мы создадим каталог для нашего домена».пример.com”. Здесь вы можете указать свое доменное имя в приведенной ниже команде:
$ судомкдир-п/вар/www/пример.com/
Используйте «чаун” для смены владельца “пример.com” каталог:
$ судочаун-Р www-данные: www-данные /вар/www/пример.com
Шаг 3: Создание веб-страницыЧтобы создать образец “index.html» для нашего веб-сайта, мы будем использовать «нано» редактор:
$ судонано/вар/www/пример.com/index.html
В открывшемся файле запишите следующий код:
<HTML>
<голова>
<заглавие>Добро пожаловать на linuxhint.com</заглавие>
</голова>
<тело>
<h2>Успех! Учебник полностью посвящен настройке apache2!</h2>
</тело>
</HTML>
После добавления кода нажмите «Ctrl+О«, чтобы сохранить файл:
Шаг 4: Создание файла виртуального хоста ApacheНа данный момент мы создали каталог для нашего домена и обновили его владельца. Теперь мы будем Создайте а файл виртуального хоста в каталоге файлов хоста Apache по умолчанию:
$ судонано/и т.д/апач2/сайты доступны/пример.com.conf
В открытый файл виртуального хоста добавьте следующие строки кода. Кроме того, вы должны заменить информацию, связанную с «Имя сервера”, “Псевдоним сервера«, и «DocumentRoot” в соответствии с вашими настройками:
>СерверАдминистратор [электронная почта защищена]
Имя сервера example.com
Псевдоним сервера www.example.com
DocumentRoot /var/www/example.com
Журнал ошибок ${APACHE_LOG_DIR}/error.log
Пользовательский журнал ${APACHE_LOG_DIR}/access.log вместе
Нажимать «Ctrl+О», чтобы сохранить добавленный код файла конфигурации виртуального хоста:
Шаг 5: Включите файл виртуального хостаВыполните следующее «a2ensite” для включения созданного файла виртуального хоста:
$ судо a2ensite example. com.conf
Затем отключите файл конфигурации по умолчанию:
$ судо a2dissite 000-default.conf
После выполнения указанной операции. Перезапустите «апач” в вашей системе Ubuntu 22.04:
$ судо systemctl перезапустить apache2
Шаг 6: Тестирование ошибокНа последнем шаге настройки Apache2 проверьте ошибки конфигурации:
$ судоКонфигурационный тест apache2ctl
В случае наличия безошибочного файла конфигурации выполнение приведенной выше команды сообщит вам, что синтаксис «ХОРОШО”:
Затем перезапустите «апач2” обслуживание на вашем Убунту 22.04 система:
$ судо systemctl перезапустить apache2
Шаг 7: Тестирование виртуального хоста ApacheНаконец, проверьте свой виртуальный хост, перейдя к указанному домену. В нашем случае домен «пример.com”:
Отображаемая информация подтверждает, что наш виртуальный хост Apache запущен и отлично работает в системе Ubuntu 22. 04.
Чтобы настроить виртуальные хосты Apache в Ubuntu 22.04, Создайте а каталог в файлах конфигурации по умолчанию веб-сервера Apache, сдача это право собственности, и набор до виртуальный хост-сервер. После выполнения указанных операций начать сначала «апач2” услуга, и вы можете идти. В этой записи обсуждались метод для настройки виртуальных хостов Apache в Ubuntu 22.04.
Настройка виртуальных хостов Apache в Ubuntu 16.04
Apache является одним из самых популярных веб-серверов в мире.
Компоненты и функции Apache разделены на отдельные элементы, которые можно индивидуально устанавливать и настраивать. Одним из базовых элементов, отвечающим за индивидуальные параметры сайта или домена, является виртуальный хост.
Виртуальные хосты позволяют администратору использовать один сервер для размещения нескольких сайтов (в рамках одного интерфейса или IP-адреса). Каждый домен, настроенный таким образом, будет направлять посетителя на соответствующий сайт. Количество виртуальных хостов на одном сервере ограничивается исключительно ресурсами этого сервера.
Данное руководство поможет настроить виртуальные хосты на выделенном сервере Ubuntu 16.04, что позволит обслуживать разный контент в зависимости от запрашиваемого домена.
Предварительно настроенный сервер Ubuntu 16.04.
Не-root пользователь с расширенными привилегиями.
Установленный веб-сервер Apache:
sudo apt-get update sudo apt-get install apache2
Примечание: В руководстве используются условные домены example.com и test.com; не забудьте заменить их своим доменным именем.
Если у вас нет доменного имени, в конце руководства показано, как протестировать настройку с фиктивными значениями.
1: Создание структуры каталогов
Для начала нужно создать структуру каталогов, в которой будут храниться данные сайта.
Каталог document root (каталог, содержащий контент для Apache) по умолчанию находится в /var/www; в нём нужно создать отдельный каталог для каждого виртуального хоста.
Необходимые каталоги можно создать при помощи следующих команд:
sudo mkdir -p /var/www/example.com/public_html sudo mkdir -p /var/www/test.com/public_html
Примечание: Не забудьте указать свои доменные имена в командах.
2: Настройка прав
Структура каталогов готова, но все они принадлежат пользователю root. Чтобы не-рутовый пользователь мог вносить изменения в файлы веб-каталога, нужно изменить права на эти файлы при помощи следующей команды:
sudo chown -R $USER:$USER /var/www/example.com/public_html sudo chown -R $USER:$USER /var/www/test.com/public_html
Переменная $USER примет имя текущего пользователя. После этого подкаталоги каталоги public_html, содержащие контент сайтов, будут принадлежать текущему пользователю.
Также нужно изменить привилегии и открыть веб-каталог и всё его содержимое для чтения, в противном случае страницы будут отображаться некорректно.
sudo chmod -R 755 /var/www
Теперь все права установлены верно; можно приступать к созданию контента в специальных каталогах.
3: Создание демо-страниц для виртуальных хостов
Создайте тестовый контент; для пробной настройки хостов простых страниц будет достаточно. Просто создайте страницы index.html для каждого сайта.
Начнём с example.com; откройте файл index.html в текстовом редакторе:
nano /var/www/example.com/public_html/index.html
В этом файле создайте простой HTML-документ, который указывает, к какому сайту подключена страница. В данном случае этот файл выглядит так:
Success! The example.com virtual host is working!
Сохраните и закройте файл.
Затем можно скопировать этот файл и использовать его как шаблон для второго сайта:
cp /var/www/example.com/public_html/index.html /var/www/test.com/public_html/index.html
Откройте скопированный файл и внесите соответствующие коррективы:
nano /var/www/test.com/public_html/index.html
Success! The test.com virtual host is working!
Сохраните и закройте файл. Теперь тестовые страницы готовы.
4: Создание файлов виртуальных хостов
Файлы виртуальных хостов задают настройки отдельных сайтов и помогают Apache корректно отвечать на запросы.
Apache поставляется со стандартным файлом хоста по имени 000-default.conf, который можно использовать в качестве шаблона. Скопируйте его, чтобы создать виртуальный хост для каждого доменного имени.
Примечание: По умолчанию настройки Ubuntu требуют, чтобы файлы виртуальных хостов заканчивались на .conf.
Для начала скопируйте файл для первого домена:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf
Откройте файл в текстовом редакторе с привилегиями root:
sudo nano /etc/apache2/sites-available/example.com.conf
С опущенными комментариями файл будет выглядеть примерно так:
ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
Как видите, файл не такой уж объёмный. Теперь нужно внести данные о первом домене и добавить несколько директив. Этот виртуальный хост будет отвечать на запросы, отправляемые на стандартный HTTP-порт 80.
Сначала нужно изменить директиву ServerAdmin, указав электронный адрес администратора сайта.
ServerAdmin admin@example.com
После этого нужно добавить две директивы. Первая – ServerName, которая определяет базовый домен, для которого предназначен хост. Вторая – ServerAlias, которая определяет псевдонимы домена (например, домен с префиксом www):
ServerName example.com ServerAlias www.example.com
Осталось внести в файл хоста последнее изменение – указать нахождение document root этого домена. Укажите в DocumentRoot ранее созданный каталог:
DocumentRoot /var/www/example.com/public_html
В результате файл хоста выглядит так:
ServerAdmin admin@example.com ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
Сохраните и закройте файл.
Скопируйте только что созданный файл и используйте его как шаблон для виртуального хоста второго сайта, отредактировав соответствующие данные.
sudo cp /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-available/test.com.conf
Откройте новый файл с привилегиями root в текстовом редакторе:
sudo nano /etc/apache2/sites-available/test.com.conf
Теперь осталось отредактировать соответствующие данные, чтобы файл мог обслуживать второй домен. В результате второй файл виртуального хоста имеет такой вид:
ServerAdmin admin@test.com ServerName test.com ServerAlias www.test.com DocumentRoot /var/www/test.com/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined
Сохраните и закройте файл.
5: Включение виртуальных хостов
Создав файлы виртуальных хостов, нужно включить их. Apache предоставляет для этого специальные инструменты.
К примеру, для этого можно использовать a2ensite:
sudo a2ensite example.com.conf sudo a2ensite test.com.conf
Затем отключите стандартный виртуальный хост 000-default.conf:
sudo a2dissite 000-default.conf
Перезапустите Apache, чтобы активировать изменения:
sudo systemctl restart apache2
Обратите внимание: система Ubuntu 16.04 использует systemctl.
Также можно использовать команду:
sudo service apache2 restart
Эта команда ещё поддерживается, однако она может вернуть нестандартный результат.
6: Настройка локальных хостов (опционально)
Если у вас нет доменного имени, и вместо настоящего вы использовали условный домен, вы можете протестировать настройки, временно отредактировав файл hosts на локальном компьютере. он будет перехватывать запросы на настроенные ранее домены и направлять их на VPS (то есть, выполнять работу DNS). Но этот метод работает только на локальной машине и подходит только для тестирования.
Примечание: Убедитесь, что вы перешли на локальную машину. Для выполнения данного раздела нужны учётные данные администратора.
В системах Mac или Linux отредактируйте файл hosts с привилегиями администратора.
sudo nano /etc/hosts
Примечание: Пользователи Windows могут найти необходимые инструкции по этой ссылке.
В этом файле нужно указать IP-адрес сервера, а затем доменное имя, которое будет использоваться для доступа к серверу.
К примеру, если IP-адрес сервера — 111.111.111.111, в конец файла хоста нужно внести следующие строки
127.0.0.1 localhost 127.0.1.1 guest-desktop 111.111.111.111 example.com 111.111.111.111 test.com
Теперь все запросы к example.com и test.com будут отправлены на локальный компьютер, а оттуда — на IP-адрес сервера.
Сохраните и закройте файл.
7: Результаты
Чтобы протестировать настройку виртуальных хостов, просто откройте домены в веб-браузере:
http://example.com
В данном случае на экране появится сообщение:
Success! The example.com virtual host is working!
Примечание: Результат, появившийся на экране, зависит от содержания файла, созданного в разделе 3.
Точно так же нужно проверить и второй сайт:
http://test.com
На экране появится следующий результат:
Success! The test.com virtual host is working!
Если оба сайта работают, значит, виртуальные хосты успешно настроены. Если файл hosts на локальном компьютере был изменён, после тестирования удалите внесённые в него строки, чтобы не засорять файл ненужными записями.
Заключение
Теперь сервер Ubuntu 16.04 поддерживает два сайта на отдельных доменах. В целом, количество хостов, которое может поддерживать Apache, зависит только от ресурсов виртуального выделенного сервера. Чтобы добавить на сервер новый виртуальный хост, просто повторите весь вышеописанный процесс.
Как настроить виртуальные хосты Apache в Ubuntu 20.04 (шаг за шагом)
Как настроить виртуальные хосты Apache в Ubuntu 20. 04 (шаг за шагом). Apache — один из лучших веб-серверов, на который приходится более 50% всех активных веб-сайтов и приложений в Интернете. Это инструмент, предназначенный для беспроблемной доставки контента в Интернет.
Веб-сервер Apache разбивает свои компоненты и функции на блоки, которые можно настраивать и настраивать независимо друг от друга. Одним из таких устройств является виртуальный хост Apache; компонент, используемый для описания домена или веб-сайта.
Виртуальный хостинг Apache
Виртуальный хостинг — это функция Apache, которая позволяет пользователям размещать более одного веб-сайта на одном сервере (физическом сервере или облачном сервере). Лучшее в этом виртуальном хосте то, что он позволяет пользователям использовать любой виртуальный хост на одном сервере. Он отображает запросы каждого домена в корень документа соответственно, где находятся все файлы сайтов. Как правило, функции виртуального хостинга используются в общем веб-хостинге и реселлерском веб-хостинге.
Существует два основных типа виртуального хостинга: хостинг на основе имени и хостинг на основе IP. Каждый виртуальный хост имеет свой уникальный IP-адрес и виртуальные хосты на основе имени.
1. Виртуальный хостинг на основе имени
Виртуальный хостинг на основе имен использует разные контроллеры доменных имен для размещения нескольких веб-сайтов на одном сервере с одним IP-адресом. В виртуальном хостинге на основе имени все домены будут иметь один и тот же IP-адрес. Поэтому вам нужно будет сопоставить все домены с одним IP-адресом через панель управления DNS. В основном пользователи полагаются на виртуальный хост на основе имени, поскольку они считают его намного более удобным, чем виртуальный хост на основе IP.
Виртуальный хостинг на базе IP
Виртуальный хостинг на основе IP использует несколько IP-адресов для размещения нескольких веб-сайтов на одном сервере. Вам потребуется несколько сетевых адаптеров (сетевых интерфейсных карт) и назначьте разные IP-адреса для каждого сетевого адаптера. Таким образом, вы можете определить различные директивы на основе IP-адреса, на который получен запрос.
Лабораторная среда
Операционная система — Ubuntu 20.04
Приложение — Веб-сервер Apache
IP-адрес – 192.168.0.10
IP-адрес – 192.168.0.11
Домен – web1.example.com
Домен – web2.example.com
.com
Примечание : Оба домена должны быть указаны с IP-адресом вашего сервера.
Следуйте этому сообщению, чтобы узнать, как настроить виртуальные хосты Apache в Ubuntu 20.04.
Как настроить виртуальные хосты Apache в Ubuntu 20.04
Установить веб-сервер Apache
Перед запуском вам необходимо установить веб-сервер Apache на свой сервер. Вы можете установить его, выполнив следующую команду:
apt-get установить apache2 -y
После установки веб-сервера Apache запустите и включите службу Apache с помощью следующей команды:
systemctl запустить apache2 systemctl включить apache2
Теперь откройте веб-браузер и проверьте веб-сервер Apache, используя URL-адрес http://your-server-ip . Вы должны увидеть тестовую страницу Apache:
Создать структуру каталогов Apache
Для тестирования виртуального хостинга на основе имени и виртуального хостинга на основе IP вам потребуется создать структуру каталогов для всех веб-сайтов.
Сначала создайте каталог для обоих доменов внутри веб-корня Apache, используя следующую команду:
mkdir /var/www/html/web1.example.com /var/www/html/web2.example.com
Затем создайте пустой файл index.html для обоих доменов:
коснитесь /var/www/html/web1.example.com/index.html коснитесь /var/www/html/web2.example.com/index.html
Создайте каталог для обоих IP-адресов с помощью следующей команды:
каталог /var/www/html/ip1 /var/www/html/ip2
Затем создайте пустой файл index.html для обоих IP-адресов:
коснитесь /var/www/html/ip1/index.html коснитесь /var/www/html/ip2/index.html
Теперь проверьте структуру каталогов с помощью следующей команды:
дерево /var/www/html/
Вы получите следующий вывод:
/var/www/html/ ├── index.html ├── ip1 │ └── index.html ├── ip2 │ └── index.html ├── web1.example.com │ └── index.html └── web2.example.com └── index.html
Создание веб-страниц для каждого веб-сайта
Здесь нам нужно создать веб-страницу index.html внутри корневого веб-каталога каждого веб-сайта, которая будет отображаться при посещении домена в браузере.
Сначала создайте страницу index.htm l для web1.example.com домен:
нано /var/www/html/web1.example.com/index.html
Добавьте следующий код:
Добро пожаловать на web1.example.com
Успех! Домашняя страница web1.example.com!
Сохраните и закройте файл, затем создайте страницу index. html для web2.example.com домен:
нано /var/www/html/web2.example.com/index.html
Добавьте следующий код:
Добро пожаловать на web2.example.com
Успех! Домашняя страница web2.example.com!
Сохраните и закройте файл, затем создайте страницу index.html для ip1 :
нано /var/www/html/ip1/index.html
Добавьте следующий код:
Добро пожаловать на 192.168.0.10
Успех! Домашняя страница 192.168.0.10!
Сохраните и закройте файл, затем создайте страницу index.html для ip2 :
нано /var/www/html/ip2/index.html
Добавьте следующий код:
Добро пожаловать на 192.168.0.11
Успех! Домашняя страница 192.168.0.11!
Сохраните и закройте файл, затем измените владельца веб-корня Apache:
chown -R www-данные:www-данные /var/www/html
Настройка виртуальных хостов Apache
По умолчанию файлы конфигурации виртуальных хостов Apache находятся в каталоге /etc/apache2/sites-available в Ubuntu 20. 04. В этом разделе мы создадим файл конфигурации виртуального хоста Apache как для виртуального хостинга на основе имени, так и для виртуального хостинга на основе IP.
Настройка виртуальных хостов на основе имени
Виртуальный хостинг на основе имени позволяет размещать несколько веб-сайтов на одном сервере с использованием доменного имени. Сначала создайте виртуальный хост Apache для .web1.example.com домен:
нано /etc/apache2/sites-available/web1.example.com.conf
Добавьте следующие строки:
Имя сервера web1.example.com Администратор сервера webmaster@web1.example.com DocumentRoot /var/www/html/web1.example.com Опции -Индексы +FollowSymLinks Разрешить переопределить все Журнал ошибок ${APACHE_LOG_DIR}/web1.example.com-error.log CustomLog ${APACHE_LOG_DIR}/web1.example.com-access.log вместе
Сохраните и закройте файл, когда закончите. Затем создайте виртуальный хост Apache для домена web2.example.com :
нано /etc/apache2/sites-available/web2.example.com.conf
Добавьте следующие строки:
Имя сервера web2.example.com Администратор сервера webmaster@web2.example.com DocumentRoot /var/www/html/web2.example.com Опции -Индексы +FollowSymLinks Разрешить переопределить все Журнал ошибок ${APACHE_LOG_DIR}/web2.example.com-error.log CustomLog ${APACHE_LOG_DIR}/web2.example.com-access.log вместе
Сохраните и закройте файл, затем активируйте оба файла конфигурации виртуального хоста с помощью следующей команды:
ln -s /etc/apache2/sites-available/web1.example.com.conf /etc/apache2/sites-enabled/ ln -s /etc/apache2/sites-available/web2.example.com.conf /etc/apache2/sites-enabled/
Затем проверьте файл конфигурации Apache с помощью следующей команды:
apachectl конфигтест
Вы должны получить следующий вывод:
Синтаксис ОК
Наконец, перезапустите службу Apache, чтобы изменения вступили в силу:
systemctl перезапустить apache2
Настройка виртуальных хостов на основе IP
Виртуальный хостинг на основе IP позволяет размещать несколько веб-сайтов на одном сервере, используя отдельный IP-адрес для каждого веб-сайта. Сначала создайте файл конфигурации виртуального хоста Apache для IP 192.168.0.10 :
нано /etc/apache2/sites-available/ip1.conf
Добавьте следующие строки:
ИмяСервера 192.168.0.10 Веб-мастер администратора сервера@192.168.0.10 DocumentRoot /var/www/html/ip1 Опции -Индексы +FollowSymLinks Разрешить переопределить все Журнал ошибок ${APACHE_LOG_DIR}/192.168.0.10-error.log CustomLog ${APACHE_LOG_DIR}/192.168.0.10-access.log вместе
Сохраните и закройте файл, когда закончите. Затем создайте файл конфигурации виртуального хоста Apache для IP 192.168.0.11 9.0030 :
нано /etc/apache2/sites-available/ip2.conf
Добавьте следующие строки:
ИмяСервера 192.168.0.11 Веб-мастер администратора сервера@192.168.0.11 DocumentRoot /var/www/html/ip2 Опции -Индексы +FollowSymLinks Разрешить переопределить все Журнал ошибок ${APACHE_LOG_DIR}/192.168.0.11-error.log CustomLog ${APACHE_LOG_DIR}/192.168.0.11-access.log вместе
Сохраните и закройте файл, затем активируйте оба файла конфигурации виртуального хоста с помощью следующей команды:
ln -s /etc/apache2/sites-available/ip1.conf /etc/apache2/sites-enabled/ ln -s /etc/apache2/sites-available/ip2.conf /etc/apache2/sites-enabled/
Затем проверьте файл конфигурации Apache с помощью следующей команды:
apachectl конфигтест
Вы должны получить следующий вывод:
Синтаксис ОК
Наконец, перезапустите службу Apache, чтобы изменения вступили в силу:
systemctl перезапустить apache2
Вы также можете проверить статус работы Apache с помощью следующей команды:
статус systemctl apache2
Вы получите следующий вывод:
● apache2.service — HTTP-сервер Apache. Загружено: загружено (/lib/systemd/system/apache2.service; включено; предустановка поставщика: включена) Вставка: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Активно: активно (работает) с пятницы 06 мая 2022 г., 10:28:54 IST; 3 с назад Процесс: 8037 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS) Процесс: 7111 ExecReload=/usr/sbin/apachectl изящный (код=выход, статус=0/УСПЕХ) Процесс: 8042 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Основной PID: 8046 (apache2) Заданий: 55 (лимит: 4915) Группа CG: /system.slice/apache2.service ├─8046 /usr/sbin/apache2 -k запуск ├─8047 /usr/sbin/apache2 -k запуск └─8048 /usr/sbin/apache2 -k запуск 06 мая, 10:28:54 vyompc systemd[1]: остановлен HTTP-сервер Apache. 06 мая 10:28:54 vyompc systemd[1]: запуск HTTP-сервера Apache... 06 мая 10:28:54 vyompc systemd[1]: Запущен HTTP-сервер Apache.
Проверка виртуального хостинга на основе имени и IP
На этом этапе виртуальный хостинг на основе имени и IP-адреса настроен на сервере Ubuntu 20. 04. Теперь пришло время убедиться, что все работает так, как ожидалось.
Откройте веб-браузер и получите доступ к обоим доменам по их имени, используя URL:
http://web1.example.com
Вы должны увидеть содержимое index.html, размещенного в домене web1.example.com, на следующей странице:
http://web2.example.com
Вы должны увидеть содержимое index.html, размещенного в домене web2.example.com, на следующей странице:
Вы также можете получить доступ к обоим веб-сайтам по их IP-адресам, используя URL:
http://192.168.0.10
Вы должны увидеть содержимое index.html, размещенного на IP-адресе 192.168.0.10, на следующей странице:
http://192.168.0.11
Вы должны увидеть содержимое index.html, размещенного на IP-адресе 192.168.0.11, на следующей странице:
Как настроить виртуальные хосты Apache в Ubuntu 20.04 Заключение
В этом руководстве мы объяснили, как настроить виртуальные хосты Apache в Ubuntu 20. 04. Мы также настраиваем виртуальный хостинг как на основе имени, так и на основе IP на реальных примерах. Я надеюсь, что теперь вы можете легко разместить несколько веб-сайтов на одном сервере, используя функцию виртуального хостинга Apache.
виртуальных хостов Apache, как их настроить в Ubuntu 20.04
В следующей статье мы рассмотрим виртуальные хосты Apache. Прежде всего, необходимо объяснить, что виртуальный хост — это директива конфигурации Apache, которая позволит нам запускать более одного веб-сайта на одном сервере . Тот факт, что они работают на одном физическом сервере, не очевиден для конечного пользователя.
С виртуальными хостами мы сможем указать корень сайта (каталог, содержащий файлы сайта), создать отдельную политику безопасности для каждого сайта, использовать разные SSL-сертификаты и многое другое.
В следующих строках мы увидим , как настроить виртуальные хосты Apache в Ubuntu 20.04 , и для этого мы должны выполнить следующие требования, прежде чем продолжить; одно или несколько доменных имен, которые указывают на IP-адрес вашего общедоступного сервера и Apache, установленного в Ubuntu.
Содержание
- 1 Создание структуры каталогов
- 2 Создание виртуальных хостов
Создание структуры каталогов
Корень документа — это каталог, в котором файлы веб-сайта для доменного имени хранятся и обслуживаются в ответ на запросы . Мы можем установить рут в интересующем нас месте. Для каждого домена, размещенного на сервере apache, корневой каталог документов будет иметь значение /var/www/domain-name/public_html .
Пусть начнет с создания корневого каталога для двух доменов , которые я собираюсь использовать в этом примере:
sudo mkdir -p /var/www/dominio1.com/public_html sudo mkdir -p /var/www/dominio2.com/public_html
Также мы создадим файл index.html в корневом каталоге документов каждого домена . Это будет показано, когда мы зайдем в домен из браузера:
sudo vim /var/www/dominio1.com/public_html/index.html
Внутри файла мы собираемся вставить следующее содержимое :
<голова> доминио1 <тело>Дом доминио1
Для второго домена мы отредактируем его файл index.html и добавим его следующее содержимое:
sudo vim /var/www/dominio2.com/public_html/index.html
<голова> доминио2 <тело>Дом доминио2
Поскольку приведенные выше команды запускаются с помощью sudo, вновь созданные файлы и каталоги принадлежат пользователю root. Чтобы избежать проблем с правами доступа, мы собираемся изменить владельца корневого каталога доменов и всех файлов в этих каталогах на пользователя apache (www-data) :
sudo chown -R www-data: /var/www/dominio1.com sudo chown -R www-data: /var/www/dominio2.com
Создание виртуальных хостов
В системах Ubuntu Файлы конфигурации виртуальных хостов для Apache находятся в каталоге /etc/apache2/sites-available . Их можно включить, создав символические ссылки на каталог /Etc/apache2/sites-enabled , которые Apache читает при запуске.
Мы можем называть файлы конфигурации как угодно. Но лучше всего использовать доменное имя в качестве имени файла конфигурации виртуального хоста . Теперь мы собираемся открыть наш любимый текстовый редактор и создать основные файлы конфигурации. В примере я просто покажу код для домена1:
sudo vim /etc/apache2/sites-available/dominio1.com.conf
Внутри мы добавим что-то вроде следующего, но для домена2 мы придется изменить домен1 на домен2 в следующем коде :
<Виртуальный хост *:80> Имя сервера dominio1.com Псевдоним сервера www.dominio1.com Администратор сервера webmaster@dominio1.com DocumentRoot /var/www/dominio1.com/public_html <Каталог /var/www/dominio1.com/public_html> Опции -Индексы +FollowSymLinks Разрешить переопределить все Журнал ошибок ${APACHE_LOG_DIR}/dominio1.com-error.log CustomLog ${APACHE_LOG_DIR}/dominio1.com-access.log вместе
- имя_сервера → Вы собираетесь указать домен, который должен соответствовать этой конфигурации виртуального хоста. Восток должен быть доменным именем .
- ServerAlias → Все другие домены или поддомены, которые должны совпадать с этим виртуальным хостом , например www.
- DocumentRoot → Здесь будет указывать каталог, из которого Apache будет обслуживать файлы .
- Параметры → Эта директива определяет, какие функции сервера доступны в определенном каталоге .
- Индексы → Избегайте списков каталогов.
- FollowSymLinks → Когда эта опция включена, Apache будет переходить по символическим ссылкам.
- AllowOverride → Вы собираетесь указать, какие директивы, объявленные в файле .htaccess, могут переопределять директивы конфигурации .
- ErrorLog, CustomLog → Здесь вы укажете расположение файлов журнала .
После сохранения файлов, чтобы включить новый файл виртуального хоста, мы собираемся создайте символическую ссылку из файла виртуального хоста на каталог с поддержкой сайта . Мы сделаем это с помощью сценария a2ensite :
sudo a2ensite dominio1.com
Другой вариант — создать символическую ссылку вручную, как показано ниже:
sudo lnapache -2 /etc /sites-available/dominio1.com.conf /etc/apache2/sites-enabled/
Как только это будет сделано, мы можем проверить конфигурацию на наличие синтаксических ошибок с:
sudo apachectl configtest
Если ошибок нет, в терминале мы увидим следующий результат:
Продолжаем перезапускать службу Apache чтобы изменения вступили в силу:
sudo systemctl restart apache2
Наконец, чтобы убедиться, что все работает как положено, мы откроем URL-адрес http://dominio1. com в браузере и увидим содержимое страницы index.html домена1 :
С помощью виртуальных хостов мы можем разместить несколько доменов на одном сервере Ubuntu . Мы можем повторить шаги, описанные в предыдущих строках, чтобы создать дополнительные виртуальные хосты для всех наших доменов.
То, что было показано в этой статье, является лишь базовым объяснением виртуального хоста и его конфигурации в Ubuntu. Дополнительную информацию можно получить на веб-сайте Apache .
Веб-серверы — Apache | Убунту
Apache — наиболее часто используемый веб-сервер в системах Linux. Веб-серверы используются для обслуживания веб-страниц, запрашиваемых клиентскими компьютерами. Клиенты обычно запрашивают и просматривают веб-страницы с помощью приложений веб-браузера, таких как Firefox, Opera, Chromium или Internet Explorer.
Пользователи вводят унифицированный указатель ресурсов (URL), чтобы указать на веб-сервер с помощью его полного доменного имени (FQDN) и пути к требуемому ресурсу. Например, чтобы просмотреть домашнюю страницу веб-сайта Ubuntu, пользователь введет только полное доменное имя:
www.ubuntu.com
Чтобы просмотреть подстраницу сообщества, пользователь должен ввести полное доменное имя, а затем путь:
www.ubuntu.com/community
Наиболее распространенным протоколом, используемым для передачи веб-страниц, является протокол передачи гипертекста (HTTP). Также поддерживаются такие протоколы, как протокол передачи гипертекста по протоколу защищенных сокетов (HTTPS) и протокол передачи файлов (FTP), протокол для загрузки и выгрузки файлов.
Веб-серверы Apacheчасто используются в сочетании с ядром базы данных MySQL, языком сценариев HyperText Preprocessor (PHP) и другими популярными языками сценариев, такими как Python и Perl. Эта конфигурация называется LAMP (Linux, Apache, MySQL и Perl/Python/PHP) и образует мощную и надежную платформу для разработки и развертывания веб-приложений.
Установка
Веб-сервер Apache2 доступен в Ubuntu Linux. Чтобы установить Apache2:
В командной строке терминала введите следующую команду:
sudo apt установить apache2
Конфигурация
Apache2 настраивается путем размещения директив в текстовых файлах конфигурации. Эти директивы разделены между следующими файлами и каталогами:
apache2.conf: основной файл конфигурации Apache2. Содержит настройки, которые глобальный для Apache2.
httpd.conf: исторически основной файл конфигурации Apache2, названный в честь демона httpd. В других дистрибутивах (или более старых версиях Ubuntu) этот файл может присутствовать. В Ubuntu все параметры конфигурации были перемещены в apache2.conf и указанные ниже каталоги, и этот файл больше не существует.
conf-available: этот каталог содержит доступные файлы конфигурации. Все файлы, которые были ранее в
/etc/apache2/conf.d
следует переместить в/etc/apache2/conf-available
.conf-enabled: содержит символических ссылок на файлы в
/etc/apache2/conf-available
. Когда файл конфигурации имеет символическую ссылку, он будет включен при следующем перезапуске apache2.envvars: файл, в котором установлены переменные среды Apache2 .
модов-доступно: этот каталог содержит файлы конфигурации для загрузки модулей и их настройки. Однако не все модули будут иметь определенные файлы конфигурации.
с поддержкой модов: содержит символических ссылок на файлы в
/etc/apache2/mods-available
. Когда файл конфигурации модуля имеет символическую ссылку, он будет включен при следующем перезапуске apache2.ports.conf: содержит директивы, определяющие, какие порты TCP прослушивает Apache2.
доступных сайтов: в этом каталоге есть файлы конфигурации для Apache2 виртуальных хостов .
Виртуальные хосты позволяют настроить Apache2 для нескольких сайтов с отдельными конфигурациями.
с поддержкой сайтов: как с поддержкой модов,
с поддержкой сайтов
содержит символические ссылки на каталог/etc/apache2/sites-available
. Точно так же, когда файл конфигурации на сайтах доступен по символической ссылке, настроенный им сайт будет активен после перезапуска Apache2.magic: инструкции для определения типа MIME на основе первых нескольких байтов файла.
Кроме того, с помощью директивы Include можно добавить другие файлы конфигурации, а для включения многих файлов конфигурации можно использовать подстановочные знаки. Любая директива может быть помещена в любой из этих конфигурационных файлов. Изменения в основных файлах конфигурации распознаются Apache2 только при его запуске или перезапуске.
Сервер также читает файл, содержащий типы MIME-документов; имя файла задается Директива TypesConfig , обычно через /etc/apache2/mods-available/mime.
, которая также может включать дополнения и переопределения, и по умолчанию conf
/etc/mime.types
.
Основные настройки
В этом разделе объясняются основные параметры конфигурации сервера Apache2. Дополнительные сведения см. в документации Apache2.
Apache2 поставляется с конфигурацией по умолчанию, удобной для виртуального хоста. То есть он настроен с одним виртуальным хостом по умолчанию (используя VirtualHost ), который можно изменить или использовать как есть, если у вас есть один сайт, или использовать в качестве шаблона для дополнительных виртуальных хостов, если у вас несколько сайтов. Если оставить его в покое, виртуальный хост по умолчанию будет служить вашим сайтом по умолчанию, или пользователи сайта увидят, не соответствует ли введенный ими URL-адрес директиве ServerName любого из ваших пользовательских сайтов. Чтобы изменить виртуальный хост по умолчанию, отредактируйте файл
/etc/apache2/sites-available/000-default.
.conf
Примечание
Директивы, установленные для виртуального хоста, применяются только к этому конкретному виртуальному хосту. Если директива установлена для всего сервера и не определена в настройках виртуального хоста, используется настройка по умолчанию. Например, вы можете определить адрес электронной почты веб-мастера и не определять отдельные адреса электронной почты для каждого виртуального хоста.
Если вы хотите настроить новый виртуальный хост или сайт, скопируйте этот файл в тот же каталог с выбранным вами именем. Например:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/mynewsite.conf
Отредактируйте новый файл, чтобы настроить новый сайт, используя некоторые директивы, описанные ниже.
Директива ServerAdmin указывает адрес электронной почты, который будет объявлен для администратора сервера. Значение по умолчанию — webmaster@localhost.
Это должно быть изменено на адрес электронной почты, который доставлен вам (если вы являетесь администратором сервера). Если на вашем веб-сайте возникла проблема, Apache2 отобразит сообщение об ошибке, содержащее этот адрес электронной почты, на который следует сообщить о проблеме. Найдите эту директиву в файле конфигурации вашего сайта в /etc/apache2/sites-available.
Директива Listen указывает порт и, возможно, IP-адрес, который Apache2 должен прослушивать. Если IP-адрес не указан, Apache2 будет прослушивать все IP-адреса, назначенные машине, на которой он работает. Значение по умолчанию для директивы Listen — 80. Измените это значение на 127.0.0.1:80, чтобы заставить Apache2 прослушивать только ваш петлевой интерфейс, чтобы он не был доступен в Интернете, на (например) 81, чтобы изменить порт, который он слушает или оставьте все как есть для нормальной работы. Эту директиву можно найти и изменить в отдельном файле,
/etc/apache2/ports.conf
Директива ServerName является необязательной и указывает, на какое полное доменное имя должен отвечать ваш сайт.
Виртуальный хост по умолчанию не имеет указанной директивы ServerName, поэтому он будет отвечать на все запросы, которые не соответствуют директиве ServerName в другом виртуальном хосте. Если вы только что приобрели доменное имя
mynewsite.com
и хотите разместить его на своем сервере Ubuntu, значение директивы ServerName в файле конфигурации вашего виртуального хоста должно бытьmynewsite.com
. Добавьте эту директиву в новый файл виртуального хоста, который вы создали ранее (/etc/apache2/sites-available/mynewsite.conf
).Вы также можете захотеть, чтобы ваш сайт отвечал на
www.mynewsite.com
, так как многие пользователи посчитают префикс www подходящим. Используйте для этого директиву ServerAlias . Вы также можете использовать подстановочные знаки в директиве ServerAlias.Например, следующая конфигурация заставит ваш сайт отвечать на любой запрос домена, оканчивающийся на .mynewsite.com .
псевдоним сервера *.mynewsite.com
Директива DocumentRoot указывает, где Apache2 должен искать файлы, составляющие сайт. Значение по умолчанию — /var/www/html, как указано в
/etc/apache2/sites-available/000-default.conf
. При желании измените это значение в файле виртуального хоста вашего сайта и не забудьте создать этот каталог, если это необходимо!
Включить новый VirtualHost с помощью утилиты a2ensite и перезапустите Apache2:
sudo a2ensite мой сайт новостей sudo systemctl перезапустить apache2.service
Примечание
Обязательно замените mynewsite на более описательное имя виртуального хоста. Один из способов — назвать файл после директивы ServerName VirtualHost.
Аналогично используйте утилиту a2dissite для отключения сайтов. Это может быть полезно при устранении неполадок с конфигурацией нескольких виртуальных хостов:
sudo a2dissite мой новый сайт sudo systemctl перезапустить apache2.service
Настройки по умолчанию
В этом разделе объясняется настройка параметров сервера Apache2 по умолчанию. Например, если вы добавите виртуальный хост, параметры, настроенные для виртуального хоста, будут иметь приоритет для этого виртуального хоста. Для директивы, не определенной в настройках виртуального хоста, используется значение по умолчанию.
DirectoryIndex — это страница по умолчанию, обслуживаемая сервером, когда пользователь запрашивает индекс каталога, указав косую черту (/) в конце имени каталога.
Например, когда пользователь запрашивает страницу
http://www.example.com/this_directory/
, он или она получит либо страницу DirectoryIndex, если она существует, либо сгенерированный сервером список каталогов, если он не существует, и Указан параметр «Индексы» или страница «Отказано в доступе», если ни один из них не соответствует действительности. Сервер попытается найти один из файлов, перечисленных в директиве DirectoryIndex, и вернет первый найденный.Если он не находит ни один из этих файлов и если Опции индексируют установлен для этого каталога, сервер сгенерирует и вернет список в формате HTML подкаталогов и файлов в каталоге. Значение по умолчанию, найденное в
/etc/apache2/mods-available/dir.conf
, — «index.html index.cgi index.pl index.php index.xhtml index.htm». Таким образом, если Apache2 найдет в запрошенном каталоге файл, соответствующий любому из этих имен, будет отображен первый.Директива ErrorDocument позволяет указать файл, который Apache2 будет использовать для определенных событий ошибок. Например, если пользователь запрашивает несуществующий ресурс, возникает ошибка 404. По умолчанию Apache2 просто возвращает код возврата HTTP 404. Читать
/etc/apache2/conf-available/localized-error-pages.conf
для получения подробных инструкций по использованию ErrorDocument, включая расположение файлов примеров.По умолчанию сервер записывает журнал передачи в файл
/var/log/apache2/access.
. Вы можете изменить это для каждого сайта в файлах конфигурации вашего виртуального хоста с помощью директивы CustomLog или опустить его, чтобы принять значение по умолчанию, указанное вlog
/etc/apache2/conf-available/other-vhosts-access-log. .конф
. Вы также можете указать файл, в который записываются ошибки, с помощью директивы ErrorLog , значение которой по умолчанию —/var/log/apache2/error.log
. Они хранятся отдельно от журналов передачи, чтобы помочь в устранении неполадок с вашим сервером Apache2. Вы также можете указать LogLevel (значение по умолчанию — «warn») и LogFormat (см./etc/apache2/apache2.conf
для значения по умолчанию).Некоторые параметры указываются для каждого каталога, а не для каждого сервера. Опции — одна из этих директив. Раздел каталога заключен в XML-подобные теги, например:
.<Каталог /var/www/html/mynewsite> ...
Директива Options в разделе Directory принимает одно или несколько из следующих значений (среди прочих), разделенных пробелами:
ExecCGI — Разрешить выполнение сценариев CGI.
CGI-скрипты не выполняются, если этот параметр не выбран.
Осторожно
Большинство файлов не должны выполняться как сценарии CGI. Это было бы очень опасно. CGI-скрипты должны храниться в каталоге, отдельном от вашего DocumentRoot и за его пределами, и только этот каталог должен иметь установленную опцию ExecCGI. Это значение по умолчанию, а расположение CGI-скриптов по умолчанию —
/usr/lib/cgi-bin
.Включает — Разрешить включение на стороне сервера. Серверные включения позволяют HTML-файлу включать другие файлы. См. документацию Apache SSI (сообщество Ubuntu) для получения дополнительной информации.
ВключаетNOEXEC — Разрешить включение на стороне сервера, но отключить команды #exec и #include в сценариях CGI.
Индексы — Показать отформатированный список содержимого каталога, если в запрошенном каталоге не существует DirectoryIndex (например, index.
html).
Внимание
Из соображений безопасности это обычно не следует устанавливать и, конечно же, не следует устанавливать в каталоге DocumentRoot. Включайте эту опцию осторожно для каждого каталога, только если вы уверены, что хотите, чтобы пользователи видели все содержимое каталога.
Multiview — поддержка мультиракурсов с согласованием содержимого; эта опция отключена по умолчанию из соображений безопасности. См. документацию Apache2 по этому параметру.
SymLinksIfOwnerMatch — Переходите по символическим ссылкам только в том случае, если у целевого файла или каталога тот же владелец, что и у ссылки.
Настройки apache2
В этом разделе объясняются некоторые основные параметры конфигурации демона apache2.
LockFile — директива LockFile устанавливает путь к файлу блокировки, используемому при компиляции сервера с помощью USE_FCNTL_SERIALIZED_ACCEPT или USE_FLOCK_SERIALIZED_ACCEPT. Он должен храниться на локальном диске. Следует оставить значение по умолчанию, если только каталог журналов не находится в общем ресурсе NFS. В этом случае значение по умолчанию следует изменить на местоположение на локальном диске и на каталог, доступный для чтения только пользователю root.
PidFile — Директива PidFile задает файл, в котором сервер записывает свой идентификатор процесса (pid). Этот файл должен быть доступен для чтения только пользователю root. В большинстве случаев следует оставить значение по умолчанию.
User — Директива User устанавливает идентификатор пользователя, используемый сервером для ответа на запросы. Этот параметр определяет доступ к серверу. Любые файлы, недоступные для этого пользователя, также будут недоступны для посетителей вашего сайта. Значением по умолчанию для пользователя является «www-data».
Предупреждение
Если вы точно не знаете, что делаете, не устанавливайте для директивы пользователя значение root.
Использование root в качестве пользователя создаст большие дыры в безопасности вашего веб-сервера.
Group — Директива Group аналогична директиве User. Группа задает группу, под которой сервер будет отвечать на запросы. Группа по умолчанию также «www-data».
Модули Apache2
Apache2 — модульный сервер. Это означает, что в главный сервер включены только самые основные функции. Расширенные функции доступны через модули, которые можно загрузить в Apache2. По умолчанию базовый набор модулей включается в сервер во время компиляции. Если сервер скомпилирован для использования динамически загружаемых модулей, то модули можно скомпилировать отдельно и добавить в любой момент с помощью директивы LoadModule. В противном случае Apache2 необходимо перекомпилировать для добавления или удаления модулей.
Ubuntu компилирует Apache2 для динамической загрузки модулей. Директивы конфигурации могут быть условно включены при наличии определенного модуля путем включения их в блок
Вы можете установить дополнительные модули Apache2 и использовать их с вашим веб-сервером. Например, выполните следующую команду в терминале, чтобы установить модуль Python 3 WSGI:
sudo apt установить libapache2-mod-wsgi-py3
Установка автоматически включит модуль, но мы можем отключить его с помощью а2дисмод
:
судо a2dismod wsgi sudo systemctl перезапустить apache2.service
А затем используйте утилиту a2enmod
, чтобы повторно включить его:
судо a2enmod wsgi sudo systemctl перезапустить apache2.service
Дополнительные модули, уже доступные в вашей системе, см. в каталоге /etc/apache2/mods-available
.
Конфигурация HTTPS
Модуль mod_ssl
добавляет в сервер Apache2 важную функцию — возможность шифрования связи. Таким образом, когда ваш браузер обменивается данными с использованием SSL, 9Префикс 0554 https:// используется в начале унифицированного указателя ресурсов (URL) на панели навигации браузера.
Модуль mod_ssl
доступен в пакете apache2-common. Выполните следующую команду в терминале, чтобы включить модуль mod_ssl
:
судо a2enmod ssl
Файл конфигурации HTTPS по умолчанию находится в /etc/apache2/sites-available/default-ssl.conf
. Чтобы Apache2 обеспечивал HTTPS, сертификат и ключ файл также необходимы. В конфигурации HTTPS по умолчанию будут использоваться сертификат и ключ, сгенерированные пакетом ssl-cert
. Они хороши для тестирования, но автоматически сгенерированный сертификат и ключ следует заменить сертификатом, специфичным для сайта или сервера. Информацию о создании ключа и получении сертификата см. в разделе Сертификаты.
Чтобы настроить Apache2 для HTTPS, введите следующее:
sudo a2ensite по умолчанию-ssl
Примечание
Каталоги
/etc/ssl/certs
и/etc/ssl/private
являются местоположениями по умолчанию.Если вы устанавливаете сертификат и ключ в другой каталог, обязательно измените SSLCertificateFile и SSLCertificateKeyFile соответствующим образом.
Теперь, когда Apache2 настроен для HTTPS, перезапустите службу, чтобы включить новые настройки:
sudo systemctl перезапустить apache2.service
Примечание
В зависимости от того, как вы получили сертификат, вам может потребоваться ввести парольную фразу при запуске Apache2.
Вы можете получить доступ к защищенным страницам сервера, набрав https://your_hostname/url/
в адресной строке браузера.
Совместное использование Разрешение на запись
Чтобы несколько пользователей могли писать в один и тот же каталог, необходимо предоставить разрешение на запись группе, которую они совместно используют. В следующем примере разрешение на запись для общего доступа предоставляется /var/www/html
в группу «вебмастера».
sudo chgrp -R веб-мастера /var/www/html sudo chmod -R g=rwX /var/www/html/
Эти команды рекурсивно устанавливают групповое разрешение для всех файлов и каталогов в /var/www/html
, чтобы разрешить чтение, запись и поиск в каталогах. Многие администраторы находят это полезным для разрешения нескольким пользователям редактировать файлы в дереве каталогов.
Предупреждение
Демон
apache2
будет работать как 9Пользователь 0554 www-data , которому соответствует группаwww-data
. Этим не следует предоставлять доступ на запись к корню документа, поскольку это будет означать, что уязвимости в Apache или приложениях, которые он обслуживает, позволят злоумышленникам перезаписать обслуживаемый контент.
Ссылки
Документация Apache2 содержит подробную информацию о директивах конфигурации Apache2. Кроме того, официальную документацию по Apache2 см.