Содержание
Начало работы — HTTP сервер Apache Версия 2.4
HTTP сервер Apache Версия 2.4
Available Languages: en |
fr |
ru
Если вы абсолютный новичок в работе с HTTP-сервером Apache или
в запуске веб-сайтов вообще, вы можете не знать с чего начать или какие
вопросы задавать. Этот документ познакомит вас с основами.
- Клиенты, серверы и URL-адреса
- Имена хостов и DNS
- Файлы конфигурации и директивы
- Контент веб-сайта
- Файлы журналов и устранение неполадок
- Что дальше?
См. также
- Comments
Адреса в Интернете записываются с помощью URL — Uniform Resource
Locator (унифицированный указатель ресурса), который указывает на
используемый протокол (например, http
), имя сервера
(например, www.apache.org
), URL-путь (например,
/docs/current/getting-started.html
) и, возможно,
строку запроса (например, ?arg=value
), используемую для
передачи серверу дополнительных аргументов.
Клиент (например, веб-браузер) подключается к серверу
(например, вашему HTTP-серверу Apache), используя определённый протокол,
и отправляет запрос на ресурс, используя URL-путь.
URL-путь может обозначать множество вещей на сервере. Это может быть
файл (как getting-started.html
), обработчик
(как server-status) или файл какой-то
программы (как index.php
). Мы рассмотрим это подробней ниже,
в разделе Контент веб-сайта.
Сервер отправляет ответ, содержащий код состояния и,
опционально, тело ответа. Код состояния указывает, был ли запрос успешно
обработан, а если нет, то какая ошибка произошла.
Это говорит клиенту, что он должен делать с ответом.
Вы можете прочитать о возможных кодах ответа на
Вики HTTP-сервера Apache.
Детали транзакции и условия возникновения ошибки записываются
в файлы журналов. Это описывается более подробно ниже, в разделе
Файлы журналов и устранение неполадок.
Для того чтобы соединиться с сервером, клиент сначала должен преобразовать
имя сервера в IP-адрес — место в Интернете, где находится сервер.
Таким образом, чтобы ваш веб-сервер был доступен, необходимо,
чтобы имя сервера было в DNS.
Если вы не знаете как это сделать, вам нужно обратиться к сетевому
администратору или поставщику услуг Интернета (провайдеру).
Они могут сделать это для вас.
Несколько хостов могут указывать на один и тот же IP-адрес,
а один физический сервер может иметь больше одного IP-адреса.
Таким образом на одном физическом сервере вы можете запустить больше одного
сайта с помощью особенности: виртуальные хосты.
Если вы тестируете сервер, не имеющий выхода в Интернет, можете поместить
имена хостов в файл hosts для того что бы имя разрешалось локально.
Например, вы можете добавить запись для отправки запросов к
www.example.com
на локальный компьютер, для тестирования.
Эта запись будет выглядеть так:
127.0.0.1 www.example.com
Файл hosts, скорее всего, расположен в /etc/hosts
или
C:\Windows\system32\drivers\etc\hosts
.
Вы можете узнать больше о файле
hosts и больше о
DNS.
HTTP-сервер Apache настроен с помощью простых текстовых файлов.
Эти файлы могут располагаться в разных местах, в зависимости от того как вы
установили сервер. Общие места расположения файлов можно найти в
Вики
HTTP-сервера Apache. Если вы установили httpd из исходного кода,
то расположение файлов конфигурации по умолчанию следующее:
/usr/local/apache2/conf
.
По умолчанию файл конфигурации называется httpd.conf
.
Это тоже может варьироваться в сторонних дистрибутивах сервера.
Конфигурация часто разбивается на несколько небольших файлов, для
удобства управления. Эти файлы загружаются через директиву
Include
.
Имена или расположения этих файлов конфигурации
могут сильно отличаться от одной установки к другой.
Расположите и разделите эти файлы наиболее подходящим для
вас образом. Если расположение файлов по умолчанию,
не имеет смысла для вас, не стесняйтесь изменить его.
Сервер настраивается путём размещения
директив конфигурации в этих файлах конфигурации.
Директива — это ключевое слово с одним или несколькими аргументами,
устанавливающими её значение.
На вопрос: «Где я должен прописать эту директиву?» – обычно
отвечают, там где ты хочешь использовать её. Если это глобальная настройка,
она должна располагаться в конфигурационном файле вне разделов
<Directory>
,
<Location>
,
<VirtualHost>
или других
разделов. Если настройка относится только к конкретному каталогу,
значит она должна быть внутри секции
<Directory>
,
которая описывает этот каталог, и так далее.
Смотри документ Разделы конфигурации
с подробным описанием вышеуказанных разделов.
В дополнение к основному файлу конфигурации, некоторые директивы могут
располагаться в файлах .htaccess
, расположенных в папках с
контентом. Файлы .htaccess
в первую очередь предназначены для
людей у которых нет доступа к главному конфигурационному файлу сервера.
Вы можете узнать больше о файлах .
в инструкции htaccess
.htaccess
.
Содержимое сайта может принимать различные формы, но в широком смысле
разделяется на статический и динамический контент.
Статический контент — это, например, HTML-файлы, файлы изображений,
CSS-файлы и другие файлы, которые просто лежат на диске.
Директива DocumentRoot
указывает
где в вашей файловой системе, вы должны разместить эти файлы.
Эта директива устанавливается глобально или отдельно для каждого
виртуального хоста. Посмотрите в своём файле(ах) конфигурации,
чтобы узнать, как именно эта директива используется на вашем сервере.
Обычно, когда запрашивается каталог, без указания имени файла, то будет
отдан документ с именем index.html
. Например, если для директивы
DocumentRoot
установлено значение /var/www/html
и приходит запрос на адрес
http://www.example.com/work/
,
то файл расположенный по пути
/var/www/html/work/index.html
будет отдан клиенту.
Динамический контент — это всё что генерируется во время запроса и может
изменяться от запроса к запросу. Существует множество способов создания
динамического контента. Различные обработчики
доступны для генерации содержимого. Могут быть написаны специальные
CGI программы для генерации контента на сайте.
Для написания кода с разнообразным функционалом
могут использоваться сторонние модули, такие как mod_php.
Множество сторонних приложений, написанных на различных языках
программирования, и утилит доступны для скачивания и установки
на ваш HTTP-сервер Apache.
Поддержка сторонних продуктов выходит за рамки этой документации.
При необходимости вы должны самостоятельно найти их документацию
или форумы поддержки, где вы сможете получить ответы на свои вопросы.
Для вас, как администратора HTTP-сервера Apache,
самые ценные активы — это файлы журналов (лог-файлы),
в частности, журнал ошибок. Исправление любой проблемы без журнала ошибок
можно сравнить с вождением автомобиля с закрытыми глазами.
Расположение журнала ошибок задаётся директивой
ErrorLog
,
которая может быть установлена глобально или для каждого виртуального хоста.
Записи в журнале ошибок расскажут вам, что и когда пошло не так.
Зачастую они также смогут подсказать, как что-то исправить.
Каждая запись в журнале ошибок содержит код ошибки,
по которому вы можете поискать в Интернете более подробное
описание того, как решить проблему.
Вы также можете настроить журнал ошибок так, чтобы в него записывался
идентификатор журнала, который можно сопоставить с записями в журнале
доступа — это поможет определить, какой запрос какую ошибку вызвал.
Больше о логирование вы можете узнать в
документации о журналах.
Теперь, когда вы знакомы с основами, пора двигаться дальше.
Этот документ содержит только базовую информацию.
Мы надеемся, что она поможет вам начать работу,
но есть множество других вещей, о которых вам, возможно, нужно узнать.
- Загрузки
- Установка
- Настройка
- Старт
- Часто задаваемые вопросы
Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
что это такое и как им пользоваться
Apache – один из самых популярных в мире веб-серверов. Начинающие вебмастера не всегда понимают, что представляет собой Apache и как происходит взаимодействие с таким программным обеспечением.
Далее я постараюсь максимально подробно рассказать о нем, приводя объяснения общим терминам.
Понятие «веб-сервер»
Перед тем как переходить непосредственно к разбору Apache, кратко затрону понятие веб-сервера, ведь рассматриваемое программное обеспечение таковым и является.
Веб-сервер – средство для обслуживания сайта в интернете. Он обрабатывает файлы, базы данных и всю информацию, хранящуюся на ресурсе. Веб-сервер занимается тем, что доставляет данные с серверного компьютера на устройство конечного пользователя в режиме реального времени, имея доступ ко всем файлам. Несколько запросов может обрабатываться одновременно, при этом не возникает проблем с файлами, написанными на совершенно разных языках программирования. При обработке все они превращаются в HTML-код и отправляются на обработку в браузер.
Теперь вы можете воспринимать веб-сервер как своеобразного посредника между сервером, где хранятся все данные, и пользователем. Из этого становится понятно, для чего нужен веб-сервер Apache, но пока не очень ясно, чем он отличается от других решений и какие имеет преимущества.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Работа веб-сервера Apache
Веб-сервер Apache – это программное обеспечение, которое установлено на сам сервер. Как мы уже поняли, благодаря ему устанавливается соединение между юзером, использующим браузер, и сервером, чтобы осуществить передачу данных при запросе. Пользователь переходит на страницу, далее отправляется сигнал на обработку, Apache находит необходимые данные и возвращает их пользователю, чтобы тот смог ознакомиться с ними. Работает это и в обратном направлении, примерно по такому же принципу.
Все остальное зависит от подключаемых модулей, которые существуют для Apache Web Server, то есть его можно назвать модульным (собираемым из разных дополнений, расширяющих функциональность). Здесь уже создатель сайта сам решает, какие дополнения установить, редактируя конфигурацию через специальный файл под названием .htaccess. Дополнений существует множество – начиная со средств повышения безопасности и заканчивая модулями аутентификации пользователей при вводе учетных данных.
Пример использования файла .htaccess
Вкратце рассмотрим и упомянутый выше конфигурационный файл. Он помещается в разных директориях веб-сервера, от чего и зависит область его действия. Соответственно, сохраненный в корне файл применяет свои правила на весь веб-сервер. Однако учтите, что если вы используете виртуальный хостинг для обслуживания нескольких сайтов на одном сервере, возможно появление проблем при наличии нескольких директив .htaccess, то есть при их наследовании от подкаталогов до корня.
Самая простая строка кода, вводимая в этот файл выглядит так:
AddType "text/html; charset=koi8-r" .html .htm .shtml
Ее основное предназначение – указать Apache кодировку, в которой нужно возвращать текст пользователю. Такое изменение делается в тех случаях, когда стандартный вывод вас не устраивает.
Благодаря .htaccess вы можете закрывать директории паролями, переопределять индексы файлов, запрещать доступ к ним и выполнять множество других настроек. Лучше всего использовать открытые источники и официальную документацию, если возникла надобность редактировать файл под себя.
Если вы нуждаетесь в получении дополнительной информации о виртуальном хостинге с этим веб-сервером, ознакомьтесь с документацией Virtual Apache Host на официальном сайте разработчика ПО.
Подробнее: Apache Virtual Host documentation
Сравнение Apache с другими веб-серверами
Есть и другие веб-серверы, обладающие своими преимуществами и недостатками. Обо всех них в рамках этой статьи говорить не будем, рассмотрим лишь пару достойных конкурентов.
Начнем с самого известного решения – Nginx. Здесь сказать можно только одно – его главным преимуществом является преодоление барьера в 10 000 одновременных соединений. Apache не может обработать такой большой поток трафика сразу, поэтому многие вебмастера и переключились на альтернативу, когда масштабы их проекта значительно увеличились. Связано это с поточной структурой Apache и невозможностью реализовать прохождение такого барьера. Однако в некотором плане Апач превосходит Nginx, если говорить о простоте настройки, подключении модулей и юзерфрендли-подходе от разработчиков.
Примечание. Хостинг Timeweb на своих серверах использует связку Nginx+Apache: Nginx отдает статический контент, а Apache подключается позже и отвечает за обработку динамического контента.
Второй конкурент – Tomcat, его разработала та же компания, что и Apache, но уже для других целей. Он используется для работы приложений, написанных на Java, а Apache-сервер – это HTTP-направленный инструмент. Если вы не используете Java, а управляете статическими веб-страницами, переключаться на Tomcat точно не стоит.
Установка Apache на компьютер
Если вы хотите самостоятельно попробовать Apache, организовав полноценно работающий сайт с веб-сервером, базой данных и другими компонентами, воспользуйтесь информацией, предоставленной на официальном сайте. Там вы найдете все необходимые файлы для Windows, архивы и команды инсталляции для Linux, а также объяснения всех тонкостей, связанных с настройкой данного компонента.
Кстати, на «Комьюнити» есть отдельная инструкция, посвященная тому, как использовать Apache в качестве обратного прокси на Ubuntu. Это полезный материал для всех тех, кто хочет узнать больше о расширенных возможностях этого веб-сервера.
Подробнее: Как использовать Apache в качестве обратного прокси при помощи mod_proxy на Ubuntu 16.04
Преимущества и недостатки Apache
В завершение обзорной статьи про Apache хотелось бы рассказать о преимуществах и недостатках этого веб-сервера, чтобы у каждого пользователя сложилась полная картина.
Плюсы
Начну с положительных моментов, поскольку многие из них становятся решающими при выборе первого веб-сервера для своего проекта. Перечислю только самые влиятельные факторы.
- Открытый исходный код. Он позволяет не только бесплатно скачивать программу, но и изменять ее под свои цели, чем и занимаются многие компании по всему миру, составляя уникальные конфигурации.
- Простота настройки. Помимо того, что в Apache есть огромное количество настроек, их редактирование остается таким же простым, а за вспомогательной информацией всегда можно обратиться к официальной документации.
- Модульная структура.
Считаю, что возможность подключения любого количества модулей значительно расширяет функциональность веб-сервера, делая его универсальным.
- Кроссплатформенность. Скачать веб-сервер можно для любой операционной системы (но не для мобильной). При этом процесс настройки не меняется, различается только принцип инсталляции и расположение каталогов. Остается таким же и создание сайтов. Apache можно освоить как в Windows, так и в Linux или macOS.
- Масштабируемость. Данный веб-сервер подойдет как для одного сайта, так и для нескольких, расположенных на одном виртуальном хостинге.
Минусы
К сожалению, не обошлось и без минусов, поскольку невозможно создать идеальное программное обеспечение для любых целей.
- Влияние трафика на производительность. Apache работает медленно, если наплыв пользователей слишком большой.
- Дыры в безопасности. Это относится только к тем случаям, когда к веб-серверу подключено огромное количество модулей.
Чем их больше, тем сложнее процесс конфигурирования, появляются уязвимые места и дыры.
- Редактирование файлов в Linux. Управление конфигурационными файлами в этих дистрибутивах осуществляется вручную без графического интерфейса, что не всегда удобно (в качестве рекомендации могу подсказать приложение Apache GUI, благодаря которому настройку можно выполнить через веб-обозреватель).
Apache – несомненно, один из лучших веб-серверов, в чем вы смогли сами убедиться, дочитав мой обзор.
Что такое веб-сервер Apache? Что это такое и как это работает
Apache — это популярный кроссплатформенный веб-сервер с открытым исходным кодом, который, судя по цифрам, является самым популярным веб-сервером из существующих. Он активно поддерживается Apache Software Foundation.
Некоторые известные компании, использующие Apache, включают Cisco, IBM, Salesforce, General Electric, Adobe, VMware, Xerox, LinkedIn, Facebook, Hewlett-Packard, AT&T, Siemens, eBay и многие другие (источник).
Помимо своей популярности, это также один из старейших веб-серверов, первый выпуск которого был выпущен еще в 1995 году. Сегодня многие хосты cPanel используют Apache. Как и другие веб-серверы, Apache поддерживает скрытые аспекты предоставления файлов вашего веб-сайта посетителям.
Поскольку Apache не так хорошо работает в некоторых тестах, особенно для статических веб-сайтов или веб-сайтов с высоким трафиком, Kinsta использует веб-сервер NGINX вместо Apache. Хотя NGINX существует не так долго, как Apache, его популярность и доля на рынке быстро растут с момента его запуска в 2004 году.0005
Как работает Apache? Объяснение основ веб-сервера
Несмотря на то, что в основе функционирования веб-сервера лежит большая сложность, основная задача всех веб-серверов состоит в том, чтобы принимать запросы от клиентов (например, веб-браузера посетителя), а затем отправлять ответ на этот запрос ( например, компоненты страницы, которые посетитель хочет видеть).
Веб-сервер Apache имеет модули, которые добавляют дополнительные функции к его программному обеспечению, такие как MPM (для работы в режимах многопроцессорной обработки) или mod_ssl
для включения поддержки SSL v3 и TLS (рекомендуемое чтение: TLS против SSL). Некоторые общие функции Apache включают:
- .htaccess
- IPv6
- FTP
- HTTP/2
- Perl, Lua и PHP
- Регулирование полосы пропускания
- WebDAV
- Балансировка нагрузки
- Перезапись URL
- Отслеживание сеанса
- Геолокация на основе IP-адреса
Хотя веб-сервер является неотъемлемой частью любого веб-сайта, важно отметить, что случайные пользователи WordPress большую часть времени вряд ли будут напрямую взаимодействовать со своим веб-сервером.
Статистика использования Apache и Nginx
Если посмотреть на каждый веб-сайт в Интернете, Apache является самым популярным веб-сервером. По данным W3Techs, он поддерживает 47% веб-сайтов с известным веб-сервером.
Однако использование Apache значительно падает, когда вы начинаете просматривать наиболее посещаемые сайты в Интернете. Только Apache поддерживает:
- 27,1% из 100 000 самых популярных сайтов
- 21,5% из 10 000 самых популярных сайтов
- 16,2% из 1000 самых популярных сайтов
Это падение, вероятно, связано, по крайней мере частично, с более низкими тестами Apache для веб-сайтов с высоким трафиком.
И наоборот, NGINX, веб-сервер, который использует Kinsta, используется большинством сайтов с высоким трафиком, включая:
- 56,1% из 100 000 самых популярных сайтов
- 63,2% из 10 000 самых популярных сайтов
- 57% из 1000 самых популярных сайтов
Если вы проверите тенденции поиска Google с 2004 года, вы увидите, что эта тенденция проявляется там, где популярность Apache ( в качестве поискового запроса ) уменьшается, в то время как NGINX растет.
Apache и NGINX Результаты Google Trends с 2004 г. HTTP-заголовок.
Чтобы просмотреть HTTP-заголовок вашего сайта, вы можете:
- Использовать вкладку Сеть Инструментов разработчика Chrome
- Используйте такой инструмент, как Pingdom или GTmetrix
HTTP-заголовок Apache
Однако этот метод может не работать, если вы используете такой сервис, как Cloudflare.
Apache и логотип Apache с перьями являются товарными знаками Apache Software Foundation.
Получите все свои приложения, базы данных и сайты WordPress онлайн и под одной крышей. Наша многофункциональная высокопроизводительная облачная платформа включает в себя:
- Простая настройка и управление в панели управления MyKinsta
- Экспертная поддержка 24/7
- Лучшее оборудование и сеть Google Cloud Platform на базе Kubernetes для максимальной масштабируемости
- Интеграция Cloudflare корпоративного уровня для скорости и безопасности
- Глобальный охват аудитории благодаря 35 центрам обработки данных и 275 точкам присутствия по всему миру
Начните с бесплатной пробной версии нашего хостинга приложений или хостинга баз данных. Ознакомьтесь с нашими планами или поговорите с отделом продаж, чтобы найти наиболее подходящий вариант.
HTTPD — веб-сервер Apache2
Apache — наиболее часто используемый веб-сервер в системах Linux. Веб-серверы используются для обслуживания веб-страниц, запрашиваемых клиентскими компьютерами. Клиенты обычно запрашивают и просматривают веб-страницы с помощью приложений веб-браузера, таких как Firefox, Opera, Chromium или Internet Explorer.
Пользователи вводят унифицированный указатель ресурсов (URL), чтобы указать на веб-сервер с помощью его полного доменного имени (FQDN) и пути к требуемому ресурсу. Например, чтобы просмотреть домашнюю страницу веб-сайта Ubuntu, пользователь введет только полное доменное имя:
.
www.ubuntu.com
Чтобы просмотреть подстраницу сообщества, пользователь должен ввести полное доменное имя, а затем путь:
www.ubuntu.com/community
Наиболее распространенным протоколом, используемым для передачи веб-страниц, является протокол передачи гипертекста (HTTP). Также поддерживаются такие протоколы, как протокол передачи гипертекста по протоколу защищенных сокетов (HTTPS) и протокол передачи файлов (FTP), протокол для загрузки и выгрузки файлов.
Веб-серверы Apache
часто используются в сочетании с ядром базы данных MySQL, языком сценариев HyperText Preprocessor (PHP) и другими популярными языками сценариев, такими как Python и Perl. Эта конфигурация называется LAMP (Linux, Apache, MySQL и Perl/Python/PHP) и образует мощную и надежную платформу для разработки и развертывания веб-приложений.
Установка
Веб-сервер Apache2 доступен в Ubuntu Linux. Чтобы установить Apache2:
В командной строке терминала введите следующую команду:
sudo apt установить apache2
Конфигурация
Apache2 настраивается путем размещения директив в текстовых файлах конфигурации. Эти директивы разделены между следующими файлами и каталогами:
apache2.conf: основной файл конфигурации Apache2. Содержит настройки, которые являются глобальными для Apache2.
httpd.conf: исторически основной файл конфигурации Apache2, названный в честь демона httpd. В других дистрибутивах (или более старых версиях Ubuntu) этот файл может присутствовать. В Ubuntu все параметры конфигурации были перемещены в apache2.
conf и указанные ниже каталоги, и этот файл больше не существует.
conf-available: этот каталог содержит доступные файлы конфигурации. Все файлы, которые ранее были в
/etc/apache2/conf.d
следует переместить в/etc/apache2/conf-available
.conf-enabled: содержит символических ссылок на файлы в
/etc/apache2/conf-available
. Когда файл конфигурации имеет символическую ссылку, он будет включен при следующем перезапуске apache2.envvars: файл, в котором установлены переменные среды Apache2 .
доступные моды: этот каталог содержит файлы конфигурации для загрузки модули и настроить их. Однако не все модули будут иметь определенные файлы конфигурации.
с поддержкой модов: содержит символических ссылок на файлы в
/etc/apache2/mods-available
.Когда файл конфигурации модуля имеет символическую ссылку, он будет включен при следующем перезапуске apache2.
ports.conf: содержит директивы, определяющие, какие порты TCP прослушивает Apache2.
Доступные сайты: В этом каталоге есть файлы конфигурации для Apache2 Виртуальные хосты . Виртуальные хосты позволяют настроить Apache2 для нескольких сайтов с отдельными конфигурациями.
с поддержкой сайтов: как с поддержкой модов,
с поддержкой сайтов
содержит символические ссылки на каталог/etc/apache2/sites-available
. Точно так же, когда файл конфигурации на сайтах доступен по символической ссылке, настроенный им сайт будет активен после перезапуска Apache2.magic: инструкции для определения типа MIME на основе первых нескольких байтов файла.
Кроме того, с помощью директивы Include можно добавить другие файлы конфигурации, а для включения многих файлов конфигурации можно использовать подстановочные знаки. Любая директива может быть помещена в любой из этих конфигурационных файлов. Изменения в основных файлах конфигурации распознаются Apache2 только при его запуске или перезапуске.
Сервер также читает файл, содержащий типы MIME-документов; имя файла задается Директива TypesConfig , обычно через /etc/apache2/mods-available/mime.conf
, которая также может включать дополнения и переопределения, и по умолчанию /etc/mime.types
.
Основные настройки
В этом разделе объясняются основные параметры конфигурации сервера Apache2. Дополнительные сведения см. в документации Apache2.
Apache2 поставляется с конфигурацией по умолчанию, удобной для виртуального хоста. То есть он настроен с одним виртуальным хостом по умолчанию (используя VirtualHost ), который можно изменить или использовать как есть, если у вас есть один сайт, или использовать в качестве шаблона для дополнительных виртуальных хостов, если у вас несколько сайтов.
Если оставить его в покое, виртуальный хост по умолчанию будет служить вашим сайтом по умолчанию, или пользователи сайта увидят, не соответствует ли введенный ими URL-адрес директиве ServerName любого из ваших пользовательских сайтов. Чтобы изменить виртуальный хост по умолчанию, отредактируйте файл
/etc/apache2/sites-available/000-default.conf
.Примечание
Директивы, установленные для виртуального хоста, применяются только к этому конкретному виртуальному хосту. Если директива установлена для всего сервера и не определена в настройках виртуального хоста, используется настройка по умолчанию. Например, вы можете определить адрес электронной почты веб-мастера и не определять отдельные адреса электронной почты для каждого виртуального хоста.
Если вы хотите настроить новый виртуальный хост или сайт, скопируйте этот файл в тот же каталог с выбранным вами именем. Например:
sudo cp /etc/apache2/sites-available/000-default.
conf /etc/apache2/sites-available/mynewsite.conf
Отредактируйте новый файл, чтобы настроить новый сайт, используя некоторые директивы, описанные ниже.
Директива ServerAdmin указывает адрес электронной почты, который будет объявлен для администратора сервера. Значение по умолчанию — webmaster@localhost. Это должно быть изменено на адрес электронной почты, который доставлен вам (если вы являетесь администратором сервера). Если на вашем веб-сайте возникла проблема, Apache2 отобразит сообщение об ошибке, содержащее этот адрес электронной почты, на который следует сообщить о проблеме. Найдите эту директиву в файле конфигурации вашего сайта в /etc/apache2/sites-available.
Директива Listen указывает порт и, возможно, IP-адрес, который Apache2 должен прослушивать. Если IP-адрес не указан, Apache2 будет прослушивать все IP-адреса, назначенные машине, на которой он работает. Значение по умолчанию для директивы Listen — 80.
Измените это значение на 127.0.0.1:80, чтобы заставить Apache2 прослушивать только ваш петлевой интерфейс, чтобы он не был доступен в Интернете, на (например) 81, чтобы изменить порт, который он слушает или оставьте все как есть для нормальной работы. Эту директиву можно найти и изменить в отдельном файле,
/etc/apache2/ports.conf
Директива ServerName является необязательной и указывает, на какое полное доменное имя должен отвечать ваш сайт. Виртуальный хост по умолчанию не имеет указанной директивы ServerName, поэтому он будет отвечать на все запросы, которые не соответствуют директиве ServerName в другом виртуальном хосте. Если вы только что приобрели доменное имя
mynewsite.com
и хотите разместить его на своем сервере Ubuntu, значение директивы ServerName в файле конфигурации вашего виртуального хоста должно бытьmynewsite.com
. Добавьте эту директиву в новый файл виртуального хоста, который вы создали ранее (/etc/apache2/sites-available/mynewsite.
).conf
Вы также можете захотеть, чтобы ваш сайт отвечал на
www.mynewsite.com
, так как многие пользователи посчитают префикс www подходящим. Используйте для этого директиву ServerAlias . Вы также можете использовать подстановочные знаки в директиве ServerAlias.Например, следующая конфигурация заставит ваш сайт отвечать на любой запрос домена, оканчивающийся на .mynewsite.com .
псевдоним сервера *.mynewsite.com
Директива DocumentRoot указывает, где Apache2 должен искать файлы, составляющие сайт. Значение по умолчанию — /var/www/html, как указано в
/etc/apache2/sites-available/000-default.conf
. При желании измените это значение в файле виртуального хоста вашего сайта и не забудьте создать этот каталог, если это необходимо!
Включить новый VirtualHost с помощью утилиты a2ensite и перезапустите Apache2:
sudo a2ensite мой сайт новостей sudo systemctl перезапустить apache2.service
Примечание
Обязательно замените mynewsite на более описательное имя виртуального хоста. Один из способов — назвать файл после директивы ServerName VirtualHost.
Аналогично используйте утилиту a2dissite для отключения сайтов. Это может быть полезно при устранении неполадок с конфигурацией нескольких виртуальных хостов:
sudo a2dissite мой сайт новостей sudo systemctl перезапустить apache2.service
Настройки по умолчанию
В этом разделе объясняется настройка параметров сервера Apache2 по умолчанию. Например, если вы добавите виртуальный хост, параметры, настроенные для виртуального хоста, будут иметь приоритет для этого виртуального хоста. Для директивы, не определенной в настройках виртуального хоста, используется значение по умолчанию.
DirectoryIndex — это страница по умолчанию, обслуживаемая сервером, когда пользователь запрашивает индекс каталога, указав косую черту (/) в конце имени каталога.
Например, когда пользователь запрашивает страницу
http://www.example.com/this_directory/
, он или она получит либо страницу DirectoryIndex, если она существует, либо сгенерированный сервером список каталогов, если он не существует, и Указан параметр «Индексы» или страница «Отказано в доступе», если ни один из них не соответствует действительности. Сервер попытается найти один из файлов, перечисленных в директиве DirectoryIndex, и вернет первый найденный. Если он не находит ни один из этих файлов и если Options Indexes 9Для этого каталога установлено значение 0018, сервер сгенерирует и вернет список в формате HTML подкаталогов и файлов в каталоге. Значение по умолчанию, найденное в/etc/apache2/mods-available/dir.conf
, — «index.html index.cgi index.pl index.php index.xhtml index.htm». Таким образом, если Apache2 найдет в запрошенном каталоге файл, соответствующий любому из этих имен, будет отображен первый.Директива ErrorDocument позволяет указать файл, который Apache2 будет использовать для определенных событий ошибок.
Например, если пользователь запрашивает несуществующий ресурс, возникает ошибка 404. По умолчанию Apache2 просто возвращает код возврата HTTP 404. Читать
/etc/apache2/conf-available/localized-error-pages.conf
для получения подробных инструкций по использованию ErrorDocument, включая расположение файлов примеров.По умолчанию сервер записывает журнал передачи в файл
/var/log/apache2/access.log
. Вы можете изменить это для каждого сайта в файлах конфигурации вашего виртуального хоста с помощью директивы CustomLog или опустить его, чтобы принять значение по умолчанию, указанное в/etc/apache2/conf-available/other-vhosts-access-log. .конф
. Вы также можете указать файл, в который записываются ошибки, с помощью директивы ErrorLog , значение которой по умолчанию —/var/log/apache2/error.log
. Они хранятся отдельно от журналов передачи, чтобы помочь в устранении неполадок с вашим сервером Apache2.Вы также можете указать LogLevel (значение по умолчанию — «warn») и LogFormat (см.
/etc/apache2/apache2.conf
для значения по умолчанию).Некоторые параметры указываются для каждого каталога, а не для каждого сервера. Опции — одна из этих директив. Раздел каталога заключен в XML-подобные теги, например:
.
<Каталог /var/www/html/mynewsite> ... Каталог>
Директива Options в разделе Directory принимает одно или несколько из следующих значений (среди прочих), разделенных пробелами:
ExecCGI — Разрешить выполнение сценариев CGI. CGI-скрипты не выполняются, если этот параметр не выбран.
Осторожно
Большинство файлов не должны выполняться как сценарии CGI. Это было бы очень опасно. CGI-скрипты должны храниться в каталоге, отдельном от вашего DocumentRoot и за его пределами, и только этот каталог должен иметь установленную опцию ExecCGI.
Это значение по умолчанию, а расположение CGI-скриптов по умолчанию —
/usr/lib/cgi-bin
.Включает — Разрешить включение на стороне сервера. Серверные включения разрешают HTML-файлу включать другие файлы. См. документацию Apache SSI (сообщество Ubuntu) для получения дополнительной информации.
IncludesNOEXEC — Разрешить включение на стороне сервера, но отключить команды #exec и #include в сценариях CGI.
Индексы — Показать отформатированный список содержимого каталога, если в запрошенном каталоге нет DirectoryIndex (например, index.html).
Осторожно
Из соображений безопасности это обычно не следует устанавливать и, конечно же, не следует устанавливать в каталоге DocumentRoot. Включайте эту опцию осторожно для каждого каталога, только если вы уверены, что хотите, чтобы пользователи видели все содержимое каталога.
Multiview — Поддержка мультиракурсов с согласованием содержимого; эта опция отключена по умолчанию из соображений безопасности. См. документацию Apache2 по этому параметру.
SymLinksIfOwnerMatch — переходить по символическим ссылкам только в том случае, если у целевого файла или каталога тот же владелец, что и у ссылки.
Настройки apache2
В этом разделе объясняются некоторые основные параметры конфигурации демона apache2.
LockFile — директива LockFile задает путь к файлу блокировки, используемому при компиляции сервера с помощью USE_FCNTL_SERIALIZED_ACCEPT или USE_FLOCK_SERIALIZED_ACCEPT. Он должен храниться на локальном диске. Следует оставить значение по умолчанию, если только каталог журналов не находится в общем ресурсе NFS. В этом случае значение по умолчанию следует изменить на местоположение на локальном диске и на каталог, доступный для чтения только пользователю root.
PidFile — Директива PidFile задает файл, в котором сервер записывает свой идентификатор процесса (pid). Этот файл должен быть доступен для чтения только пользователю root. В большинстве случаев следует оставить значение по умолчанию.
User — Директива User устанавливает идентификатор пользователя, используемый сервером для ответа на запросы. Этот параметр определяет доступ к серверу. Любые файлы, недоступные для этого пользователя, также будут недоступны для посетителей вашего сайта. Значением по умолчанию для пользователя является «www-data».
Предупреждение
Если вы точно не знаете, что делаете, не устанавливайте для директивы пользователя значение root. Использование root в качестве пользователя создаст большие дыры в безопасности вашего веб-сервера.
Group — Директива Group аналогична директиве User. Группа задает группу, под которой сервер будет отвечать на запросы. Группа по умолчанию также «www-data».
Модули Apache2
Apache2 — модульный сервер. Это означает, что в главный сервер включены только самые основные функции. Расширенные функции доступны через модули, которые можно загрузить в Apache2. По умолчанию базовый набор модулей включается в сервер во время компиляции. Если сервер скомпилирован для использования динамически загружаемых модулей, то модули можно скомпилировать отдельно и добавить в любой момент с помощью директивы LoadModule. В противном случае Apache2 необходимо перекомпилировать для добавления или удаления модулей.
Ubuntu компилирует Apache2 для динамической загрузки модулей. Директивы конфигурации могут быть условно включены при наличии определенного модуля путем включения их в блок
Вы можете установить дополнительные модули Apache2 и использовать их с вашим веб-сервером. Например, выполните следующую команду в терминале, чтобы установить модуль Python 3 WSGI:
sudo apt установить libapache2-mod-wsgi-py3
Установка автоматически включит модуль, но мы можем отключить его с помощью а2дисмод
:
судо a2dismod wsgi sudo systemctl перезапустить apache2.service
А затем используйте утилиту a2enmod
, чтобы повторно включить его:
судо a2enmod wsgi sudo systemctl перезапустить apache2.service
Дополнительные модули, уже доступные в вашей системе, см. в каталоге /etc/apache2/mods-available
.
Конфигурация HTTPS
Модуль mod_ssl
добавляет к серверу Apache2 важную функцию — возможность шифрования связи. Таким образом, когда ваш браузер обменивается данными с использованием SSL, 9Префикс 0021 https:// используется в начале унифицированного указателя ресурсов (URL) на панели навигации браузера.
Модуль mod_ssl
доступен в пакете apache2-common. Выполните следующую команду в терминале, чтобы включить модуль mod_ssl
:
судо a2enmod ssl
Файл конфигурации HTTPS по умолчанию находится в /etc/apache2/sites-available/default-ssl.conf
. Чтобы Apache2 обеспечивал HTTPS, сертификат и файл ключа также необходимы. Конфигурация HTTPS по умолчанию будет использовать сертификат и ключ, сгенерированные пакетом
ssl-cert
. Они хороши для тестирования, но автоматически сгенерированный сертификат и ключ следует заменить сертификатом, специфичным для сайта или сервера. Информацию о создании ключа и получении сертификата см. в разделе Сертификаты.
Чтобы настроить Apache2 для HTTPS, введите следующее:
sudo a2ensite по умолчанию-ssl
Примечание
Каталоги
/etc/ssl/certs
и/etc/ssl/private
являются местоположениями по умолчанию. Если вы устанавливаете сертификат и ключ в другой каталог, обязательно измените SSLCertificateFile и SSLCertificateKeyFile соответствующим образом.
Теперь, когда Apache2 настроен для HTTPS, перезапустите службу, чтобы включить новые настройки:
sudo systemctl перезапустить apache2.service
Примечание
В зависимости от того, как вы получили сертификат, вам может потребоваться ввести парольную фразу при запуске Apache2.
Вы можете получить доступ к защищенным страницам сервера, набрав https://your_hostname/url/
в адресной строке браузера.
Совместное использование Разрешение на запись
Чтобы несколько пользователей могли писать в один и тот же каталог, необходимо предоставить разрешение на запись группе, которую они совместно используют. В следующем примере разрешение на запись для общего доступа предоставляется /var/www/html
в группу «вебмастера».
sudo chgrp -R веб-мастера /var/www/html sudo chmod -R g=rwX /var/www/html/
Эти команды рекурсивно устанавливают групповое разрешение для всех файлов и каталогов в /var/www/html
, чтобы разрешить чтение, запись и поиск в каталогах. Многие администраторы находят это полезным для разрешения нескольким пользователям редактировать файлы в дереве каталогов.
Предупреждение
Демон
apache2
будет работать как 9Пользователь 0021 www-data , которому соответствует группаwww-data
.