Linux конфигурационный файл apache

Основы Apache (httpd)

Базовая настройка сервера Apache

Установка необходимых пакетов

Сервер Apache предоставляется через несколько различных пакетов. Базовый пакет — httpd; этот пакет содержит все, что нужно для рабочего, но базового веб-сервера. Также есть несколько дополнительных пакетов. Для полного обзора пакетов вы можете использовать команду yum search http или использовать yum install httpd для установки базового пакета.

Обратите внимание, что команда yum search http выдает много пакетов. Это связано с тем, что веб-сервер Apache является модульным, а различные модули предоставляются через дополнительные пакеты yum.

Вместо использования отдельных пакетов вы также можете использовать yum groups. Команда yum groups list предоставляет обзор всех доступных групп yum, а yum group Basic Web Server предоставляет все необходимое для установки веб-сервера Apache и все необходимые зависимости. Чтобы выполнить установку Apache используйте yum groups install «Basic Web Server».

Определение основного файла конфигурации

Конфигурация веб-сервера Apache проходит через различные файлы конфигурации. Основной файл конфигурации Apache — /etc/httpd/conf/httpd.conf. В этом файле указано много параметров. Самый важный параметр, который нужно понять для настройки базового веб-сервера, — это параметр DocumentRoot. Этот параметр указывает местоположение по умолчанию, где веб-сервер Apache ищет контент.

Другим важным параметром конфигурации является ServerRoot. Он определяет каталог по умолчанию, где Apache будет искать свои файлы конфигурации. По умолчанию для этой цели используется каталог /etc/httpd, но могут использоваться и другие каталоги.

Вы заметите, что в httpd.conf упоминаются многие другие файлы конфигурации. Использование дополнительных файлов конфигурации позволяет приложениям легко устанавливать snap-in файлы, которые будут включены сервером Apache из пакетов RPM. Все имена этих файлов конфигурации относятся к ServerRoot в /etc/httpd.

В листинге 1 показана часть содержимого файла конфигурации httpd.conf.

Создание контента веб-сервера

После определения DocumentRoot веб-сервера вы знаете все, что нужно знать для настройки базового веб-сервера. По умолчанию веб-сервер Apache ищет файл с именем index.html и представляет содержимое этого документа клиентам, использующим браузер для доступа к веб-серверу. Достаточно настроить этот файл с очень простым содержанием; подойдет только строка типа «Добро пожаловать на мой веб-сервер».

Чтобы протестировать веб-сервер, вы можете запустить браузер. Браузер Firefox установлен по умолчанию во всех графических установках RHEL / CentOS. Если ваш сервер не поддерживает графический интерфейс, используйте yum install elinks для установки текстового браузера elinks.

Этот браузер не позволяет загружать сложные веб-страницы, но он позволяет вам проверить работу веб-сервера. Ниже на скриншоте показано, как выглядит интерфейс elinks.

В упражнении 1 вы узнаете, как настроить базовый веб-сервер.

Упражнение 1. Настройка базового веб-сервера

В этом упражнении вы узнаете, как настроить базовый веб-сервер Apache.

1. Выполните yum groups install «Basic Web Server». Это установит пакет httpd, а также некоторые из наиболее часто используемых дополнительных пакетов.

2. Откройте главный файл конфигурации Apache в редакторе и найдите строку, которая начинается с DocumentRoot. DocumentRoot определяет местоположение, где сервер Apache будет искать контент, который он будет обслуживать. Убедитесь, что он установлен в /var/www/html.

3. В каталоге /var/www/html создайте файл с именем index.html. В этом файле введите «Добро пожаловать на мой веб-сервер».

4. Чтобы запустить и включить веб-сервер, выполните systemctl start httpd; systemctl enable httpd. Команда запускает веб-сервер и гарантирует, что он будет запускаться автоматически после перезапуска сервера. Выполните systemctl status httpd, чтобы убедиться, что веб-сервер запущен и работает. В листинге 2 вы можете увидеть, как должен выглядеть результат этой команды.

5. Выполните yum install elinks, чтобы установить текстовый браузер elinks. Введите elinks http://localhost, чтобы подключиться к веб-серверу и убедиться, что он работает.

Понимание файлов конфигурации Apache

