Apache HTTP: различия между версиями

Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску
Строка 2: Строка 2:
В данном документе представлена информация о базовой установке Apache HTTP на CentOS 7 и первоначальной настройке.
В данном документе представлена информация о базовой установке Apache HTTP на CentOS 7 и первоначальной настройке.
=== Общие сведения ===
=== Общие сведения ===
Apache http (далее - Apache) сервер является кроссплатформенным ПО, поддерживающим операционные системы Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS. Основными достоинствами Apache являются надёжность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д. Поддерживает протокол IPv6.
Веб-сервер  Apache HTTP — сервер, принимающий HTTP-запросы от клиентов (обычно веб-браузеров) и выдающий им HTTP-ответы, как правило, вместе с HTML-страницей, изображением, файлом, медиа-потоком или другими данными. Основными достоинствами Apache являются надёжность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д. Поддерживает протокол IPv6.


Ядро Apache включает в себя основные функциональные возможности, такие как обработка конфигурационных файлов, протокол HTTP и система загрузки модулей. Ядро (в отличие от модулей) полностью разрабатывается и поддерживается Apache Software Foundation, без участия сторонних программистов. Ядро Apache полностью написано на языке программирования C.
==== Архитектура ====
Теоретически, ядро Apache может функционировать в чистом виде, без использования дополнительных модулей, однако функциональность такого решения крайне ограничена.
Ядро Apache включает в себя основные функциональные возможности, такие как обработка конфигурационных файлов, протокол HTTP и система загрузки модулей. Ядро (в отличие от модулей) полностью разрабатывается и поддерживается Apache Software Foundation, без участия сторонних программистов. Ядро Apache полностью написано на языке программирования C. Теоретически, ядро Apache может функционировать в чистом виде, без использования дополнительных модулей, однако функциональность такого решения крайне ограничена.
 
Apache HTTP Server поддерживает модульность. Существует более 500 модулей, выполняющих различные функции. Часть из них разрабатывается командой Apache Software Foundation, но основное количество — отдельными open source-разработчиками. Модули могут быть как включены в состав сервера в момент компиляции, так и загружены динамически, через директивы конфигурационного файла.


Apache HTTP Server поддерживает модульность. Существует более 500 модулей, выполняющих различные функции. Часть из них разрабатывается командой Apache Software Foundation, но основное количество — отдельными open source-разработчиками.
Модули могут быть как включены в состав сервера в момент компиляции, так и загружены динамически, через директивы конфигурационного файла.
В модулях реализуются такие вещи, как:
В модулях реализуются такие вещи, как:
* Поддержка языков программирования.
* Поддержка языков программирования.
Строка 14: Строка 14:
* Исправление ошибок или модификация основных функций.
* Исправление ошибок или модификация основных функций.
* Усиление безопасности.
* Усиление безопасности.
Apache имеет встроенный механизм виртуальных хостов. Он позволяет полноценно обслуживать на одном IP-адресе множество сайтов (доменных имён), отображая для каждого из них собственное содержимое.
Apache имеет встроенный механизм виртуальных хостов. Он позволяет полноценно обслуживать на одном IP-адресе множество сайтов (доменных имён), отображая для каждого из них собственное содержимое.
Для каждого виртуального хоста можно указать собственные настройки ядра и модулей, ограничить доступ ко всему сайту или отдельным файлам. Некоторые MPM, например Apache-ITK позволяют запускать процесс httpd для каждого виртуального хоста с отдельными идентификаторами uid и guid.
Для каждого виртуального хоста можно указать собственные настройки ядра и модулей, ограничить доступ ко всему сайту или отдельным файлам. Некоторые MPM, например Apache-ITK позволяют запускать процесс httpd для каждого виртуального хоста с отдельными идентификаторами uid и guid.

Версия 15:20, 17 апреля 2017

Руководство по установке Apache HTTP

В данном документе представлена информация о базовой установке Apache HTTP на CentOS 7 и первоначальной настройке.

