Установка и настройка сервера Apache
Apache — это популярнейший свободный веб-сервер. Состоянием на 2020 год он используется на 33% всех сайтов интернета, а это приблизительно 304 миллиарда сайтов. Этот веб-сервер был разработан в далеком 1995, как замена для популярного того сервера NCSA и исправил множество его проблем. Ходят слухи что его имя походит от a patchy, заплатка, так как он исправлял ошибки NCSA. Сейчас же, это кроссплатформенная программа, поддерживающая Windows, Linux и MacOS и обеспечивающая достаточную гибкость, настраиваемость и функциональность. Программа имеет модульную структуру, что позволяет расширять ее функциональность почти до бесконечности с помощью модулей.
Установить Apache в Linux можно с помощью нескольких команд, но программа предоставляет очень большое количество настроек, которые можно изменить, а также модулей, после включения которых она будет работать лучше. В этой статье будет рассмотрена установка и настройка Apache, в качестве основной системы мы будем использовать Ubuntu, но вы можете повторить эти действия в любом другом дистрибутиве.
Содержание статьи:
Установка Apache
На данный момент, самая новая версия программы 2.4 поэтому и будет рассмотрена настройка apache 2.4. Как я уже говорил, в Linux программа устанавливается буквально в пару команд. Для установки в Ubuntu сначала обновим систему до самой новой версии:
sudo apt update
sudo apt upgrade
Затем установка apache2:
sudo apt install apache2
В других дистрибутивах пакет программы называется либо так, либо httpd и его установка у вас не вызовет трудностей.
После завершения установки нужно добавить веб-сервер в автозагрузку, чтобы не запускать его вручную после включения компьютера:
sudo systemctl enable apache2
Настройка Apache
Уже прошло то время, когда конфигурация Apache хранилась в одном файле. Но оно и правильно, когда все распределено по своим директориям, в конфигурационных файлах легче ориентироваться.
Все настройки содержатся в папке /etc/apache/:
- Файл /etc/apache2/apache2.conf отвечает за основные настройки
- /etc/apache2/conf-available/* — дополнительные настройки веб-сервера
- /etc/apache2/mods-available/* — настройки модулей
- /etc/apache2/sites-available/* — настойки виртуальных хостов
- /etc/apache2/ports.conf — порты, на которых работает apache
- /etc/apache2/envvars
Как вы заметили есть две папки для conf, mods и site. Это available и enabled. При включении модуля или хоста создается символическая ссылка из папки available (доступно) в папку enable (включено). Поэтому настройки лучше выполнять именно в папках available. Вообще говоря, можно было бы обойтись без этих папок, взять все и по старинке свалить в один файл, и все бы работало, но сейчас так никто не делает.
Сначала давайте рассмотрим главный файл конфигурации:
vi /etc/apache2/apache2.conf
Timeout — указывает как долго сервер будет пытаться продолжить прерванную передачу или прием данных. 160 секунд будет вполне достаточно.
KeepAlive On — очень полезный параметр, позволяет передавать несколько файлов, за одно соединение, например, не только саму html страницу, но и картинки и css файлы.
MaxKeepAliveRequests 100
KeepAliveTimeout 5 — таймаут соединения, обычно для загрузки страницы достаточно 5-10 секунд, так что больше ставить не нужно, но и рвать соединение раньше чем загрузились все данные тоже не нужно.
User, Group — пользователь и группа, от имени которых будет работать программа.
HostnameLookups — записывать в логи вместо ip адресов доменные имена, лучше отключить, чтобы ускорить работу.
LogLevel — уровень логирования ошибок. По умолчанию используется warn, но чтобы логи заполнялись медленнее достаточно включить error
Include — все директивы include отвечают за подключение рассмотренных выше конфигурационных файлов.
Директивы Directory отвечают за настройку прав доступа к той или иной директории в файловой системе. Синтаксис здесь такой:
<Directory /адрес/в/файловой/системе/>
Параметр значение
</Directory>
Здесь доступны такие основные опции:
AllowOverride — указывает нужно ли читать .htaccess файлы из этой директории, это такие же файлы настроек и таким же синтаксисом. All — разрешать все, None — не читать эти файлы.
DocumentRoot — устанавливает из какой папки нужно брать документы для отображенияа пользователю
Options — указывает какие особенности веб-сервера нужно разрешить в этой папке. Например, All — разрешить все, FollowSymLinks — переходить по символическим ссылкам, Indexes — отображать содержимое каталога если нет файла индекса.
Require — устанавливает, какие пользователи имеют доступ к этому каталогу. Require all denied — всем запретить, Require all granted — всем разрешить. можно использовать вместо all директиву user или group чтобы явно указать пользователя.
Order — позволяет управлять доступом к директории. Принимает два значения Allow,Deny — разрешить для всех, кроме указанных или Deny,Allow — запретить для всех, кроме указанных. Теперь мы можем запретить доступ к директории для всех: Deny from all, а затем разрешить только для приложения от losst.pro: Allow from losst.pro.
Здесь все эти директивы не используются, поскольку нас устраивают значения по умолчанию, но вот в файлах .htaccess они могут быть очень полезны.
У нас остался файл /etc/apache2/ports.conf:
В нем только одна директива, Listen, которая указывает программе на каком порту нужно работать.
Последний файл /etc/apache2/envvars, его вы вряд ли будете использовать, в нем указанны переменные, которые можно использовать в других конфигурационных файлах.
Дальше поговорим немного о htacess. Совсем немного.
Настройка сервера Apache через htaccess
Файлы .htaccess позволяют настраивать веб-сервер на Ubuntu для поведения в определенной директории. Все инструкции, указанные в этом файле выполняются как бы они были обвернуты в тег <directory адрес_папки> если бы находились в основном файле.
Важно заметить, что для того, чтобы сервер читал инструкции из .htaccess настройки для этой папки в основном файле или файле виртуального хоста не должны содержать
А в остальном, здесь может выполняться любая настройка сервера apache, от включения модулей, до обычного изменения доступа к папке. Поскольку все параметры мы уже рассмотрели просто приведем пару примеров:
Order Deny,Allow
Deny from all
Запрещает всем доступ к этой папке, важно применить, для папок с конфигурацией.
Но это очень обширная тема и выходит за рамки этой статьи.
Настройка модулей Apache
Как я уже говорил, Apache — модульная программа, ее функциональность можно расширять с помощью модулей. Все доступные модули загрузчики и конфигурационные файлы модулей находятся в папке /etc/apache/mods-available. А активированные в /etc/apache/mods-enable.
Но вам необязательно анализировать содержимое этих папок. Настройка Apache 2.4 с помощью добавления модулей выполняется с помощью специальных команд. Посмотреть все запущенные модули можно командой:
apache2ctl -M
Включить модуль можно командой:
sudo a2enmod имя_модуля
А отключить:
sudo a2dismod имя_модуля
После включения или отключения модулей нужно перезагрузить apache:
sudo systemctl restart apache2
Во время выполнения одной из этих команд создается или удаляется символическая ссылка на файл модуля с расширением load в директории mods-available. Можете посмотреть содержимое этого файла, там только одна строка. Например:
vi /etc/apache2/mods-available/deflate.load
Это к тому, что активировать модуль можно было просто добавив эту строчку в файл apache2.conf. Но принято делать именно так, чтобы избежать путаницы.
Настройки модулей находятся в той же папке, только в файле с расширением .conf вместо load. Например, посмотрим настройки того же модуля для сжатия deflate:
vi /etc/apache2/mods-available/deflate.conf
Файлы в папке conf-available, это такие же модули, только они установлены отдельно от apache, это может быть конфигурационные файлы для включения модуля php или любого другого языка программирования. Здесь работает все точно так же, только команды для включения и отключения этих модулей немного другие:
a2enconf имя_модуля
a2disconf имя модуля
Как вы убедились, включать модули очень просто. Давайте включим несколько необходимых, но не включенных по умолчанию модулей:
sudo a2enmod expires
sudo a2enmod headers
sudo a2enmod rewrite
sudo a2enmod ssl
Модули expires и headers уменьшают нагрузку на сервер. Они возвращают заголовок Not Modified, если документ не изменился с последнего запроса. Модуль expiries позволяет устанавливать время, на которое браузер должен кэшировать полученный документ. Rewrite позволяет изменять запрашиваемые адреса на лету, очень полезно при создании ЧПУ ссылок и т д. А последний для включения поддержки шифрования по SSL. Не забудьте перезагрузить apache2 после завершения настроек.
Настройка виртуальных хостов Apache
Было бы не совсем удобно, если на одной физической машине можно было размещать только один сайт. Apache может поддерживать сотни сайтов на одном компьютере и выдавать для каждого из них правильное содержимое. Для этого используются виртуальные хосты. Сервер определяет к какому домену приходит запрос и отдает нужное содержимое из папки этого домена.
Настройки хостов Apache расположены в папке /etc/apache2/sites-available/. Для создания нового хоста достаточно создать файл с любым именем (лучше кончено с именем хоста) и заполнить его нужными данными. Обернуть все эти параметры нужно в директиву VirtualHost. Кроме рассмотренных параметров здесь будут использоваться такие:
- ServerName — основное имя домена
- ServerAlias — дополнительное имя, по которому будет доступен сайт
- ServerAdmin — электронная почта администратора
- DocumentRoot — папка с документами для этого домена
Например:
vi /etc/apache2/sites-available/test.site.conf
<VirtualHost *:80>
ServerName test.site
ServerAlias www.test.site
ServerAdmin webmaster@localhost
DocumentRoot /var/www/test.site/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Виртуальные хосты, как и модули нужно активировать. Для этого есть специальные утилиты. Чтобы активировать наберите:
sudo a2ensite test.site
Здесь test.site — имя файла виртуального хоста. Для отключения тоже есть команда:
sudo a2dissite test.site
Настройка виртуальных хостов Apache завершена и на публичном сервере это все бы уже работало, но если вам нужна настройка Apache на домашней машине, то вы ваш новый сайт не откроется в браузере. Браузер не знает такого сайта. И откуда ему знать? DNS службы не могут ничего сообщить об этом доменном имени. Но в системе Linux мы можем сами указать ip адреса для доменных имен в файле /etc/hosts. Поэтому добавляем в конец файла такие строки:
vi /etc/hosts
127.0.0.1 test.site
127.0.0.1 www.test.site
Вот, ну теперь будет работать, открывайте браузер, проверяйте.
Выводы
Вот и все. Установка и настройка Apache linux завершена, вы можете использовать программу для размещения ваших сайтов. Более того, вы не просто настроили ее, вы разобрались со всеми подробностями и теперь знаете чуточку больше. Если у вас остались еще вопросы, пишите в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Как настроить виртуальные хосты в Apache на Ubuntu 18.04/20.04
Каждый владелец VPS сталкивается с вопросом, как разместить несколько сайтов на одном сервере с одним IP-адресом. Если вы используете в качестве веб-сервера Apache, виртуальные хосты (virtual hosts) — верное решение для разделения ресурсов и отдельной конфигурации для каждого сайта.
Предварительная настройка
Все действия осуществляются на сервере через подключение по SSH. Перед тем как приступить к настройке виртуальных хостов, необходимо произвести настройку сервера.
Создание пользователя
По умолчанию после создания сервера для доступа к нему создаётся root пользователь. В целях безопасности не рекомендуем работать под суперюзером.
Чтобы создать пользователя, введите команду:
adduser userName
Где UserName — имя нового пользователя.
Система попросит ввести пароль для нового пользователя и дополнительную информацию:
Теперь установите права доступа, чтобы новый пользователь мог использовать команду sudo. Для этого выполните команду:
usermod -aG sudo UserName
Где UserName — имя созданного ранее пользователя.
Готово, новый пользователь создан. Завершите SSH-сеанс под root и подключитесь к серверу под новым пользователем.
Установка Ubuntu Apache
Чтобы выполнить действия ниже, у вас должен быть установлен Apache. Для полноценной работы сайта рекомендуем установить LAMP (Linux Apache MySQL PHP). Это минимальный набор ПО, который чаще всего используется для размещения и запуска сайта. Как установить LAMP, вы можете узнать в инструкции.
Подготовка доменов
Ваши домены должны быть привязаны к облачному серверу. Сделать это вы можете по инструкции.
Обратите внимание
В данной инструкции будут приведены примеры с доменами faq-reg.ru и support-faq.ru. В тех местах, где они будут встречаться, измените домены на свои.
Подготовка каталогов
Подготовим структуру каталогов. Рабочая директория Apache — /var/www. В данной директории мы будем создавать отдельные каталоги для каждого домена (виртуального хоста).
Чтобы создать каталоги, выполните команды:
sudo mkdir -p /var/www/faq-reg.ru/
sudo mkdir -p /var/www/support-faq.ru/
В этих каталогах будут храниться файлы вашего сайта. Далее необходимо установить права доступа к ним:
sudo chmod -R 755 /var/www
sudo chown -R $USER:$USER /var/www/faq-reg.ru/
sudo chown -R $USER:$USER /var/www/support-faq.ru/
Готово, структура каталогов и права доступа настроены. Далее подготовим демостраницы.
Создание демостраниц
Перед тем как настроить конфигурационный файл, для удобной проверки финального результата мы создадим демостраницу для каждого виртуальная хоста. В каждую папку мы поместим файл index.html, в котором будет строка с именем домена.
Для faq-reg.ru:
echo "<h2>faq-reg.ru</h2>" > /var/www/faq-reg.ru/index.html
Для support-faq. ru:
echo "<h2>support-faq.ru</h2>" > /var/www/support-faq.ru/index.html
Не забудьте заменить доменные имена на ваши.
Готово, теперь после настройки виртуальных хостов мы сможем проверить корректность их работы.
Создание конфигурационных файлов и настройка
Файл конфигурации Ubuntu Apache virtual hosts отвечает за обработку запросов к разным доменам. У Apache существует дефолтный файл конфигурации, который можно использовать в качестве шаблона. Его название может отличаться в зависимости от настроек сервера. В качестве примера мы обозначим название конфига как 000-default.conf. Для каждого виртуального хоста необходимо будет скопировать его, задать произвольное имя (рекомендуем использовать имя домена) и произвести определённые настройки. Обязательное условие — соблюдение расширения файла: .conf
Создание конфига для faq-reg.ru
-
1.
Скопируйте шаблон конфига для первого домена с помощью команды:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/faq-reg.ru.conf
Где 000-default.conf — название конфигурационного файла по умолчанию.
-
2.
Откройте созданный файл командой:
sudo nano /etc/apache2/sites-available/faq-reg.ru.conf
-
3.
В файле присутствует секция VirtualHost для обработки запросов на 80 порт (порт для HTTP-запросов). Заполните оставшиеся поля:
- ServerAdmin — укажите электронный адрес администратора;
- ServerName — укажите домен, для которого вы создаёте конфигурационный файл;
- ServerAlias — раскомментируйте эту строку: удалите решётку в начале строки. В ней укажите псевдоним домена. Часто используется вид www.domain.ru;
- DocumentRoot — укажите каталог домена, который вы создали на этапе подготовки;
- ErrorLog и CustomLog — упомяните домен в названии файла. Так вы сможете быстрее идентифицировать файлы логов;
- Directory — ещё раз укажите каталог домена, который вы создали на этапе подготовки.
Затем сохраните изменения в файле и закройте его:
-
4.
Настройка виртуального хоста для первого домена завершена. Скопируйте этот файл для второго домена с помощью команды:
sudo cp /etc/apache2/sites-available/faq-reg.ru.conf /etc/apache2/sites-available/support-faq.ru.conf
Не забудьте изменить faq-reg.ru.conf и support-faq.ru.conf на имена ваших доменов.
org/HowToStep»>
5.
-
6.
Заполните поля:
- ServerAdmin — укажите электронный адрес администратора;
- ServerName — укажите домен, для которого вы создаёте конфигурационный файл;
- ServerAlias — раскомментируйте эту строку: удалите решётку в начале строки. В ней укажите псевдоним домена. Часто используется вид www.domain.ru;
- DocumentRoot — укажите каталог домена, который вы создали на этапе подготовки;
- ErrorLog и CustomLog — упомяните домен в названии файла. Так вы сможете быстрее идентифицировать файлы логов;
- Directory — ещё раз укажите каталог домена, который вы создали на этапе подготовки.
Затем сохраните изменения и закройте файл:
org/HowToStep»>
7.
-
8.
Перезапустите Apache командой:
sudo service apache2 restart
Откройте файл для редактирования:
sudo nano /etc/apache2/sites-available/support-faq.ru.conf
Деактивируйте конфиг по умолчанию командой:
sudo a2dissite 000-default.conf
И активируйте созданные конфиги:
sudo a2ensite faq-reg.ru.conf
sudo a2ensite support-faq.ru.conf
Готово, создание и настройка виртуальных хостов завершена. Далее можем проверить результат.
Проверка работы виртуальных хостов
Если вы заранее привязали ваши домены к серверу и делегирование уже произошло, при переходе по домену должна открыться страница, которую мы создали на этапе «Создание демостраниц».
Если с момента изменения DNS прошло менее 24 часов и домен ещё не делегирован, увидеть результат вы можете, настроив локальные хосты в файле hosts. Подробнее в инструкции.
При переходе по домену faq-reg. ru:
При переходе по домену support-faq.ru:
Готово, файл index.html можно удалить. Далее вы можете загрузить файлы сайта в созданные директории.
Помогла ли вам статья?
Да
раз уже
помогла
Host Несколько сайтов на одном сервере с использованием Apache
Если вы размещаете более одного сайта на сервере, то, скорее всего, вы используете файлы виртуального хоста Apache, чтобы указать, какой домен должен обслуживаться. Виртуальные хосты на основе имени — это один из методов, используемых для разрешения запросов сайта. Это означает, что когда кто-то просматривает ваш сайт, запрос будет отправлен на сервер, который, в свою очередь, определит, какие файлы сайта будут обслуживаться на основе доменного имени. Используя этот метод, вы сможете разместить несколько сайтов на одном сервере с одним и тем же IP-адресом. В этом руководстве мы покажем вам, как настроить файл виртуального хоста для каждого из ваших доменов на сервере VPS Ubuntu 18. 04.
Предварительная проверка
- Войдите в систему как пользователь root
Шаг 1: Создайте каталог для каждого сайта вы будете размещать в пределах
/ Папка var/www . Это вновь созданное расположение также называется корневым расположением документа; вам нужно будет установить этот путь позже в файле конфигурации. Подпишите domain.com и domain2.com для ваших доменных имен. mkdir -p /var/www/ domain.com /public_html
mkdir -p /var/www/ domain2.com /public_html
Шаг 2. Установка разрешений для папки
chmod -R 755 /var/www
Шаг 3. Настройка индексной страницы
Чтобы увидеть домашнюю страницу, убедитесь, что файл index.html создан для каждого домена. Что-то такое же простое, как « тестирование для домена.com » можно установить в этом файле.
vim /var/www/ domain.com /public_html/index.html
testing for domain.com
Сохраните и выйдите, нажав кнопку Escape и набрав :wq
Повторите шаги для второго домена, используя приведенную ниже команду.
vim /var/www/ domain2.com /public_html/index.html
Шаг 4. Скопируйте файл конфигурации для каждого сайта
Скопируйте файл конфигурации по умолчанию для каждого сайта, это также гарантирует, что у вас всегда будет копия по умолчанию для будущего создания сайта.
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/domain.com.conf
cp /etc/apache2/sites-available/000-default. conf /etc/apache2/sites-available/domain2.com.conf
Шаг 5. Отредактируйте файл конфигурации для каждого сайта
Как минимум, вы настроите и добавите выделенные строки в
Примечание
ServerAlias — это альтернативное имя для вашего домена, в этом случае и в большинстве случаев перед доменным именем ставится www, чтобы люди могли просматривать сайт как с www, так и без www ( ServerName ).
vim /etc/apache2/sites-available/domain.com.conf
ServerAdmin [email protected]
ServerName domain.com
Serveralias www.domain.com
DocumentRoot /var/www/domain.com/public_html
errorlog $ {apache_log_dir}/error.log
CustomLog $ {apache_log_dir} /Ccess.log. Сохраните с :wq . Повторите этот процесс для файла domain2.com.conf , обязательно обновите ServerName , ServerAlias и DocumentRoot для второго домена.
Шаг 6. Включите файл конфигурации
По умолчанию ваш сервер настроен на чтение файла по умолчанию 000-default.conf . Но на предыдущем шаге мы создали новый файл конфигурации для каждого домена. Итак, нам нужно будет отключить файл по умолчанию.
a2dissite 000-default.conf
Чтобы сопоставить ваш сервер с вашими доменами, вам необходимо включить каждый из ваших недавно созданных файлов .conf.
a2ensite domain.com.conf
a2ensite domain2.com.conf
Мы перезапускаем службу Apache, чтобы зарегистрировать наши изменения.
systemctl перезапустить apache2
Шаг 7: Проверка конфигураций Apache
После запуска Apache вы можете убедиться, что конфигурации работают, либо отредактировав файл /etc/host на вашем компьютере, либо отредактировав DNS вашего домена.
После настройки любого из этих параметров вы сможете посетить свой веб-сайт в браузере, чтобы увидеть страницы index.html, установленные на шаге 3.
Клиенты Liquid Web получают круглосуточную поддержку без выходных. на кончиках пальцев с нашими молниеносно быстрыми серверами. Если вы обнаружите, что застряли на шаге, наша служба поддержки хорошо разбирается в конфигурациях Apache и может помочь!
Как настроить веб-сервер Apache в Linux
Apache — это наиболее мощное, гибкое и широко используемое программное обеспечение с открытым исходным кодом, которое обслуживает веб-контент через Интернет. Сервер работает как доставщик, предоставляя контент, доступный в виде файлов HTML, когда клиент делает какой-либо запрос с доменом веб-сайта.
Самое главное, веб-серверы, включая Apache, поддерживают несколько операционных систем, таких как Linux, Windows, Solaris, macOS и т. д. Следовательно, вы можете легко превратить компьютер в сервер, на котором размещено несколько веб-сайтов.
HTTP-сервер Apache позволяет загружать модули с расширенной поддержкой интеграции программного обеспечения и приложений. В этой статье подробно описана установка и настройка HTTP-сервера Apache в Linux.
Шаг 1. Установка Apache Server в Linux
Перед началом установки Apache необходимо обновить базу данных пакетов Linux из официальных репозиториев. Это необходимый шаг, который помогает избежать лазеек в системе безопасности и включает новейшие функции в пакеты.
Обновите список системных репозиториев и установите Apache с помощью следующих команд:
В Ubuntu и Debian:
sudo apt-get update
sudo apt-get install apache -y
В CentOS:
sudo yum update
судо yum install httpd -y
В Fedora:
sudo dnf update
sudo dnf install httpd -y
Чтобы установить Apache в Arch Linux, выполните:
sudo pacman -Syu
sudo pacman -S apache
Обратите внимание, что Ubuntu В дистрибутивах Debian Apache называется apache2, а в CentOS и Fedora — httpd.
В дистрибутивах на основе Debian служба Apache запускается автоматически. Вы можете зайти в браузер и ввести свой локальный IP-адрес, чтобы получить доступ к целевой странице сервера. Если вы не уверены в адресе своего сервера, запустите команду hostname -i , чтобы распечатать подробности.
hostname -i
Вывод:
192.168.43.130
Страница подтверждает успешную установку.
http://
Можно также выполнить следующую команду для проверки установки:
apache2 -version
Вывод:
Если вы используете CentOS, служба не запустится автоматически. Вы можете запустить службу вручную, выполнив команду:
sudo systemctl start httpd
Проверьте состояние службы, как показано ниже:
sudo systemctl status httpd
Шаг 3. Настройте брандмауэр для разрешения доступа к серверу Apache
Еще один обязательный шаг в конфигурации Apache позволяет брандмауэру UFW в Linux принимать или разрешать трафику доступ к серверу через порт 80 по умолчанию. Во время установки служба регистрируется в брандмауэре с некоторыми профилями приложений. Список профилей приложений поможет вам включить/отключить доступ к Apache.
Используйте следующую команду для получения списка всех профилей приложений Apache:
sudo ufw app list
Вывод:
Доступные приложения:
Apache
Apache Full
Apache Secure
OpenSSH
Доступные профили:
- Apache : открывает только порт 80 для обеспечения незашифрованной связи через Интернет
- Apache Full : открывает оба порта 80 и 443 для незашифрованной и безопасной связи
- Apache Secure : обеспечивает безопасный доступ к серверу через HTTPS, разрешая трафик через порт 443
Поскольку для сервера не включен SSL/TLS, мы разрешаем доступ UFW только к порту 80 следующим образом:
sudo ufw allow 'Apache'
Теперь проверьте состояние брандмауэра, выполнив:
sudo ufw status
Шаг 4.
Понимание каталогов и файлов ApacheПосле успешной установки и настройки сервера каждый новичок должен знать, как сервер управляет своими веб-сайтами. и их содержание. 9Каталог 0021 /var/www/html управляет всеми веб-сайтами, которые вы хотите разместить на своем сервере.
По умолчанию каталог содержит веб-страницу, которую вы видели ранее. Apache позволяет создавать различные подкаталоги в этой папке для размещения нескольких веб-сайтов.
В дистрибутивах на основе Ubuntu и Debian основной каталог конфигурации для сервера Apache — /etc/apache2 , а для CentOS — /etc/httpd . Следовательно, все файлы конфигурации для сервера доступны внутри этих каталогов. Некоторые из наиболее известных файлов/каталогов:
- /var/log/apache2/error.log : регистрирует все обнаруженные ошибки
- /var/log/apache2/access.log : регистрирует все запросы доступа к серверу
- /etc /apache2/sites-available : Каталог, содержащий виртуальные хосты
- /etc/apache2/sites-enabled : Хранит готовые к обслуживанию веб-сайты для каждого виртуального хоста. Он не может работать без связывания файла конфигурации внутри каталога, доступного для сайтов, с помощью 9Команда 0021 a2ensite .
Пример настройки виртуального хоста
Установка сервера Apache создает каталог по умолчанию /var/www/html во всех дистрибутивах Linux. Этот каталог содержит все файлы для вашего веб-сайта, но он не может работать, если вы хотите разместить несколько веб-сайтов на одном сервере.
Для обслуживания нескольких доменов вы можете использовать виртуальные хосты и создать каталог домена в папке /var/www следующим образом:
sudo mkdir /var/www/host_example
Измените владельца и права доступа к файлам каталога с помощью chown.
sudo chown -R $current_user:$current_user /var/www/host_example
sudo chmod -R 755 /var/www/host_example
Теперь откройте файл /var/www/host_example/html/content.html в ваш любимый редактор и скопируйте/вставьте следующий HTML:
Добро пожаловать в host_example!
Вы используете host_example в Ubuntu 18.
04!
Apache создает папку конфигурации, которая служит местом хранения содержат запись виртуальных хостов. Файл конфигурации по умолчанию — /etc/apache2/sites-available/000-default.conf . Однако вы можете создать новый файл в соответствии с вашим доменным именем и скопировать/вставить блок конфигурации, доступный в файле по умолчанию.
Отредактируйте файл в текстовом редакторе по вашему выбору и обновите его, указав имя домена и новый каталог следующим образом:
ServerAdmin admin@host_example
ServerName host_example
ServerAlias www.host_example
DocumentRoot / var/www/host_example
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log в сочетании
Активируйте файл конфигурации домена
Файл конфигурации домена host_example.conf для активации требуется использование a2ensite.
sudo a2ensite host_example.conf
В приведенном выше выводе показаны требования для отключения файла конфигурации по умолчанию (000-default.conf):
sudo a2dissite 000-default.conf
Теперь перезапустите службу apache, чтобы загрузить изменения.
sudo systemctl перезапустить apache2
Перейдите в браузер и перейдите к доменному имени, чтобы проверить, обслуживает ли оно ваш веб-сайт:
http://host_example
Тест на наличие ошибок конфигурации
Утилита apache2ctl позволяет проверить наличие ошибок конфигурации сервера Apache. Следующая команда должна вернуть вывод Syntax OK для проверки успешной настройки без ошибок:
sudo apache2ctl configtest
Вывод:
Syntax OK
Размещение нескольких веб-сайтов на серверах Linux с использованием Apache
В приведенном выше руководстве показано модульность и простота установки и настройки сервера Apache.