При установке веб-сервера Apache по умолчанию создается довольно сложное дерево конфигурации в каталоге /etc/httpd. В листинге 3 показано содержимое этого каталога по умолчанию. Обратите внимание, что содержимое этого каталога может отличаться на вашем сервере, если установлены дополнительный пакеты. Apache является модульным, и после установки дополнительных модулей Apache здесь могут быть установлены другие файлы конфигурации.

Листинг 3
Первое, что вы заметите, это наличие трех символических ссылок на журналы, модули и каталог выполнения. Они созданы, чтобы позволить Apache запускаться в среде chroot.

Среда chroot предоставляет поддельный корневой каталог. Это каталог в файловой системе, представленный в качестве корневого каталога для процесса, который выполняется в среде chroot. Это сделано по соображениям безопасности: процессы, работающие в среде chroot, могут обращаться к файлам только в этой среде chroot, что снижает риск возникновения инцидентов безопасности, когда злоумышленникам удается получить оболочку входа в систему с использованием идентификатора веб-сервера и попробовать пройти через файловюя систему для выполнения несанкционированных действий.

Читайте также:  Linux локальная или сетевая

Основные файлы конфигурации для веб-сервера Apache находятся в каталоге /etc/httpd/conf. Для начала, есть файл httpd.conf, который содержит наиболее важные параметры конфигурации. Кроме того, есть файл с именем magic. Этот файл используется браузером для интерпретации того, каким должно быть содержимое веб-сервера. Это гарантирует, что содержимое веб-сервера отображается правильно в разных браузерах.

