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

Что такое Apache?

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

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

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

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

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

sudo apt-get update
sudo apt-get install apache2

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

your_domain_name_or_ip_address
It works!
This is the default web page for this server.
The web server software is running but no content has been added, yet.

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

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

cd / etc / apache2
ls -F
apache2.conf  envvars     magic            mods-enabled/  sites-available/
conf.d/       httpd.conf  mods-available/  ports.conf     sites-enabled/

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

  • 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, выйдя в терминал и набрав:

apache2 -l
Составлено в модулях:
  core.c
  mod_log_config.c
  mod_logio.c
  prefork.c
  http_core.c
  mod_so.c

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

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

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

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

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

sudo nano / etc / apache2 / sites-available / default
<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
. . .

Виртуальный хост по умолчанию настроен для обработки любого запроса на порт 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 рекомендует добавить некоторые ограничения доступа по умолчанию. Вы можете изменить это так:

<Directory />
	Options FollowSymLinks
	AllowOverride None
	Order Deny,Allow
	Deny from All
</Directory>

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

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

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

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

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

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

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

Alias ​​/ content / / path / to / content /

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

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

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

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

sudo a2ensite virtual_host_file_name

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

sudo service apache2 reload

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

sudo a2dissite virtual_host_file_name

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

sudo service apache2 reload

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

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

Заключение

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

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

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

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

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