Apache

Kate

Administrator
Команда форума
Web-сервером называют и физический "компьютер-сервер", и специализированное программное обеспечение (ПО), принимающее запросы пользователей с браузеров и выдающее им ответы, используя протокол http/https. Практически у всех провайдеров услуг виртуального хостинга в качестве программного обеспечения для работы сайтов используется web-сервер Apache (также известный как httpd).

Apache - это свободное программное обеспечение, которое работает на ОС Linux и Windows и распространяется в виде файлов, готовых к установке.

Часто Apache используется на хостингах в виде backend web-сервера - работающего с запросами, которые поступили из форм на сайте (например, из корзины товаров).

Backend-сервер работает в связке с frontend web-сервером, который отвечает за отдачу статического контента, видимого пользователю в браузере (HTML, CSS, JavaScript). Таким fronted-сервером является Nginx, который устанавливают вместе с веб-сервером Apache. Они распределяют между собой нагрузку, что ускоряет работу сайта.

9f9a8bce236a772e39c0c38b5898110c.jpg


Для Linux​

Web-сервер Apache на платформе Linux используется вместе с:

Все вместе это называется технологией LAMP (Linux-Apache-MySQL-PHP). На применение связки LAMP ориентируется большинство провайдеров виртуального хостинга.

Apache поддерживает панели управления сервером:

Для Windows​

На платформе Windows Apache вместе с другими веб-серверами включен в состав популярных наборов для локального хостинга на компьютере пользователя и разработки web-сайтов Denwer и AMPPS. Вы можете установить себе на компьютер любой из них, включая Apache.

На реальных хостинг-серверах с ОС Windows в большинстве случаев используется веб-сервер IIS.

4eb8fb1911675832df26dd337fbef260.jpg


Принципы работы Apache​

Как было сказано выше, основная задача Apache - это обработка запросов web-браузеров на выдачу информации по http/https-протоколу.

Информация - это:

  • HTML-страницы;
  • изображения;
  • файлы;
  • медиапотоки.
Работает это так:

1. При использовании http/https браузер запрашивает страницу по определенному адресу - URL (Universal Resource Locator).
2. Web-сервер обрабатывает запрос и либо отправляет обратно в браузер запрошенную информацию, либо возвращает код ошибки.

Apache основан на модульной архитектуре и содержит в своем составе более 500 разнообразных компонентов-модулей, среди которых:

  • PageSpeed - отвечает за оптимизацию веб-сервера и контента сайта.
  • mod_security - отвечает за безопасность, а именно фильтрацию нежелательных видов трафика.
  • mod_status - используется для мониторинга запросов и нагрузки на веб-сервер.
  • mod rewrite - самый популярный модуль, который отвечает за редиректы и URL на сайте.
Принцип работы Apache: каждый http/https-запрос создает отдельный процесс, который обрабатывает данный запрос. Если на сайт перешли условно 5 пользователей и нажали на кнопку "заказать", то на сервере будет активно 5 процессов. Пока они не закончатся, другие процессы не могут быть запущены.

Одновременно web-сервер может обрабатывать большое количество http/https-запросов, благодаря чему достигается его многопоточность. Максимальное число одновременно работающих процессов ограничивается в настройках Apache.

Плюс системы: разделение запросов между процессами способствует безопасности и скорости работы web-сервера.
Минус системы: такой подход приводит к относительно большому потреблению оперативной памяти.

Информацию о настройках web-сервера, используемых модулях, различных правилах обработки запросов, настройках web-сайтов Apache хранит в виде набора текстовых конфигурационных файлов. Соответственно, изменение параметров работы Apache происходит путем их редактирования.

Отдельные строки-команды конфигурации Apache называются директивами.

Основной конфигурационный файл Apache, в зависимости от операционной системы, называется httpd.conf или apache2.conf.

Виртуальные хосты Apache​

Компьютер-сервер, на котором размещаются web-сайты, имеет лишь один IP-адрес. Чтобы знать, к какому именно сайту идет запрос, в протоколе http/https для web-браузера указывается название конкретного сайта, а не IP-адреса.

В Apache входящие запросы между разными web-сайтами распределяет функция виртуальных хостов (VirtualHost). Это специальные разделы конфигурации Apache, описывающие набор настроек для конкретного сайта, включая его основную папку в файловой системе сервера (root-folder).

Если вы используете VPS без панели управления, то вы как администратор сервера можете сконфигурировать Apache для обслуживания большого количества различных доменных имен, использующих один и тот IP-адрес. Каждое из этих доменных имен соответствует отдельному полнофункциональному web-сайту.

При поступлении http/https-запроса по доменному имени Apache “смотрит”, какому из виртуальных хостов соответствует запрос.

Если в конфигурации найден совпадающий по названию виртуальный хост, то запрос обрабатывается, согласно его конфигурации.

