Разное

Настройки apache: Как установить и настроить веб-сервер Apache

18.05.2022

Главный файл настроек Apache. httpd.conf.

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

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

Apache — это веб-сервер, который не имеет графического интерфейса. При его установке и запуске нам нечего переключать, негде покликать. У нас нет никаких графических элементов, с которыми мы могли бы повзаимодействовать.

Веб-сервер Apache управляется через командную строку или терминал операционной системы. А все настройки, которые мы можем устанавливать, хранятся в обычном текстовом файле, который называется httpd. conf. 

Это самый главный настроечный файл в Apache (есть и другие настроечные файлы).

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

Где же найти этот файл?

Есть несколько вариантов, как это можно сделать. 

Один из вариантов обратиться по этому адресу:

https://wiki.apache.org/httpd/DistrosDefaultLayout

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

Можете перейти по ссылке, которая соответствует вашей операционной системе и посмотрите на путь, где находится файл httpd.conf.

 

Другой способ узнать положение файла httpd.conf — это воспользоваться вот такой командой, которую нужно ввести в командную строку в вашей операционной системе: 

httpd -V

В результатах выполнения этой команды самым последним параметром вы можете увидеть положение файла httpd. conf.

Файл httpd.conf — это обычный текстовый файл и мы можем его открыть и редактировать в любом текстовом редакторе или консольном текстовом редакторе.

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

И один важный момент.

Какие бы изменения вы не произвели в файле httpd.conf эти изменения будут вступать в силу только после перезагрузки сервера. Т.е. вы что-то поменяли в этом файле, эти изменения не будут работать до тех пор, пока вы не перезагрузите веб-сервер. 

Имейте в виду этот момент. 

Теперь, главная задача, которая стоит после этого урока, найти файл httpd.conf на вашем компьютере, открыть его и в дальнейшем мы с ним будем работать.

Как настроить сервер Apache на максимальную производительность

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

  • Что замедляет сервер?
  • Как ускорить работу Apache?
  • 5 шагов для ускорения работы Apache
    • Настройки для ускорения Apache во время компиляции
      • Загружайте только нужные модули
      • Выберите правильный MPM
  • Ускорение работы Apache изменениями во время выполнения
    • Поиск DNS
    • Настройка AllowOverride
    • Настройки FollowSymLinks и SymLinksIfOwnerMatch
    • Согласование содержимого (Content Negotiation)
    • Настройка MaxClients
    • Настройки MinSpareServers, MaxSpareServers и StartServers
    • Настройка MaxRequestsPerChild
    • Настройка KeepAlive и KeepAliveTimeout
    • Timeout
  • Сжатие и кэширование HTTP
  • Разные серверы для статического и динамического контента
  • Тонкая настройка MySQL и PHP
  • Заключение

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

Круглосуточный мониторинг производительности и экстренные исправления.

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

Периодический аудит производительности и настройка Apache.

Позволяет найти уязвимости сервера и защитить их.

Настроить производительность Apache таким образом, чтобы она соответствовала объемам получаемого трафика. Таким образом можно добиться 50% ускорения работы.

Ускорить работу Apache можно на двух основных стадиях:

  • Во время компиляции – настройки при установке сервера.
  • Во время выполнения — установка параметров, влияющих на сервер во время его работы.

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

В Apache функциональность реализуется путем добавления модулей. Они бывают двух типов: статические и динамические (общие).

Чтобы посмотреть список модулей, поддерживаемых вашим сервером, используйте команду apachectl -M. Статические модули компилируются в бинарные файлы httpd, а динамические загружаются непосредственно во время выполнения.

Статические и динамические модули: ключевые различия

Статические модулиДинамические модули
Компилируются в бинарные файлыДобавляются во время выполнения
Требуют перекомпиляции кодаПерекомпиляция не требуется
Быстро загружаютсяЗамедляют веб-сервер

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

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

Чтобы увеличить скорость работы и производительность, используйте минимальное количество динамических модулей, поскольку они уменьшают объем доступной памяти.