Каталог /etc/httpd/conf.d содержит файлы, которые включены в конфигурацию Apache. Это делается с помощью строки Include conf.modules.d/*.conf в файле httpd.conf.

Этот каталог может использоваться RPM, которые включают snap-in файлы оснастки Apache. Как и в случае с ServerRoot, этот подход позволяет добавлять файлы конфигурации, которые определяют различные веб-страницы, без изменения содержимого файла /etc/httpd/conf/httpd.conf.

Последним каталогом конфигурации является /etc/httpd/conf.modules.d. Apache — это модульный веб-сервер. Поэтому функциональность веб-сервера Apache можно легко расширить, добавив дополнительные модули, которые обеспечивают множество различных функций.

Если используются модули, они могут использовать свои собственные файлы конфигурации, специфичные для модулей, которые будут помещены в каталог /etc/httpd/conf.modules.d. Опять же, цель этого подхода состоит в том, чтобы сохранить конфигурацию в /etc/httpd/conf.d/httpd.conf настолько чистой, насколько это возможно, и убедиться, что конкретная конфигурация модуля не перезаписывается при обновлении универсальной конфигурации Apache.

Создание виртуальных хостов Apache

Многие компании размещают более одного сайта. К счастью, нет необходимости устанавливать новый сервер Apache для каждого веб-сайта, который вы хотите запустить. Apache можно настроить для работы с виртуальными хостами. Виртуальный хост — это отдельный файл конфигурации Apache, созданный для уникального имени хоста.

При работе с виртуальными хостами процедура доступа к хосту примерно такая:

  1. Клиент начинает сеанс с конкретным виртуальным хостом, обычно запуская браузер и вводя URL-адрес веб-сайта, который клиент хочет использовать.
  2. DNS помогает определить IP-адрес виртуального хоста, который является IP-адресом сервера Apache, на котором могут размещаться разные виртуальные хосты.
  3. Процесс Apache получает запросы на все виртуальные хосты, которые он размещает.
  4. Процесс Apache считывает заголовок HTTP, чтобы проанализировать, на какой виртуальный хост необходимо отправить этот запрос.
  5. Apache читает конкретный файл конфигурации виртуального хоста, чтобы определить, какой корневой каталог документов используется этим конкретным виртуальным хостом.
  6. Запрос перенаправляется в соответствующий файл содержимого в корне этого конкретного документа.

При работе с виртуальными хостами необходимо помнить несколько вещей:
■ Если ваш сервер Apache настроен для виртуальных хостов, все серверы, на которых он размещается, должны обрабатываться виртуальными хостами. Чтобы создать все записи перехвата для всех HTTP-запросов, которые направлены на этот хост, но у которых нет определенного файла виртуального хоста, вы можете создать виртуальный хост _default_: 80.

■ Виртуальный хостинг на основе имен является наиболее распространенным решением. В этом решении виртуальные хосты используют разные имена, но один и тот же IP-адрес.

■ Виртуальные хосты на основе IP менее распространены, но необходимы, если имя веб-сервера должно быть преобразовано в уникальный IP-адрес. Виртуальные хосты на основе IP требуют нескольких IP-адресов на одном сервере и являются общими в конфигурации, где сервер Apache использует TLS для защиты соединений.

Упражнение 2. Установка виртуальных хостов Apache

В этом упражнении вы создадите два виртуальных хоста. Чтобы помочь вам настроить виртуальные хосты, вы сначала настраиваете разрешение имен, после чего вы создаете конфигурацию виртуальных хостов.

1. На сервере server1 и server2 откройте файл /etc/hosts с помощью редактора и добавьте две строки, которые позволяют сопоставить имена виртуальных хостов, которые вы собираетесь создать, с IP-адресом сервера:
2. На сервере server1 добавьте следующее в файл /etc/httpd/conf/httpd.conf. (Вы можете оставить все остальные настройки как есть.)
3. Там же на сервере server1 создайте файл конфигурации с именем account.example.com.conf в каталоге /etc/httpd/conf.d.

Добавьте в этот файл:
4. Закройте файл конфигурации и выполните:

5. В каталоге account.example.com, который вы указали выше в строке DocumentRoot, создайте файл с именем index.html и убедитесь, что в нём написано «Добро пожаловать в account».

6. Временно выключите SELinux командой setenforce 0.

7. Выполните systemctl restart httpd для перезапуска веб-сервера Apache.

8. Выполните elinks http://account.example.com. Теперь вы должны увидеть страницу приветствия account. (Возможно, вам придется установить elinks, используя yum install -y elinks.)

9. Вернувшись в терминал, скопируйте файл /etc/httpd/conf.d/account.example.com.conf в файл с именем /etc/httpd/conf.d/sales.example.com.conf.

10. Откройте файл sales.example.com.conf в vi и выполните команду :%s/account/sales/g. Этой командой вы сделаете замену текста account на sales, который встречается во всём файле.

11. Создайте каталог /www/docs/sales.example.com и создайте в нем файл index.html, содержащий текст «Добро пожаловать на сервер sales».

12. Перезапустите httpd и убедитесь, что account и sales доступны.

Источник

Как настроить веб-сервер Apache на Ubuntu или Debian VPS

Что такое Apache?

Apache — самый популярный веб-сервер в Интернете. Он используется для обслуживания более половины всех активных веб-сайтов.

Читайте также:  Бесконечная подготовка обновлений windows

Хотя существует множество жизнеспособных веб-серверов, которые будут обслуживать ваш контент, полезно понять, как Apache работает из-за его вездесущности.

В этой статье мы рассмотрим некоторые общие файлы конфигурации и параметры, которые можно контролировать внутри них. Эта статья будет следовать макету Ubuntu / Debian для файлов Apache, который отличается от того, как другие дистрибутивы строят иерархию конфигурации.

Как установить Apache на Ubuntu и Debian

Если у вас еще нет Apache, вы можете сделать это сейчас, выпустив следующие команды:

Это все, что необходимо для работы веб-сервера. Если вы посетите свой IP-адрес VPS в веб-браузере, вы получите индексную страницу Apache по умолчанию:

Иерархия файлов Apache в Ubuntu и Debian

На Ubuntu и Debian Apache хранит свои основные файлы конфигурации в папке «/ etc / apache2»:

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

  • apache2.conf : Это основной файл конфигурации для сервера. Практически вся конфигурация может быть выполнена изнутри этого файла, хотя для простоты рекомендуется использовать отдельные назначенные файлы. Этот файл будет настраивать значения по умолчанию и быть центральной точкой доступа для сервера для чтения сведений о конфигурации.
  • ports.conf : этот файл используется для указания портов, которые должны прослушивать виртуальные хосты. Убедитесь, что этот файл правильный, если вы настраиваете SSL.
  • conf.d / : Этот каталог используется для управления определенными аспектами конфигурации Apache. Например, он часто используется для определения конфигурации SSL и выбора безопасности по умолчанию.
  • sites-available / : Этот каталог содержит все файлы виртуальных хостов, которые определяют разные веб-сайты. Они будут определять, какой контент будет обслуживаться для каких запросов. Это доступные конфигурации, а не активные конфигурации.
  • sites-enabled / : Этот каталог устанавливает, какие виртуальные определения узлов фактически используются. Обычно этот каталог состоит из символических ссылок на файлы, определенные в каталоге «sites-available».
  • mods- [enabled, available] / : эти каталоги похожи по функциям каталогов сайтов, но они определяют модули, которые могут быть необязательно загружены.

Как вы можете видеть, конфигурация Apache не выполняется в одном монолитном файле, но вместо этого происходит через модульную конструкцию, где новые файлы могут быть добавлены и изменены по мере необходимости.

Просмотр файла Apache2.conf

Основные сведения о конфигурации вашего сервера Apache хранятся в файле «/etc/apache2/apache2.conf».

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

В Ubuntu и Debian большая часть файла предназначена для глобальных определений, а конфигурация сервера по умолчанию и виртуальных хостов обрабатывается в конце с помощью директивы «Включить …».

Директива «Включить» позволяет Apache считывать другие файлы конфигурации в текущий файл в том месте, где отображается оператор. В результате Apache динамически генерирует общий файл конфигурации при запуске.

Если вы пролистаете нижнюю часть файла, существует несколько разных операторов «Включить». Эти определения загрузочного модуля, документ ports.conf, конкретные файлы конфигурации в каталоге «conf.d /» и, наконец, определения виртуального хоста в каталоге «sites-enabled /».

Мы сосредоточимся на первой части файла, чтобы узнать, как Apache определяет свои глобальные настройки.

Раздел глобальной конфигурации

Этот раздел используется для настройки некоторых параметров, которые управляют тем, как Apache работает в целом.

Есть несколько интересных вариантов, которые вы можете изменить в этом разделе:

Тайм-аут

По умолчанию для этого параметра установлено значение «300», что означает, что для выполнения каждого запроса сервер имеет максимум 300 секунд.

Это, вероятно, слишком велико для большинства настроенных устройств и может быть безопасно сброшено на что-то между 30 и 60 секундами.

KeepAlive

Этот параметр, если он установлен в положение «Вкл.», Позволит каждому соединению оставаться открытым для обработки нескольких запросов от одного и того же клиента.

Если для этого параметра установлено значение «Выкл.», Каждый запрос должен будет установить новое соединение, что может привести к значительным накладным расходам в зависимости от вашей настройки и ситуации с трафиком.

MaxKeepAliveRequests

Это определяет, сколько отдельных запросов обрабатывает каждое соединение до их смерти. Сохранение этого числа позволит Apache лучше обслуживать контент для каждого клиента.

Установка этого значения в 0 позволит Apache обслуживать неограниченное количество запросов для каждого соединения.

KeepAliveTimeout

Этот параметр указывает, как долго ждать следующего запроса после окончания последнего. Если достигнут порог тайм-аута, соединение будет умирать.

Это означает, что при следующем запросе контента сервер установит новое соединение для обработки запроса на контент, составляющий страницу, на которую посещает клиент.

Конфигурация MPM

В следующем разделе описывается конфигурация параметров MPM (Multi-Processing Module). Вы можете перекрестно ссылаться на раздел, в который была скомпилирована ваша установка Apache, выйдя в терминал и набрав:

Как вы можете видеть, на этом сервере «prefork.c» — это модуль, который был скомпилирован и находится в файле «apache2.conf». У вашей установки может быть несколько вариантов, но только один может быть выбран.

Читайте также:  Как выключить компьютер по таймеру windows 10 командная

Вы можете настроить конфигурацию MPM prefork в соответствующем разделе.

Изучение файла виртуального хоста по умолчанию

Объявление виртуального хоста по умолчанию можно найти в файле «default» в каталоге «sites-available».

Мы можем узнать об общем формате файла виртуального хоста, изучив этот файл. Откройте файл со следующей командой:

Виртуальный хост по умолчанию настроен для обработки любого запроса на порт 80, стандартный порт http. Это определено в заголовке объявления, где указано «*: 80», что означает порт 80 на любом интерфейсе.

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

Конфигурация верхнего уровня виртуального хоста

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

Параметр «ServerAdmin» указывает контактное письмо, которое должно использоваться при возникновении проблем с сервером.

Это можно вставить на страницу с ошибкой, если в файле «/etc/apache2/conf.d/security» установлено значение «ServerSignature» на «Email», поэтому убедитесь, что вы готовы получать почту, если вы настроите эту настройку ,

Если мы использовали это как шаблон для других определений виртуального хоста, мы хотели бы добавить определение «ServerName», в котором указывается имя домена или IP-адрес, который должен обрабатывать этот запрос. Это опция, которая добавит специфику к виртуальному хосту, позволяя ему превзойти определение по умолчанию, если оно соответствует значению ServerName.

Вы также можете сделать виртуальный хост применимым к нескольким именам, используя определение «ServerAlias». Это обеспечивает альтернативные пути для получения одного и того же контента. Хорошим вариантом для этого является добавление того же домена, которому предшествует «www».

Параметр «DocumentRoot» указывает, где будет размещаться контент, который запрашивается для этого виртуального хоста. Виртуальный хост по умолчанию настроен на обслуживание содержимого из каталога «/ var / www» на Ubuntu.

Определения каталогов

В определении виртуального хоста существуют определения того, как сервер обрабатывает разные каталоги в файловой системе. Apache будет применять все эти направления в порядке от самого короткого до самого длинного, так что снова есть возможность переопределить предыдущие параметры.

В первом определении каталога применяются правила для каталога «/» или root. Это обеспечит базовую конфигурацию для вашего виртуального хоста, так как это относится ко всем файлам, которые хранятся в файловой системе.

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

Это запретит доступ ко всему контенту, если не указано иное в последующих определениях каталогов.

Следующее определение каталога для корня документа, поэтому оно указывает параметр «разрешить все», который переопределяет параметр «/» для этого каталога.

Параметр «AllowOverride» используется для определения того, может ли файл «.htaccess» переопределять параметры, если он помещен в каталог содержимого. Это недопустимо по умолчанию, но может быть полезно для включения в самых разных обстоятельствах.

Выступления псевдонима и ScriptAlias

Определениям каталога иногда предшествуют утверждения «Alias» или «ScriptAlias». Alias ​​сопоставляет URL-адрес пути к каталогу.

ScriptAlias ​​работает одинаково, но используется для определения каталогов, в которых в них будут исполняемые компоненты.

Например, эта строка в виртуальном хосте, обрабатывающая запрос «example.com», разрешает доступ к контенту в «/ path / to / content /», переходя к «example.com/content/»:

Следуя псевдониму, вы должны запомнить каталог с правами доступа, как описано в предыдущем разделе.

Включение сайтов и модулей в Apache

После того, как у вас есть файл виртуального хоста, который соответствует вашим требованиям, вы можете использовать инструменты, входящие в состав Apache, для перехода их на живые сайты.

Чтобы автоматически создать символическую ссылку в каталоге с поддержкой сайтов с существующим файлом в каталоге «Доступные сайты», выполните следующую команду:

После включения сайта выполните следующую команду, чтобы сообщить Apache, чтобы он перечитал файлы конфигурации, позволяющие размножаться:

Существует также команда компаньона для отключения виртуального хоста. Он работает, удаляя символическую ссылку из каталога «sites-enabled»:

Снова перезагрузите конфигурацию, чтобы произошло изменение:

Модули могут быть включены или отключены с помощью команд «a2enmod» и «a2dismod» соответственно. Они работают так же, как и «узловые» версии этих команд.

Не забудьте перезагрузить свои изменения конфигурации после того, как модули были включены или отключены.

Заключение

Мы рассмотрели некоторые базовые файлы конфигурации Apache. Apache универсален и очень модулен, поэтому потребности в конфигурации будут разными в зависимости от вашей настройки.

Вы должны хорошо понимать, для чего используются основные файлы конфигурации и как они взаимодействуют друг с другом. Если вам нужно знать о конкретных параметрах конфигурации, предоставленные файлы хорошо комментируются, и Apache предоставляет отличную документацию .

Надеемся, что конфигурационные файлы теперь не будут такими же устрашающими, и вам будет удобнее экспериментировать и модифицировать в соответствии с вашими потребностями.

Источник

Оцените статью