Если совпадения не найдены, то используются настройки по умолчанию (обычно это первый из списка виртуальный хост).

Также настройки по умолчанию применяются в том случае, если был http/https-запрос на IP-адрес сервера без указания конкретного доменного имени.

#Прием запросов на порт 80
Listen 80
#Секция настроек виртуального хоста для сайта www.example.com
<VirtualHost 172.20.30.40:80>
ServerName www.example.com
DocumentRoot "/www/example"
</VirtualHost>
Секция настроек виртуального хоста для сайта www.example2.com
<VirtualHost 172.20.30.40:80>
ServerName www.example2.com
DocumentRoot "/www/example2"
</VirtualHost>
Пример конфигурации Apache для нескольких сайтов (виртуальных хостов)

Apache и виртуальный хостинг​

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

Изменение глобальной конфигурации web-сервера недоступно для отдельных пользователей.

Вы можете настроить поведение отдельных web-сайтов или их подразделов при помощи встроенных в Apache механизмов. Для этого нужно разместить в папке с сайтом файл .htaccess с директивами Apache.

Apache на собственном сервере​

Пользователи услуг VPS/VDS и выделенных серверов на платформе Linux могут применять Apache для размещения на сервере web-сайтов.

На платформе Linux web-сервер Apache устанавливается из командной строки так же, как и другие программы.

В зависимости от версии Linux команда для установки Apache может иметь вид:

или

Чтобы упростить настройки серверов, вы также можете использовать панели управления сервером, которые в автоматическом режиме устанавливают Apache, PHP, MySQL и другие программные компоненты.

На основании вводимых данных панель создает нужные для работы конкретного сайта конфигурационные файлы Apache, и web-сайт начинает работать.

11ca6ca6fc24f18b84ec526a490422d3.jpg


Пример: добавление на сервер нового сайта через панель управления хостингом ISPmanager

Безопасность работы Apache​

Для безопасной работы web-сайтов под управлением Apache важно контролировать доступ пользователей, что особенно актуально для виртуального хостинга, когда на одном физическом сервере работают разные сайты.

Web-сервер Apache предоставляет различные способы обеспечения безопасного размещения сайтов.

1. Каждый web-сайт на сервере имеет свою собственную основную папку, в которой находятся его файлы. Пользователь по протоколу http/https может получить доступ только к информации, содержащейся внутри этой папки (включая вложенные в нее папки). Соответственно, из соображений безопасности, папки разных сайтов не пересекаются друг с другом.

2. Apache использует систему прав доступа к файлам, которую предоставляет файловая система Linux. Обычно Apache работает на сервере с правами специального служебного пользователя (httpd или apache), но с помощью специальных модулей (например, mpm_itk_module) можно настроить Apache таким образом, чтобы его отдельные процессы, обслуживающие сайты конкретных пользователей, работали строго с их правами.

3. При необходимости в Apache можно закрыть доступ к определенной папке сайта с помощью пароля. Есть возможность настройки доступа для определенных IP-адресов и фильтрации подозрительных запросов по ключевым словам.

Модуль перенаправления Mod_rewrite​

В состав Apache входит специальный модуль mod_rewrite, обеспечивающий перенаправление запросов, в зависимости от URL.

С помощью данного модуля вы сможете:

  • гибко управлять переадресацией запросов к отдельным страницам сайта;
  • перенаправлять пользователей на другие документы сайта или внешние адреса;
  • обрабатывать случаи обращения к отсутствующим на сервере файлам и папкам.
Mod_rewrite настраивается с помощью служебного файла .htaccess, который содержит набор конфигурационных директив, используемых для управления работой конкретного сайта.

Поддержка PHP​

В индустрии хостинга широко используется совместная работа Apache и языка программирования PHP. Для Apache был разработан специальный модуль mod_php, который обеспечивает для сайтов обработку кода PHP-скриптов.

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

Аналогично PHP существуют модули для взаимодействия Apache со скриптами, написанными на языках программирования:

  • Ruby;
  • Python;
  • Perl;
  • ASP.

Выводы​

Преимущества
1. Apache распространяется бесплатно.
2. Это кроссплатформенное ПО.
3. Наличие обширного функционала и возможность его расширения с помощью модулей.
4. Поддержка модулей для различных языков программирования позволяет Apache обслуживать сложные динамические сайты.
5. Для владельцев web-сайта доступен удобный способ управления конфигурацией web-сервера с помощью служебного файла .htaccess.

Недостатки
1. Относительно высокое использование оперативной памяти сервера, особенно в связке с mod_php.
2. Для изменения конфигурации web-сервера требуется ручное редактирование текстовых файлов.

Источник статьи: https://ru.hostings.info/schools/apache.html
 
Сверху