В Apache используются MPM (мульти-процессинговые модули), которые обрабатывают запросы, приходящие на сервер. Они прослушивают сетевые порты сервера, принимая запросы и создавая дочерние процессы.

MPM бывают двух типов: Prefork и Worker. В MPM Prefork каждый процесс httpd обрабатывает один сетевой запрос. Это более безопасно по сравнению с MPM Worker, но требует большего количества памяти и ресурсов.

MPM – Prefork и Worker

MPM PreforkMPM Worker
Один потокНесколько потоков
Использует больше ресурсовИспользует меньше памяти
ОтказоустойчивСправляется с большим трафиком

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

По умолчанию большинство установок Apache используют модуль Prefork. Он применяется для обработки больших объемов трафика. Вы можете проверить, какой модуль MPM использует ваш сервер при помощи следующей команды:

Определение типа MPM на вашем веб-сервере Apache

В Apache 2.4 появилась поддержка э MPM модуля Event, который может обрабатывать множественные запросы внутри одного потока. Поэтому он работает даже быстрее, чем модуль Worker.

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

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

При настройке директив Allow from или Deny from используйте IP-адреса вместо доменных имён. Иначе будет осуществляться двойной поиск имени DNS, который уменьшит производительность сервера.

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

Поэтому лучше отключить эту опцию. Если переопределение настроек в файлах .htaccess необходимо в определённой папке, нужно разрешить это только для данного каталога.

Настройка Apache FollowSymLinks сообщает серверу, что нужно проверять символические ссылки и проходить по ним. Если она имеет значение Off, Apache придётся выполнять дополнительные проверки, что замедлит его работу.

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

Лучше всего активировать директиву FollowSymLinks и выключить директиву ‘SymLinksIfOwnerMatch’. Но это может привести к проблемам с безопасностью, поэтому окончательное решение остается за вами.

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

Если согласование содержимого необходимо для сайта, можно снизить задержки, используя файлы type-map вместо директивы Options MultiViews. Ее применение увеличивает задержку.

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

Большое значение параметра может загрузить оперативную память и повлиять на скорость ответов Apache. Необходимо выбрать оптимально значение исходя из объёма доступной памяти и ресурсов, потребляемых процессом.

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

Если значение MinSpareServers слишком низкое, и на сервер поступает одновременно несколько запросов, Apache создаст дополнительные дочерние процессы. Это снижает возможность быстрого ответа на запрос клиента.

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

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

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

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

KeepAliveTimeout определяет время ожидания следующего запроса. Если значение большое, дочерние процессы могут расходовать ресурсы, ожидая следующего запроса. Оптимальное значение – 2-5 секунд для небольших объемов трафика и 10 секунд для высоконагруженных серверов.

Устанавливает время ожидания запроса от посетителя. При больших объемах трафика значение параметра должно быть не менее 120 секунд. Но лучше держать это значение минимальным. Это позволяет предотвратить излишнее расходование ресурсов.

Сжатие HTTP применяется для ускорения работы серверов Apache. Сервер применяет к телу ответа шифрование gzip или deflate перед тем, как отправить его клиенту. Затем клиент распаковывает полученные данные. Данные сжимаются только если браузер запрашивает сжатие. Сжатие HTTP включается в Apache с помощью модуля ‘mod_deflate’.

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

Модули mod_expires и mod_headers для настройки кэша через HTTP- заголовки, присылаемые с сервера. С помощью директив cache-control можно управлять правилами кэширования, чтобы ускорить работу Apache.

Также можно использовать кэширование на стороне сервера, когда часто запрашиваемый контент хранится в памяти. Для настройки данного типа кэширования используется модуль mod_cache.

Процессы Apache, которые управляют динамическим контентом, потребляют от 3 до 20 Мб памяти. Статический контент требуют всего лишь 1Мб памяти. Процесс, управляющий динамическим контентом, при следующем запросе может предоставлять статический контент.

Что приводит к расходам памяти и замедлению работы сервера. Поэтому рекомендуется разделить серверы на управляющие статическим контентом и динамическим контентом.

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

