Apache

Редактор: Дмитрий Сокол 37276 15 мин Аудио

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

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

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

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

Для Linux

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

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

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

Для Windows

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

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

Принципы работы 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 может иметь вид:

# yum install httpd

или

# apt install apache2

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

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

Пример: добавление на сервер нового сайта через панель управления хостингом 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-сервера требуется ручное редактирование текстовых файлов.

Дмитрий Сокол

Провайдеры с поддержкой ASP.net

Rank Хостинг Клиенты Оценка Отзывы
1
147000
5.0 394
2
577930
5.0 488
3
21000
4.8 231

Хостинги с поддержкой MySQL

Rank Хостинг Клиенты Оценка Отзывы
1
147000
5.0 394
2
577930
5.0 488
3
200000
4.9 159

Хостинги с поддержкой PHP

Rank Хостинг Клиенты Оценка Отзывы
1
147000
5.0 394
2
577930
5.0 488
3
200000
4.9 159
Только эксперты отвечают на ваши вопросы
Не нашли ответ на свой вопрос?
Задайте его экспертам! Ответ приходит очень быстро и прямо на ваш email.

Добавляя подтверждение "Я не робот" вы так же даете согласие получать сообщения от ru.hostings.info и принимаете его Политику конфиденциальности, позволяя ru.hostings.info хранить и обрабатывать вашу личную информацию, указанную выше, для предоставления вам запрашиваемого контента.

Рейтинги хостинг-провайдеров по задачам сайта
Апреля
Панель управления

От панели управления зависит ваше удобство в настройке хостинге\сайта.

Большинство качественных хостингов из нашего ТОПа используют удобные панели управления, поэтому рекомендуем больше внимания уделить другим параметрам при выборе.

Вид хостинга

Облачный хостинг - распределение нагрузки на несколько серверов, если сервер с вашим сайтом перегружен или не работает. Это гарантия того что пользователи в любом случае смогут видеть ваш сайт. Но это дорогая, более сложная опция, которую предоставляют далеко не все провайдеры.

Виртуальный хостинг - подходит для большинства проектов начального уровня с посещаемостью до 1000 человек в сутки. В таком хостинге мощность сервера делится между несколькими хостинговыми аккаунтами. Услуга проста в настройке даже для новичков.

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

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

Размещение и обслуживание вашего собственного сервера в дата-центре хостинга - это не очень популярная услуга и требуется в исключительных случаях.

CMS

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

Тип виртуализации

Виртуализация - это создание виртуальной среды на физическом сервере, позволяющая запускать требуемые ПО без затрагивания процессов, совершаемых другими пользователями сервера.  С её помощью ресурсы физического сервера распределяются между виртуальными (VPS/VDS). Основные виды: аппаратная (KVM), паравиртуализация, виртулизация на уровне ОС (OpenVZ).

Прочее

Абузоустойчивый хостинг - компании, которые разрешают размещать практически любой контент, даже запрещенный (спам, варез, дорвеи, порнографические материалы). Такие компании не удаляют контент вашего веб-сайта при первой же жалобе (“абузе”).

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

Безопасный хостинг - тот, где администрация постоянно обновляет ПО установленное на серверах, устанавливает базовую защиту от DDoS-атак, антивирус и файерволлы, блокирует взломанные сайты и помогает их "лечить".

Защита от DDOS - компании, которые предоставляют хостинг с защитой от DDoS-атак. Такие пакеты ощутимо дороже обычных, но они стоят своих денег, так как ваш сайт будет защищен от всех видов сетевых атак.

Бесплатный тест

Тестовый период - предоставляется хостером бесплатно на 7-30 дней, чтобы вы могли удостовериться в его качестве.

Moneyback - период на протяжении которого хостер обязуется вернуть деньги, если вам не понравится хостинг.

Региональные
Цена

Настоятельно рекомендуем не покупать слишком дешевый хостинг! Как правило с ним очень много проблем: сервер иногда не работает, оборудование старое, поддержка долго отвечает или не может решить проблему, сайт хостера глючит, ошибки в регистрации, оплате и т.д.

Также мы собрали тарифы от тысяч хостеров, чтобы вы могли выбрать хостинг по конкретной цене.

Технологии и ОС

На языке программирования PHP и базах данных MySQL сейчас работает большинство сайтов. Они же поддерживаются практически всеми современными хостингами.

ASP.NET - платформа для разработки веб-приложений от Майкрософт.

ОС - операционная система, установленная на сервере хостинга. Мы рекомендуем размещать на серверах с Linux, если нет особых требований у разработчиков сайта.

Тип диска