Общие сведения

Веб-сервер Apache HTTP — сервер, принимающий HTTP-запросы от клиентов (обычно веб-браузеров) и выдающий им HTTP-ответы, как правило, вместе с HTML-страницей, изображением, файлом, медиа-потоком или другими данными. Основными достоинствами Apache являются надёжность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д. Поддерживает протокол IPv6.

Архитектура

Ядро Apache включает в себя основные функциональные возможности, такие как обработка конфигурационных файлов, протокол HTTP и система загрузки модулей. Ядро (в отличие от модулей) полностью разрабатывается и поддерживается Apache Software Foundation, без участия сторонних программистов. Ядро Apache полностью написано на языке программирования C. Теоретически, ядро Apache может функционировать в чистом виде, без использования дополнительных модулей, однако функциональность такого решения крайне ограничена.

Apache HTTP Server поддерживает модульность. Существует более 500 модулей, выполняющих различные функции. Часть из них разрабатывается командой Apache Software Foundation, но основное количество — отдельными open source-разработчиками. Модули могут быть как включены в состав сервера в момент компиляции, так и загружены динамически, через директивы конфигурационного файла.

В модулях реализуются такие вещи, как:

  • Поддержка языков программирования.
  • Добавление функций.
  • Исправление ошибок или модификация основных функций.
  • Усиление безопасности.

Apache имеет встроенный механизм виртуальных хостов. Он позволяет полноценно обслуживать на одном IP-адресе множество сайтов (доменных имён), отображая для каждого из них собственное содержимое. Для каждого виртуального хоста можно указать собственные настройки ядра и модулей, ограничить доступ ко всему сайту или отдельным файлам. Некоторые MPM, например Apache-ITK позволяют запускать процесс httpd для каждого виртуального хоста с отдельными идентификаторами uid и guid. Также, существуют модули, позволяющие учитывать и ограничивать ресурсы сервера (CPU, RAM, трафик) для каждого виртуального хоста.

Установка

Установка с помощью менеджера пакетов

В этой главе представлена информация об установке Apache http-сервера на Linux CentOS 7.2 и другие подобные Unix-системы из репозитория пакетов ПО Установку сервера необходимо производить с помощью утилиты «yum», предназначенной для управления пакетами ПО, набирите в командной строке

[root@server]# yum install httpd

Запуск сервиса http-сервера:

[root@server]# systemctl start httpd.service

Добавление сервиса в автозагрузку:

[root@dserver]# systemctl enable httpd.service

Для того, чтобы проверить, нормально ли функционирует сервер, можно посмотреть прослушивает ли httpd-сервер номер порта сетевого интерфейса, на который присылают запросы web-браузер (по-умолчанию 80). Команда и вывод на экран результата ее выполнения представлен ниже:

[root@server]# netstat -antup | grep httpd
tcp6     0    0 :::80      :::*         LISTEN      3702/httpd

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

[root@server]# firewall-cmd --permanent --zone=public --add-service=http

После изменения конфигурации, нужно перезагрузить сетевой экран:

[root@server]# firewall-cmd --reload

Чтобы убедиться в функционировании http-сервера, наберите в адресной строке web-браузера ip-адрес сервера.

Настройка

Система конфигурации Apache основана на текстовых конфигурационных файлах. Имеет три условных уровня конфигурации:

  • Конфигурация сервера (httpd.conf).
  • Конфигурация виртуального хоста (httpd.conf c версии 2.2, extra/httpd-vhosts.conf).
  • Конфигурация уровня директории (.htaccess).

Система конфигурации имеет собственный язык конфигурационных файлов, основанный на наборах директив. Практически все параметры ядра могут быть изменены через конфигурационные файлы, вплоть до управления мультипроцессовыми модулями (MPM). Большая часть модулей имеет собственные параметры. Часть модулей использует в своей работе конфигурационные файлы операционной системы (например /etc/passwd и /etc/hosts). Помимо этого, параметры могут быть заданы через ключи командной строки.