Для подобного перенаправления запросов используются модули mod_proxy и mod_rewrite. Клиент не заметит разницы, и будет считать, что все запросы выполняются одним сервером.

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

Не менее важно оптимизировать сервер баз данных, чтобы избежать задержек в его работе. Также необходимо улучшить производительность PHP-страниц, используя механизм кэширования, такой как Zend OPcache.

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

Настройка производительности Apache – нелёгкое дело. Поэтому важно иметь чёткое понимание технических требований веб-сервера и принципа его работы.

Сергей Бензенкоавтор-переводчик статьи «How to speed up Apache webserver for maximum Performance»

Файлы конфигурации — Apache HTTP Server версии 2.4

Файлы конфигурации — Apache HTTP Server версии 2.4

Apache HTTP Server версии 2.4

Apache > HTTP-сервер > Документация > Версия 2.4

Доступные языки:  de  | ru  | фр  | я | ко | tr 

В этом документе описываются файлы, используемые для настройки Apache HTTP Сервер.

  • Основные файлы конфигурации
  • Синтаксис файлов конфигурации
  • Модули
  • Область применения директив
  • Файлы .htaccess

См. также

  • Комментарии

HTTP-сервер Apache настраивается путем помещения директив в обычный текст файлы конфигурации. Основной файл конфигурации обычно называется httpd. conf . Расположение этого файла установлено в время компиляции, но может быть переопределен с помощью -f флаг командной строки. Кроме того, могут быть другие файлы конфигурации. добавлено с помощью

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

Сервер также читает файл, содержащий типы MIME-документов; имя файла задается директивой TypesConfig , и mime.types по умолчанию.

Файлы конфигурации httpd содержат по одной директиве в строке. Обратная косая черта «\» может использоваться как последний символ в строке. чтобы указать, что директива продолжается на следующей строке. Между ними не должно быть других символов или пробелов.

обратную косую черту и конец строки.

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

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

Значения переменных, определенных с помощью Define или переменных среды оболочки, могут использоваться в строках файла конфигурации с использованием синтаксиса ${VAR} . Если «VAR» является именем допустимой переменной, значение этой переменной равно подставляется в это место в строке конфигурационного файла, и обработка продолжается, как если бы этот текст был найден непосредственно в файле конфигурации.

Переменные, определенные с помощью Define take приоритет над переменными среды оболочки. Если переменная «VAR» не найдена, символы ${VAR} остаются без изменений, и записывается предупреждение. Имена переменных не могут содержать двоеточия «:», чтобы избежать конфликтов с Синтаксис RewriteMap .

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

Максимальная длина строки в обычных конфигурационных файлах после замена переменных и соединение любых непрерывных строк примерно 16 МБ. В файлах .htaccess максимальная длина 8190 символов.

Вы можете проверить файлы конфигурации на наличие синтаксических ошибок без запуска сервера с помощью apachectl configtest или командная строка -t вариант.

Вы можете использовать mod_info -DDUMP_CONFIG для дамп конфигурации со всеми включенными файлами и средой переменные разрешены и все комментарии и несоответствия

и секций удаленный. Однако выходные данные не отражают слияние или переопределение это может произойти для повторяющихся директив.

httpd — это модульный сервер. Это означает, что только самые основные функции включены в главный сервер. Расширенный функции доступны через модули, которые можно загрузить в httpd. По умолчанию базовый набор модулей включены в сервер во время компиляции. Если сервер скомпилирован для использования динамически загружаемых модулей, то модули могут быть скомпилированы отдельно и добавлены в в любое время с помощью LoadModule директива. В противном случае httpd необходимо перекомпилировать для добавления или удаления модулей. Директивы конфигурации могут быть включены при условии наличие определенного модуля, заключив их в

блок. Однако, блоков не требуется, а в некоторых случаях может маскировать тот факт, что вы пропустили важный модуль.

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

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

