Apache HTTP

Материал из Etersoft wiki
Перейти к: навигация, поиск

Руководство по установке 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

Установка из файла дистрибутива

Компиляция из исходного кода

В этом разделе документа представлена информация о компиляции и установке Apache http сервера из исходного кода. Apache использует libtool и autoconf для создания среды компиляции как и большинство других Open Source-проектов. Краткая последовательность действий для компиляции и установки следующая: Выгрузка дистрибутива Apache:

$ lynx http://httpd.apache.org/download.cgi

Распаковка:

$ gzip -d httpd-NN.tar.gz
$ tar xvf httpd-NN.tar
$ cd httpd-NN

Компиляция:

$ ./configure --prefix=PREFIX
$ make

Установка:

$ make install

Настройка

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

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

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

Настройка:

$ vi PREFIX/conf/httpd.conf

Запуск

Запуск и остановка http-сервера

Тестирование расботоспособности сервера Apache:

$ PREFIX/bin/apachectl -k start

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

[root@server]# systemctl start httpd.service

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

[root@server]# 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-адрес сервера.