База знаний (wiki)

Онлайн бибилиотека с инструкциями по использованию и настройке хостинговых услуг

Loading...

Apache

Loading...
2

Apache (или Apache HTTP Server) является одним из самых популярных и широко используемых веб-серверов в индустрии. Он является свободным и открытым программным обеспечением, доступным для различных операционных систем, включая Linux и Windows.

Apache выполняет роль backend web-сервера, обрабатывая динамические запросы, генерируемые, например, из форм на сайте. Он поддерживает множество протоколов, включая HTTP и HTTPS, и предоставляет возможности для обработки запросов, маршрутизации, аутентификации, авторизации, управления сеансами и многое другое.

Часто Apache используется в сочетании с frontend web-сервером, таким как Nginx, для балансировки нагрузки и повышения производительности. В этой архитектуре Nginx выполняет роль frontend сервера и отвечает за обработку статического контента, такого как HTML, CSS и JavaScript, а Apache занимается обработкой динамических запросов.

Такая комбинация frontend-backend серверов позволяет более эффективно распределить нагрузку и обеспечить более высокую производительность и отзывчивость веб-сайта.

Кроме Apache, существуют и другие веб-серверы, такие как Nginx, Microsoft IIS, LiteSpeed и другие. Каждый из них имеет свои особенности и преимущества, и выбор веб-сервера зависит от конкретных требований и потребностей веб-проекта.

66 01

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

Apache на Linux также может быть интегрирован с различными панелями управления сервером, такими как ISPmanager, cPanel и Plesk. Эти панели предоставляют удобный интерфейс для управления различными аспектами веб-сервера, базами данных и другими функциями.

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

Однако на реальных хостинг-серверах с операционной системой Windows в большинстве случаев применяется веб-сервер IIS (Internet Information Services), который является стандартным веб-сервером от Microsoft для платформы Windows. IIS также поддерживает различные языки программирования и позволяет хостить веб-приложения на Windows.

Принципы функционирования Apache

Как указано ранее, основной задачей Apache является обработка запросов веб-браузеров и предоставление информации с использованием протоколов HTTP/HTTPS.

Информацией может быть:

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

Процесс работы выглядит следующим образом:

  1. При использовании протоколов HTTP/HTTPS браузер запрашивает страницу по определенному адресу URL (Универсальный адрес ресурса).
  2. Веб-сервер Apache обрабатывает запрос и либо отправляет запрошенную информацию обратно в браузер, либо возвращает код ошибки.

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

PageSpeed - отвечает за оптимизацию веб-сервера и контента сайта. mod_security - обеспечивает безопасность, включая фильтрацию нежелательного трафика. mod_status - используется для мониторинга запросов и нагрузки на веб-сервер. mod_rewrite - наиболее популярный модуль, отвечающий за перенаправления и обработку URL на сайте.

Принцип работы Apache заключается в том, что каждый запрос по протоколу HTTP/HTTPS создает отдельный процесс, который обрабатывает данный запрос. Например, если на сайт перешли 5 пользователей и нажали кнопку "заказать", то на сервере будет активно 5 процессов. Пока эти процессы не завершатся, другие процессы не будут запущены.

Веб-сервер Apache способен одновременно обрабатывать большое количество запросов по протоколам HTTP/HTTPS благодаря своей многопоточности. Максимальное количество одновременно работающих процессов ограничивается настройками Apache.

Преимуществом такой системы является разделение запросов между процессами, что способствует безопасности и повышает скорость работы веб-сервера. Однако недостатком является относительно большое потребление оперативной памяти.

Настройка виртуальных хостов в Apache

Web-сервер, на котором размещены веб-сайты, обычно имеет только один IP-адрес. Однако, чтобы определить, к какому именно сайту относится запрос, в протоколе HTTP/HTTPS используется имя сайта (domain name), а не IP-адрес.

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

Если вы используете виртуальный сервер (VPS) без панели управления, в качестве администратора сервера вы можете настроить Apache для обслуживания нескольких различных доменных имен, используя один и тот же IP-адрес. Каждое доменное имя соответствует отдельному полноценному веб-сайту.

При поступлении запроса по протоколам HTTP/HTTPS Apache "проверяет", к какому виртуальному хосту относится запрос, основываясь на доменном имени.

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

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

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

#Прием запросов на порт 80
Listen 80

#Секция настроек виртуального хоста для сайта www.example.com
<VirtualHost 172.20.30.40:88>
    ServerName www.example.com
    DocumentRoot "/www/example"
</VirtualHost>

Секция настроек виртуального хоста для сайта www.example2.com
<VirtualHost 172.20.30.40:88>
    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 может иметь вид:

# yum install httpd

или

# apt install apache2

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

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

66 02

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

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

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

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

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

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

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

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

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

С помощью модуля mod_rewrite вы можете:

  • Гибко управлять перенаправлением запросов на отдельные страницы сайта.
  • Осуществлять перенаправление пользователей на другие документы сайта или внешние адреса.
  • Обрабатывать случаи обращения к отсутствующим на сервере файлам и папкам.

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

Поддержка PHP

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

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

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

Выводы

Преимущества Apache:

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

Недостатки Apache:

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

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

Опубликовано 9 месяцев назад
#6675 просмотрыОтредактировано 7 месяцев назад