httpd может обслуживать множество различных веб-сайтов одновременно. Это называется Виртуал Хостинг. Директивы также можно ограничить, поместив их внутри <Виртуальный хост> разделы, чтобы они применялись только к запросам на конкретного веб-сайта.

Хотя большинство директив можно разместить в любом из этих разделы, некоторые директивы не имеют смысла в некоторых контекстах. Например, директивы, контролирующие создание процессов, могут только размещаться в контексте основного сервера. Чтобы узнать, какие директивы могут быть размещены в каких разделах, проверьте контекст директива. Для получения дополнительной информации мы предоставляем подробную информацию в разделах «Как каталог», «Местоположение» и «Файлы». Работа.

httpd обеспечивает децентрализованное управление конфигурацией через специальные файлы, размещенные внутри веб-дерева. Специальные файлы обычно называются .htaccess , но любое имя может быть указанный в AccessFileName директива. Директивы размещены в файлах .htaccess применяются к каталогу, в который вы помещаете файл, и все подкаталоги. Файлы .htaccess следуют за тот же синтаксис, что и у основных файлов конфигурации. С

Файлы .htaccess считываются при каждом запросе, изменения сделанные в этих файлах, вступают в силу немедленно.

Чтобы узнать, какие директивы можно поместить в .htaccess файлов, проверьте контекст директива. Администратор сервера далее контролирует, что директивы могут быть помещены в файлы .htaccess с помощью настройка AllowOverride в основных файлах конфигурации.

Для получения дополнительной информации о .htaccess файлы, см. руководство по .htaccess.

Обратите внимание:
Это не раздел вопросов и ответов. Комментарии, размещенные здесь, должны указывать на предложения по улучшению документации или сервера и могут быть удалены нашими модераторами, если они либо реализованы, либо считаются недействительными/не по теме. Вопросы о том, как управлять HTTP-сервером Apache, следует направлять либо на наш IRC-канал #httpd, на Libera.chat, либо в наши списки рассылки.

Работа с конфигурационным файлом Apache

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

Редактировать страницу

Если вы хотите установить Passenger в режиме интеграции с Apache, вы достигнете момента, когда вам нужно отредактировать файл конфигурации Apache. На этой странице представлена ​​информация для тех, кто не знаком с организацией файла конфигурации Apache и связанных с ним каталогов.

Расположение файла конфигурации Apache

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

  • /etc/apache2/httpd.conf
  • /etc/apache2/apache2.
    conf
  • /etc/httpd/httpd.conf
  • /etc/httpd/conf/httpd.conf

Если вы установили Apache из исходного кода, он, скорее всего, находится в /usr/local или /opt , хотя файлы конфигурации могли быть перемещены в /etc , как обычно. Проверьте свой скрипт сборки для более подробной информации.

Кроме того, на macOS Server >= 10.8 Mountain Lion расположение файла конфигурации Apache отличается. Некоторые пути перечислены ниже. Полную информацию см. в документации по серверу macOS.

Неиспользование веб-сайтов/веб-сервисов по умолчанию (/etc/apache2/httpd.conf)
macOS Server 4 веб-службы /Библиотека/Сервер/Веб/Конфигурация/apache2/httpd_server_app.conf
macOS Server 5 веб-сайтов /Библиотека/Сервер/Веб/Конфигурация/apache2/сервер-httpd.conf

с поддержкой модов и сайтов

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

с поддержкой модов содержит символические ссылки на файлы в с доступом к модам . Этот последний подкаталог содержит файлы конфигурации для всех доступных модулей, в то время как с поддержкой модов содержит только подмножество, а именно модули, которые должны быть фактически включены. Симлинки создаются с помощью инструмента a2enmod . Файлы *.load содержат директив LoadModule , а файлы *.conf содержат все остальные директивы конфигурации.

Хранение фрагментов конфигурации Passenger

Если вы можете, вы должны использовать модов с поддержкой / модов-доступных для хранения конфигурации пассажира. Предполагая, что ваш каталог конфигурации Apache /etc/apache2 :

  • Создайте /etc/apache2/mods-available/passenger.load и вставьте директиву LoadModule .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *