Основная конфигурация apache сервера содержится в каком файле
Apache – самый популярный веб-сервер в сети Интернет, который обслуживает больше половины активных сайтов.
В этой статье мы рассмотрим общие конфигурационные файлы и основные параметры Apache в системе Ubuntu/Debian
Примечание: Файлы Apache отличаются в зависимости от дистрибутива, потому эта статья не подходит пользователям RHEL.
Клиенты, серверы и URL-адреса ¶
URL-путь может обозначать множество вещей на сервере. Это может быть файл (как getting-started.html ), обработчик (как server-status) или файл какой-то программы (как index.php ). Мы рассмотрим это подробней ниже, в разделе Контент веб-сайта.
Детали транзакции и условия возникновения ошибки записываются в файлы журналов. Это описывается более подробно ниже, в разделе Файлы журналов и устранение неполадок.
Что дальше?
Теперь, когда вы знакомы с основами, пора двигаться дальше.
Этот документ содержит только базовую информацию. Мы надеемся, что она поможет вам начать работу, но есть множество других вещей, о которых вам, возможно, нужно узнать.
Глобальные настройки Apache
Данный раздел рассматривает важные параметры глобальных настроек Apache.
Main Configuration Files
The server also reads a file containing mime document types; the filename is set by the TypesConfig directive, and is mime.types by default.
MaxKeepAliveRequests
Этот параметр позволяет определить максимальное количество запросов для одного соединения. Это позволяет увеличить производительность Apache.
Значение 0 позволит веб-серверу обрабатывать неограниченное количество запросов в рамках одного соединения.
.htaccess Files
To find which directives can be placed in .htaccess files, check the Context of the directive. The server administrator further controls what directives may be placed in .htaccess files by configuring the AllowOverride directive in the main configuration files.
For more information on .htaccess files, see the .htaccess tutorial.
Файлы журналов и устранение неполадок ¶
Больше о логирование вы можете узнать в документации о журналах.
Настройки Alias и ScriptAlias
Иногда перед разделом Directory идут параметры Alias и ScriptAlias.
Директива Alias позволяет добавлять к обслуживаемому контенту каталоги вне DocumentRoot.
ScriptAlias работает аналогичным образом, но содержит путь к каталогам с исполняемыми файлами.
Alias /content/ /path/to/content/
Помните, что открывая доступ к дополнительным каталогам, нужно устанавливать ограниченные привилегии на них.
Modules
To see which modules are currently compiled into the server, you can use the -l command line option. You can also see what modules are loaded dynamically using the -M command line option.
Настройки каталогов
В конфигурации виртуального хоста есть специальный раздел для настройки обработки отдельных каталогов файловой системы. Эти настройки также можно переопределять.
Сначала виртуальный хост предлагает набор правил для каталога / (root-каталог). Этот раздел обеспечит базовую конфигурацию виртуального хоста, поскольку он относится ко всем файлам, которые обслуживаются в файловой системе.
По умолчанию Ubuntu не накладывает никаких ограничений на файловую систему. Apache рекомендует добавить несколько стандартных ограничений доступа, например:
Options FollowSymLinks
AllowOverride None
Order Deny,Allow
Deny from All
Это заблокирует доступ ко всему контенту, если в последующих определениях каталогов не указано иное.
Далее идут настройки каталога document root, в которых параметр allow from all переопределяет параметры каталога /.
Параметр AllowOverride позволяет настроить переопределение конфигураций с помощью файлов .htaccess. Чтобы переопределить настройки, файл .htaccess должен находиться в каталоге с контентом. По умолчанию эта функция отключена.
Настройки MPM
Далее идут параметры MPM (Multi-Processing Module).
Чтобы узнать, с помощью каких модулей был скомпилирован Apache, откройте терминал и наберите:
Как видите, в данном случае веб-сервер скомпилирован с модулем prefork.c и файлом apache2.conf.
KeepAliveTimeout
Данный параметр устанавливает промежуток времени между запросами. Если в течение указанного времени клиент не создал следующий запрос. Веб-сервер прервёт соединение. Если в дальнейшем этот клиент отправит запрос, сервер создаст новое соединение.
Файлы конфигурации и директивы ¶
Конфигурация часто разбивается на несколько небольших файлов, для удобства управления. Эти файлы загружаются через директиву Include . Имена или расположения этих файлов конфигурации могут сильно отличаться от одной установки к другой. Расположите и разделите эти файлы наиболее подходящим для вас образом. Если расположение файлов по умолчанию, не имеет смысла для вас, не стесняйтесь изменить его.
Сервер настраивается путём размещения директив конфигурации в этих файлах конфигурации. Директива — это ключевое слово с одним или несколькими аргументами, устанавливающими её значение.
На вопрос: «Где я должен прописать эту директиву?» – обычно отвечают, там где ты хочешь использовать её. Если это глобальная настройка, она должна располагаться в конфигурационном файле вне разделов , , или других разделов. Если настройка относится только к конкретному каталогу, значит она должна быть внутри секции , которая описывает этот каталог, и так далее. Смотри документ Разделы конфигурации с подробным описанием вышеуказанных разделов.
В дополнение к основному файлу конфигурации, некоторые директивы могут располагаться в файлах .htaccess , расположенных в папках с контентом. Файлы .htaccess в первую очередь предназначены для людей у которых нет доступа к главному конфигурационному файлу сервера. Вы можете узнать больше о файлах .htaccess в инструкции .htaccess .
Syntax of the Configuration Files
httpd configuration files contain one directive per line. The backslash "\" may be used as the last character on a line to indicate that the directive continues onto the next line. There must be no other characters or white space between the backslash and the end of the line.
Arguments to directives are separated by whitespace. If an argument contains spaces, you must enclose that argument in quotes.
The values of variables defined with the Define of or shell environment variables can be used in configuration file lines using the syntax $ . If "VAR" is the name of a valid variable, the value of that variable is substituted into that spot in the configuration file line, and processing continues as if that text were found directly in the configuration file. Variables defined with Define take precedence over shell environment variables. If the "VAR" variable is not found, the characters $ are left unchanged, and a warning is logged. Variable names may not contain colon ":" characters, to avoid clashes with RewriteMap 's syntax.
Only shell environment variables defined before the server is started can be used in expansions. Environment variables defined in the configuration file itself, for example with SetEnv , take effect too late to be used for expansions in the configuration file.
The maximum length of a line in normal configuration files, after variable substitution and joining any continued lines, is approximately 16 MiB. In .htaccess files, the maximum length is 8190 characters.
You can check your configuration files for syntax errors without starting the server by using apachectl configtest or the -t command line option.
You can use mod_info 's -DDUMP_CONFIG to dump the configuration with all included files and environment variables resolved and all comments and non-matching and sections removed. However, the output does not reflect the merging or overriding that may happen for repeated directives.
Имена хостов и DNS
Для того чтобы соединиться с сервером, клиент сначала должен преобразовать имя сервера в IP-адрес — место в Интернете, где находится сервер. Таким образом, чтобы ваш веб-сервер был доступен, необходимо, чтобы имя сервера было в DNS.
Если вы не знаете как это сделать, вам нужно обратиться к сетевому администратору или поставщику услуг Интернета (провайдеру). Они могут сделать это для вас.
Несколько хостов могут указывать на один и тот же IP-адрес, а один физический сервер может иметь больше одного IP-адреса. Таким образом на одном физическом сервере вы можете запустить больше одного сайта с помощью особенности: виртуальные хосты.
Файл hosts, скорее всего, расположен в /etc/hosts или C:\Windows\system32\drivers\etc\hosts .
Вы можете узнать больше о файле hosts и больше о DNS.
Заключение
Данная статья охватывает только базовые настройки файлы веб-сервера Apache. Набор функций Apache можно значительно расширить с помощью модулей.
Если вам нужна дополнительная информация о веб-сервере, обратитесь к официальной документации Apache.
Синтаксис: AddModule модуль модуля .
Контекст: конфигурация сервера
Состояние: основное
Совместимость: AddModule доступен тольоко в Apache 1.2 выше
Сервер может иметь модули, которые были скомпилированы, но активно не используются. Эта директива может применяться для того, чтобы инициализировать использование этих модулей. Сервер поставляется со списком pre-loaded активных модулей; этот список может быть очищен с помощью ClearModuleList директивы.
AllowOverride директива
- AuthConfig - допускает использование директив разрешения (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, require, и т.д..).
- FileInfo - допускает использование директив, управляющих типами документа (AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority, и т.д..).
- Indexes - допускает использование деректив управления индексацией каталога(AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, и т.д..).
- Limit - допускает использование основных директив управления доступом ( allow , deny и order ).
- Options - допускает использование директив, управляющих специфическими особенностями каталога (Options и XBitHack).
AuthName директива
Синтаксис: AuthName auth-область
Контекст: каталог, .htaccess
Отмена: AuthConfig
Состояние: основное
Эта директива присваивает каталогу имя как области доступа. Эта область дается пользователю для запроса у него username и пароля. Директива должна использоваться совместно с AuthType и require директивами, и директивами типа AuthUserFile и AuthGroupFile.
AuthType директива
Синтаксис: AuthType тип
Контекст: каталог, .htaccess
Отмена: AuthConfig
Состояние: основное
Эта директива выбирает тип идентификации пользователя для каталога. Только Basic в настоящее время реализован. Эта деректива должна использоваться совместно с дерективами AuthName и require, и директивами типа AuthUserFile и AuthGroupFile.
BindAddress директива
- *
- Адрес IP
- Полное domain name
ClearModuleList директива
Синтаксис: ClearModuleList
Контекст: конфигурация сервера
Состояние: основное
Совместимость: ClearModuleList доступен только в Apache 1.2 и выше.
Сервер поставляется со встроенным списком активных модулей. Эта директива очищает список. Применение этой дерективы подразумевает, что список модулей будет затем повторно заполнен с помощью директивы AddModule.
DefaultType директива
DefaultType image/gif
Directory> директива
Options Indexes FollowSymLinks
AllowOverride None
AllowOverride FileInfo
- Выполнится директива AllowOverride None ( отключение .htaccess файл).
- Выполнится директива AllowOverride FileInfo ( для каталога /home/web).
- Выполнятся любые FileInfo директивы в /home/web/.htaccess
Order Deny,Allow
Deny from All
DocumentRoot директива
DocumentRoot /usr/web
ErrorDocument директива
ErrorLog директива
ErrorLog /dev/null
Files>
будет соответствовать наиболее общим графическим форматам Internet.
Обратите внимание, что в отличие от разделов и , разделы могут использоваться внутри .htaccess файлов. Это позволяет пользователям управлять доступом к их собственным файлам на уровне file-by-file. Когда этот раздел используется в .htaccess файле, если имя-файла не начинается с символа "/", путь к нему будет добавляться автоматически.
Group директива
HostNameLookups директива
Синтаксис : HostNameLookups boolean
Значение по умолчанию: HostNameLookups on
Контекст : конфигурация сервера, virtual host
Состояние : основное
Эта директива подключает поиск в DNS, чтобы host имена могли регистрироваться в log-файлах. Наличие этой директивы позволяет использовать имена в блоках для управления доступом.
На часто посещаемых сайтах рекомендуется установить эту директиву в off , так как доступ к поисковым таблицам DNS длителен по времени. Утилита logresolve , поставляемая в каталоге support/ , может применятся для поиска host имени по регестрируемому IP-адресу автономно.
IdentityCheck директива
Синтаксис : IdentityCheck boolean
Значение по умолчанию: IdentityCheck off
Контекст : конфигурация сервера, virtual host
Состояние : основное
Эта директива включает регистрации, соответствующую RFC1413, удаленного имени пользователя для каждого соединения, где клиентская машина выполняет identd или что - нибудь подобное. Эта информация сохраняется в файле регистрации доступа. Boolean может быть установлен в on или off .
Этой информации нельзя доверять, разве-что для элементарной трассировки.
Обратите внимание, что это может вызывать серьезные временные задержки при обращении к вашему серверу, так как для каждого запроса необходимо выполнить поиск. Когда работает firewalls, каждый поиск, вероятней всего, будет неудачным и добавлять за счет этого 30 секунд ожидания к каждой передаче. Т.о. это лучше отключить для web-сервера, доступного в Internet.
IfModule>
KeepAlive
Синтаксис: (Apache 1.1) KeepAlive максимальное-кол.запросов
Значение по умолчанию: (Apache 1.1) KeepAlive 5
Синтаксис: (Apache 1.2) KeepAlive on/off
Значение по умолчанию: (Apache 1.2) KeepAlive on
Контекст : конфигурация сервера
Состояние : основное
Совместимость : KeepAlive доступен только в Apache 1.1 и выше.
Эта директива включает Keep-Alive поддержку.
Apache 1.1: Устанавливает max-кол.запросов обрабатываемых Apache одновременно. Ограничение наложено, чтобы предотвратить сервер от перегрузки. Если установить эту директиву в 0 - сервер не будет отвечать на клиентские запросы.
Apache 1.2 и выше: Установка в "on" включает постоянно открытое соединение, "off" отключает. См. также MaxKeepAliveRequests директиву.
KeepAliveTimeout
Синтаксис : KeepAliveTimeout секунд
Значение по умолчанию: KeepAliveTimeout 15
Контекст : конфигурация сервера
Состояние : основное
Совместимость : KeepAliveTimeout доступен только в Apache 1.1 и выше.
Заданное число секунд Apache будет ждать следующий запрос перед закрытием соединения.
Listen
Синтаксис : Listen [IP адрес:] номер порта
Контекст : конфигурация сервера
Состояние : основное
Совместимость : Listen доступен только в Apache 1.1 и выше.
Listen директива настраивает Apache на более чем один IP адрес или порт; по умолчанию он отвечает на запросы на всех интерфейсах IP, но только на порте, заданном директивой Port.
См. Также: DNS проблемы
См. Также: Установка адресов и портов Apache
См. Также: Известные Ошибки
Limit> директива
require valid-user
Location>
MaxClients директива
Синтаксис : MaxClients число
Значение по умолчанию: MaxClients 256
Контекст : конфигурация сервера
Состояние : основное
MaxClients директива устанавливает ограничение числа одновременно обслуживаемых запросов; не более чем это число порожденнных процессов сервера будут созданы.
MaxKeepAliveRequests
Синтаксис : MaxKeepAliveRequests число
Значение по умолчанию: MaxKeepAliveRequests 100
Контекст : конфигурация сервера
Состояние : основное
Совместимость : Доступна только в Apache1.2 и выше.
MaxKeepAliveRequests директива ограничивает число допустимых запросов на одно соединение когда KeepAlive включен. Если она установлена в "0", допускаются неограниченные запросы. Мы рекомендуем, чтобы эта установка была по возможности выше для большей производительности сервера.
MaxRequestsPerChild директива
- это ограничивает объем памяти потребляемой процессом (через случайную утечку памяти);
- ограничени времени жизни процесса позволяет уменьшить число процессов при старте сервера.
MaxSpareServers директива
Синтаксис : MaxSpareServers число
Значение по умолчанию: MaxSpareServers 10
Контекст : конфигурация сeрвера
Состояние : основное
MaxSpareServers директива устанавливает желательное максимальное число неактивных порожденнных процессов сервера. Неактивный Процесс - тот, который не обрабатывает запрос в данный момент. Если имеются больше чем MaxSpareServers неактивных процессов, то Родительский процесс уничтожит лишние.
Настройка этого параметра рекомендуется только на очень посещаемых сайтах. Установка этого параметра в большое число - плохая идея.
См. также MinSpareServers и StartServers.
MinSpareServers директива
Синтаксис : MinSpareServers число
Значение по умолчанию: MinSpareServers 5
Контекст : конфигурация сервера
Состояние : основное
MinSpareServers директива устанавливает желаемое минимальное число неактивных порожденнных процессов сервера. Неактивный Процесс - тот, который не обрабатывает запрос в данный момент. Если имеется меньшее количество чем MinSpareServers неактивных процессов, то родительский процесс создает новые порожденные процессы за максимум 1 секунду.
Настройка этого параметра рекомендуется только на очень посещаемых сайтах. Установка этого параметра в большое число - плохая идея.
См. также MaxSpareServers и StartServers.
Options директива
PidFile директива
Port директива
- В отсутствие Listen или BindAddress директив, определяющих номер порта, директива Port устанавливает сетевой порт, на котором сервер слушает. Если имеется, любая из директив Listen или BindAddress опредиляющая номер порта, то директива Port игнорируется.
- Директива Port устанавливает системную переменную SERVER_PORT (для CGI и SSI), и используется сервером для генерации URL, который ссылается на себя (например при создании внешнего переназначения на себя).
require директива
- require user userid userid . - только указанные пользователи имеют доступ к каталогу.
- require group имя-группы имя-группы . - только пользователи из указанных групп имеют доступ к каталогу.
- require valid-user - все допустимые пользователи имеют доступ к каталогу.
AuthType Basic
AuthName somedomain
AuthUserFile /web/users
AuthGroupFile /web/groups
require group admin
ResourceConfig директива
ResourceConfig /dev/null
RLimitCPU директива
RLimitMEM директива
RLimitNPROC директива
Satisfy
Синтаксис : Satisfy 'any' или 'all'
Значение по умолчанию: Satisfy all
Контекст : directory, .htaccess
Состояние : основное
Совместимость : Satisfy доступен только в Apache 1.2 и выше
Определяет стратегию доступа, если используются и allow и require. Параметр может быть или 'all' или 'any' . Эта директива полезна только, если доступ к области ограничивается и, username/password и адресом машины-клиента. В этом случае заданное по умолчанию значение ("all") требует, чтобы пользователь передал адрес, которому доступна ограниченная область, и ввел допустимый username и пароль. С "any" опцией клиенту будет предоставлен доступ, если он или передаст адрес хоста, которому открыт доступ к данной области, или введет допустимый username и пароль. Это может использоваться для ограничения доступа к области паролем и открытого доступа к этой же области хостам с определенными адресами.
ScoreBoardFile директива
Синтаксис : ScoreBoardFile имя-файла
Значение по умолчанию: ScoreBoardFile logs/apache_status
Контекст : конфигурация сервера
Состояние : основное
ScoreBoardFile директива требуется в некоторых архитектурах, чтобы разместить файл, используемый сервером для связи между порожденными процессами и родительским. Самый простой способ выяснять, требует ли ваша архитектура файл-табло это - запустить Apache и посмотреть, создает ли он файл, указанный в директиве. Если вашей архитектуре это необходимо, Вы должны гарантировать, что этот файл не используется в то же самое время больше чем одним вызовом Apache.
Вы можете увеличить быстродействие сервера размещая ScoreBoardFile на RAM-диске. Но будьте внимательны, Вы должны учитывать те же предупреждения относительно размещения ScoreBoardFile, что и к log-файлам, с точки зрения защиты.
Apache 1.2 и выше:
Пользователи Linux 1.x могут добавить флаг -DHAVE_SHMGET к EXTRA_CFLAGS в файл Configuration, но это не будет работать во всех версиях Linux 1.x.
Пользователи SVR4, так же могут попробовать добавить флаг -DHAVE_SHMGET к EXTRA_CFLAGS в свой Configuration файл. Это, вероятно, должно сработать, но мы не успели проверить это для версии 1.2.
См. Также: Остановка и перезапуск Apache
SendBufferSize директива
Синтаксис : SendBufferSize байты
Контекст : конфигурация сервера, virtual host
Состояние : основное
Cервер установит размер буфера TCP к указанному кол. байт .
ServerAdmin директива
ServerAlias директива
Синтаксис : ServerAlias host1 host2 .
Контекст : virtual host
Состояние : основное
Совместимость : ServerAlias доступно только в Apache 1.1 и выше.
ServerAlias директива устанавливает альтернативные имена хостов, для использования с virtual host базирующихся на Host-header.
См. Также: Подробное описание соответствия Virtual Host
ServerName директива
ServerPath директива
Синтаксис : ServerPath имя пути
Контекст : virtual host
Состояние : основное
Совместимость : ServerPath доступно только в Apache 1.1 и выше.
ServerPath директива устанавливает наследование имя-пути URL для хоста, чтобы использовать virtual host базирующийся на Host-header.
См. Также: Подробное описание соответствия Virtual Host
ServerRoot директива
ServerType директива
- inetd - сервер будет запущен в системе процессом inetd; команда для старта сервера будет добавлена к /etc/inetd.conf
- standalone - сервер запускается как daemon; команда для запуска сервера будет добавлена в системные сценарии запуска. ( /etc/rc.local или /etc/rc3.d/ . )
StartServers директива
Синтаксис : StartServers число
Значение по умолчанию: StartServers 5
Контекст : конфигурация сервера
Состояние : основное
StartServers директива устанавливает число порожденнных процессов сервера при запуске. Так как число процессов динамически контролируется в зависимости от загрузки, то обычно нет причин корректировать этот параметр.
См. также MinSpareServers и MaxSpareServers.
- Клиенты, серверы и URL-адреса
- Имена хостов и DNS
- Файлы конфигурации и директивы
- Контент веб-сайта
- Файлы журналов и устранение неполадок
- Что дальше?
Scope of Directives
Directives placed in the main configuration files apply to the entire server. If you wish to change the configuration for only a part of the server, you can scope your directives by placing them in , , , , , and sections. These sections limit the application of the directives which they enclose to particular filesystem locations or URLs. They can also be nested, allowing for very fine grained configuration.
Although most directives can be placed in any of these sections, some directives do not make sense in some contexts. For example, directives controlling process creation can only be placed in the main server context. To find which directives can be placed in which sections, check the Context of the directive. For further information, we provide details on How Directory, Location and Files sections work.
См. также
Файлы журналов и устранение неполадок
Больше о логирование вы можете узнать в документации о журналах.
Установка Apache в Ubuntu/Debian
Если веб-сервер Apache ещё не установлен, используйте команды:
sudo apt-get update
sudo apt-get install apache2
Чтобы убедиться, что установка прошла успешно, откройте в браузере IP-адрес своего сервера. На экране должна появиться приветственная страница Apache:
It works!
This is the default web page for this server.
The web server software is running but no content has been added, yet.
Timeout
По умолчанию этот параметр имеет значение 300. Это значит, что на выполнение каждого запроса у сервера есть максимум 300 секунд. В большинстве случаев это значение очень большое, и его рекомендуют уменьшить до 30-60 секунд.
Контент веб-сайта
Содержимое сайта может принимать различные формы, но в широком смысле разделяется на статический и динамический контент.
Статический контент — это, например, HTML-файлы, файлы изображений, CSS-файлы и другие файлы, которые просто лежат на диске. Директива DocumentRoot указывает где в вашей файловой системе, вы должны разместить эти файлы. Эта директива устанавливается глобально или отдельно для каждого виртуального хоста. Посмотрите в своём файле(ах) конфигурации, чтобы узнать, как именно эта директива используется на вашем сервере.
Динамический контент — это всё что генерируется во время запроса и может изменяться от запроса к запросу. Существует множество способов создания динамического контента. Различные обработчики доступны для генерации содержимого. Могут быть написаны специальные CGI программы для генерации контента на сайте.
Файлы конфигурации и директивы
Конфигурация часто разбивается на несколько небольших файлов, для удобства управления. Эти файлы загружаются через директиву Include . Имена или расположения этих файлов конфигурации могут сильно отличаться от одной установки к другой. Расположите и разделите эти файлы наиболее подходящим для вас образом. Если расположение файлов по умолчанию, не имеет смысла для вас, не стесняйтесь изменить его.
Сервер настраивается путём размещения директив конфигурации в этих файлах конфигурации. Директива — это ключевое слово с одним или несколькими аргументами, устанавливающими её значение.
На вопрос: «Где я должен прописать эту директиву?» – обычно отвечают, там где ты хочешь использовать её. Если это глобальная настройка, она должна располагаться в конфигурационном файле вне разделов , , или других разделов. Если настройка относится только к конкретному каталогу, значит она должна быть внутри секции , которая описывает этот каталог, и так далее. Смотри документ Разделы конфигурации с подробным описанием вышеуказанных разделов.
В дополнение к основному файлу конфигурации, некоторые директивы могут располагаться в файлах .htaccess , расположенных в папках с контентом. Файлы .htaccess в первую очередь предназначены для людей у которых нет доступа к главному конфигурационному файлу сервера. Вы можете узнать больше о файлах .htaccess в инструкции .htaccess .
KeepAlive
Если этот параметр имеет значение On, сервер позволит клиенту запрашивать несколько объектов в рамках одного соединения. Если параметр имеет значение Off, то каждый новый запрос будет создавать индивидуальное соединение. Такое поведение может привести к перенагрузке сайта с большим трафиком.
См. также
Контент веб-сайта ¶
Содержимое сайта может принимать различные формы, но в широком смысле разделяется на статический и динамический контент.
Статический контент — это, например, HTML-файлы, файлы изображений, CSS-файлы и другие файлы, которые просто лежат на диске. Директива DocumentRoot указывает где в вашей файловой системе, вы должны разместить эти файлы. Эта директива устанавливается глобально или отдельно для каждого виртуального хоста. Посмотрите в своём файле(ах) конфигурации, чтобы узнать, как именно эта директива используется на вашем сервере.
Динамический контент — это всё что генерируется во время запроса и может изменяться от запроса к запросу. Существует множество способов создания динамического контента. Различные обработчики доступны для генерации содержимого. Могут быть написаны специальные CGI программы для генерации контента на сайте.
Иерархия файлов Apache
В Ubuntu и Debian Apache хранит конфигурационные файлы в папке /etc/apache2.
Эта папка содержит ряд простых текстовых файлов и подкаталогов. Наиболее важные из них:
- apache2.conf: главный конфигурационный файл сервера. В нём можно выполнить почти все конфигурации.
- ports.conf: этот файл задаёт порты, которые прослушиваются виртуальными хостами. Проверьте этот файл при настройке SSL.
- conf.d/: этот каталог управляет отдельными аспектами конфигурации Apache. К примеру, с его помощью часто определяется конфигурация SSL и стандартная политика безопасности.
- sites-available/: этот каталог хранит все доступные виртуальные хосты, которые определяют, какой контент будет обслуживаться на сайте. Эти хосты не активны.
- sites-enabled/: этот каталог определяет активные виртуальные хосты. Как правило, он содержит символические ссылки на файлы, определенные в каталоге sites-available.
- mods-[enabled,available]/: эти каталоги работают по тому же принципу, что и sites-available и sites-enabled. Они хранят модули.
Как видите, конфигурации Apache не ограничены главным конфигурационным файлом, они распределены между несколькими файлами и каталогами. Такую структуру конфигураций можно расширить при помощи новых файлов.
Comments
Copyright 2022 The Apache Software Foundation.
Licensed under the Apache License, Version 2.0.
Клиенты, серверы и URL-адреса
URL-путь может обозначать множество вещей на сервере. Это может быть файл (как getting-started.html ), обработчик (как server-status) или файл какой-то программы (как index.php ). Мы рассмотрим это подробней ниже, в разделе Контент веб-сайта.
Детали транзакции и условия возникновения ошибки записываются в файлы журналов. Это описывается более подробно ниже, в разделе Файлы журналов и устранение неполадок.
Конфигурации виртуальных хостов
Стандартный виртуальный хост находится в файле default в каталоге sites-available.
Чтобы ознакомиться с общим форматом виртуального хоста, откройте этот файл:
sudo nano /etc/apache2/sites-available/default
ServerAdmin webmaster@localhost
DocumentRoot /var/www
Options FollowSymLinks
AllowOverride None
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
. . .
По умолчанию виртуальный хост обрабатывает запросы на порте 80.
Это не означает, что веб-сервер обязательно будет обрабатывать каждый запрос через этот порт. Apache может переопределять конфигурации.
Конфигурационный файл Apache
Основные настройки Apache хранятся в /etc/apache2/apache2.conf.
Этот файл содержит три главных раздела: глобальные настройки Apache, настройки сервера по умолчанию и конфигурации виртуальных хостов.
В Ubuntu и Debian большая часть файла отведена под глобальные настройки, а конфигурация сервера по умолчанию и настройки виртуальных хостов обрабатываются в конце файла с помощью директивы Include.
Директива Include позволяет Apache читать другие конфигурационные файлы. В результате Apache динамически генерирует всеобъемлющий конфигурационный файл при запуске.
В конце файла вы найдёте множество настроек Include. Они определяют модули, добавляют документ ports.conf, определённые файлы из каталога conf.d/ и настройки виртуальных хостов из каталога sites-enabled/.
Сосредоточимся на глобальных настройках веб-сервера Apache.
See also
Comments
Copyright 2022 The Apache Software Foundation.
Licensed under the Apache License, Version 2.0.
Имена хостов и DNS ¶
Для того чтобы соединиться с сервером, клиент сначала должен преобразовать имя сервера в IP-адрес — место в Интернете, где находится сервер. Таким образом, чтобы ваш веб-сервер был доступен, необходимо, чтобы имя сервера было в DNS.
Если вы не знаете как это сделать, вам нужно обратиться к сетевому администратору или поставщику услуг Интернета (провайдеру). Они могут сделать это для вас.
Несколько хостов могут указывать на один и тот же IP-адрес, а один физический сервер может иметь больше одного IP-адреса. Таким образом на одном физическом сервере вы можете запустить больше одного сайта с помощью особенности: виртуальные хосты.
Файл hosts, скорее всего, расположен в /etc/hosts или C:\Windows\system32\drivers\etc\hosts .
Вы можете узнать больше о файле hosts и больше о DNS.
Настройки виртуального хоста высшего уровня
Эти параметры устанавливаются в разделе Virtual Host и применяются ко всему виртуальному хосту.
Параметр ServerAdmin указывает контактный адрес электронной почты, который будет использоваться в случае возникновения проблем на сервере. Этот адрес можно вставить на страницу ошибки. Для этого параметр ServerSignature (в файле /etc/apache2/conf.d/security) должен иметь значение Email.
Директива ServerName задаёт доменное имя или IP-адрес сервера. Это индивидуальный параметр каждого виртуального хоста, который может переопределить настройки по умолчанию, если он совпадает со значением ServerName.
Что дальше? ¶
Теперь, когда вы знакомы с основами, пора двигаться дальше.
Этот документ содержит только базовую информацию. Мы надеемся, что она поможет вам начать работу, но есть множество других вещей, о которых вам, возможно, нужно узнать.
Comments
Copyright 2021 The Apache Software Foundation.
Licensed under the Apache License, Version 2.0.
Включение сайтов и модулей в Apache
Создав файл виртуального хоста, вы можете включить его. Для этого нужно создать символическую ссылку на файл в каталоге sites-enabled:
sudo a2ensite файл_виртуального_хоста
Включив сайт, перезапустите Apache, чтобы веб-сервер перечитал конфигурации:
sudo service apache2 reload
Чтобы отключить виртуальный хост, нужно удалить символьную ссылку из sites-enabled:
sudo a2dissite файл_виртуального_хоста
После этого нужно снова перезапустить веб-сервер:
sudo service apache2 reload
Включить и отключить модуль Apache можно с помощью следующих команд (соответственно):
Они работают так же, как и ранее упомянутые команды a2ensite иa2dissite. После включения или отключения модуля нужно перезапускать веб-сервер.
Читайте также: