Апачи веб сервер: Как установить и настроить веб-сервер Apache

Что такое Apache и зачем он нужен — Журнал «Код»

Мы знаем, что если набрать адрес сайта в браузере, то при определённых условиях на экране появится этот сайт. Чтобы он появился, на каком-то удалённом компьютере должна поработать программа, которая отвечает за выдачу этого сайта. Одна из самых распространённых программ, которая совершает эту работу, — Apache, он же «Апач». Вот сегодня о нём.

Что вообще такое сервер

Сервером могут называть две вещи:

  1. Компьютер или виртуальная машина, на которой запускаются программы для работы сайтов и служб.
  2. Сами программы, которые что-то отдают пользователю по запросу — файлы, видеоролики, музыку и т. д. Apache — это как раз программа. 

Программы-сервера ещё иногда разделяют на веб-сервера, ftp-сервера, почтовые сервера и т. д. То есть если программа обрабатывает запросы на сайты — это веб-сервер. Если программа отвечает за обмен файлами по протоколу ftp — это ftp-сервер. Все эти программы могут работать на одном физическом или виртуальном компьютере, просто отвечать за свой тип запросов.  

Смысл веб-сервера

Apache — это как раз веб-сервер, то есть он обрабатывает запросы и отдаёт в ответ на них сайты. Он работает примерно так:

  1. У него есть список портов, которые он «слушает», — представьте, что это столики, которые обслуживает официант.
  2. Если на какой-то порт приходит запрос, это равносильно тому, как если бы гость ресторана сделал заказ. Сервер изучает этот заказ и заглядывает в свои внутренние правила: можно ли этот заказ исполнять.
  3. Чаще всего внутренние правила звучат так: возьми такие-то файлы, запусти такой-то процесс, получи от него такой-то результат и передай его тому, кто этот запрос сделал. 
  4. Иногда клиент заказывает что-то, что нельзя подавать — в правилах стоит запрет. Например, это какой-то секретный документ. Тогда сервер смотрит, как ответить клиенту в этой ситуации. Например, он покажет страницу с ошибкой. 
  5. Когда запрос выполнен (успешно или с ошибкой), сервер снова ждёт нового запроса. 

Что такое порт в программировании

Откуда появился Апач

Первая версия этого веб-сервера появилась в 1995 году, когда браузеры стали набирать популярность. Цепочка была такая: 

В интернет начали приходить простые пользователи, а не только айтишники → они стали искать и читать то, что им интересно → чтобы им это отдать, серверы напрягались, потому что раньше такой нагрузки не было → старый софт перестал справляться, и появился Апач.

Всё дело в том, что в старом софте и протоколах, которые использовались, был один слабый момент: когда нагрузка становилась большой, система не справлялась, начинала глючить и выдавать не то, не тем и не в нужное время. А название Apachе родилось как созвучное фразе «a patchy server» — сервер, который накладывает заплатки и патчи на существующие технологии.

С тех пор технологии поменялись, а название осталось.

Принцип работы Апача

Апач работает на трёх уровнях: на уровне всего сервера, виртуального хоста и каталога. Настройки каждого уровня задаются в своих файлах.

Уровень всего сервера — это по каким правилам Апач обрабатывает вообще все запросы, которые к нему приходят. Например, можно сказать ему так: на любой запрос показывай ошибку «Доступ запрещён».

👉 За этот уровень отвечает файл httpd.conf. 

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

Правила на этом уровне отвечают за то, как конкретный хост будет отвечать на запросы — откуда брать данные, как их обрабатывать и что с ними делать дальше.

👉 За этот уровень отвечает файл extra/httpd-vhosts.conf.

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

👉 За этот уровень отвечает файл .htaccess. Мы с ним уже встречались в статьях про защиту сервера и про публикацию сайта.

Чтобы настроить Апач, нужно поменять соответствующие настройки в этих файлах. Веб-сервер в них смотрит при каждом запросе, поэтому все новые правила применяются сразу же, как вы их пропишете. Это как если шеф-повар скажет официантам: «Стейки на стопе» — это значит, что мясо на стейки закончилось, больше заказов на стейки не принимайте. Перезагружать для этого сервер не нужно. 

Модули

Сам по себе Апач умеет не очень много, но если к нему подключить нужные модули, то всё сразу меняется. Есть отдельные модули: 

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

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

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

В чём хорош Апач

Масштабируемость. Если нагрузка на сервер становится больше, можно запустить второй апач на другом сервере, настроить его на работу с тем же сайтом и распределить нагрузку.

Поддержка и справочная информация. Апачу уже больше 25 лет — за это время накопилось огромное количество документации, примеров использования, комплектов модулей и готовых сценариев. Если у вас есть проблема или вопрос по Апачу, то её до этого уже точно кто-то решил и выложил ответ в сеть.

Поддержка других языков программирования. Нужна поддержка PHP? Есть такое. Python? Легко. Perl? Тоже без проблем. Даже если вам понадобится запускать на сервере что-то на C++ или Java, то Апач тоже сможет с этим помочь.

Что такое PHP и почему его все ненавидят

А ещё у Апача есть версии вообще почти под все операционные системы. Поэтому можно поставить его на свой домашний компьютер и получить поддержку Вордпресса, PHP и остальных систем, для которых раньше нужно было всё заливать на удалённый сервер. 

Минусы и недостатки

Когда посетителей на сервере много, Апач работает медленно. А всё потому, что в 1995 году высокой нагрузкой считалось, условно, 1000 посетителей в минуту, а сейчас — миллион. И когда обращений к сайту становится слишком много (а Апач обрабатывает каждое соединение по очереди) — сервер не справляется и тормозит.

Второй недостаток — уязвимость подключаемых модулей. Сам Апач проверен на надёжность и безопасность много раз, а вот в модулях могут быть проблемы. Если подключить модуль, в котором есть дыры в безопасности, то через них можно получить доступ и к серверу, и к файлам, которые на нём хранятся.

Как попробовать

Вы можете запустить собственный веб-сервер прямо на своём компьютере за пять минут. Самый простой способ — скачать MAMP: это пакет для веб-разработчика, в который встроен менеджер баз данных, веб-сервер, движок PHP и другие полезные для веба штуки. Работает так:

  1. Скачиваете MAMP для своей операционки.
  2. Устанавливаете.
  3. Запускаете программу и в ней говорите Start.
  4. MAMP скажет вам, что сервер запущен, откликается по такому-то адресу и смотрит в такую-то директорию на вашем компе (всё это можно настроить, а можно оставить так). Скорее всего, ваш веб-сервер начнёт откликаться из браузера по запросу http://localhost. 
  5. Зайдите на http://localhost/MAMP/ — там будет вся информация о вашем сервере вплоть до ключей от базы данных и ссылки на запуск инструмента администрирования БД phpMyAdmin.

Далее можно, например, скачать дистрибутив Вордпресса, распаковать его в папку, где работает ваш сервер, и попробовать эту штуку установить. Придётся создавать БД через phpMyAdmin, но об этом в другой раз. 

Обратите внимание: MAMP — это локальный сервер. Из внешнего интернета его не видно. Если хотите настроить видимый из внешнего интернета сайт, это несколько сложнее.

Текст:

Михаил Полянин

Редактор:

Максим Ильяхов

Художник:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Соцсети:

Виталий Вебер

что это такое и как им пользоваться

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

Далее я постараюсь максимально подробно рассказать о нем, приводя объяснения общим терминам.

Понятие «веб-сервер‎»

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

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

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

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

Работа веб-сервера Apache

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

Все остальное зависит от подключаемых модулей, которые существуют для Apache Web Server, то есть его можно назвать модульным (собираемым из разных дополнений, расширяющих функциональность). Здесь уже создатель сайта сам решает, какие дополнения установить, редактируя конфигурацию через специальный файл под названием .htaccess. Дополнений существует множество – начиная со средств повышения безопасности и заканчивая модулями аутентификации пользователей при вводе учетных данных.

Пример использования файла .htaccess

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

Самая простая строка кода, вводимая в этот файл выглядит так:


AddType "text/html; charset=koi8-r" .html .htm .shtml

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

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

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

Подробнее: Apache Virtual Host documentation

Сравнение Apache с другими веб-серверами

Есть и другие веб-серверы, обладающие своими преимуществами и недостатками. Обо всех них в рамках этой статьи говорить не будем, рассмотрим лишь пару достойных конкурентов.

Начнем с самого известного решения – Nginx. Здесь сказать можно только одно – его главным преимуществом является преодоление барьера в 10 000 одновременных соединений. Apache не может обработать такой большой поток трафика сразу, поэтому многие вебмастера и переключились на альтернативу, когда масштабы их проекта значительно увеличились. Связано это с поточной структурой Apache и невозможностью реализовать прохождение такого барьера. Однако в некотором плане Апач превосходит Nginx, если говорить о простоте настройки, подключении модулей и юзерфрендли-подходе от разработчиков.

Примечание. Хостинг Timeweb на своих серверах использует связку Nginx+Apache: Nginx отдает статический контент, а Apache подключается позже и отвечает за обработку динамического контента.

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

Установка Apache на компьютер

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

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

Подробнее: Как использовать Apache в качестве обратного прокси при помощи mod_proxy на Ubuntu 16.04

Преимущества и недостатки Apache

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

Плюсы

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

  • Открытый исходный код. Он позволяет не только бесплатно скачивать программу, но и изменять ее под свои цели, чем и занимаются многие компании по всему миру, составляя уникальные конфигурации.
  • Простота настройки. Помимо того, что в Apache есть огромное количество настроек, их редактирование остается таким же простым, а за вспомогательной информацией всегда можно обратиться к официальной документации.
  • Модульная структура. Считаю, что возможность подключения любого количества модулей значительно расширяет функциональность веб-сервера, делая его универсальным.
  • Кроссплатформенность. Скачать веб-сервер можно для любой операционной системы (но не для мобильной). При этом процесс настройки не меняется, различается только принцип инсталляции и расположение каталогов. Остается таким же и создание сайтов. Apache можно освоить как в Windows, так и в Linux или macOS.
  • Масштабируемость. Данный веб-сервер подойдет как для одного сайта, так и для нескольких, расположенных на одном виртуальном хостинге.

Минусы

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

  • Влияние трафика на производительность. Apache работает медленно, если наплыв пользователей слишком большой.
  • Дыры в безопасности. Это относится только к тем случаям, когда к веб-серверу подключено огромное количество модулей. Чем их больше, тем сложнее процесс конфигурирования, появляются уязвимые места и дыры.
  • Редактирование файлов в Linux. Управление конфигурационными файлами в этих дистрибутивах осуществляется вручную без графического интерфейса, что не всегда удобно (в качестве рекомендации могу подсказать приложение Apache GUI, благодаря которому настройку можно выполнить через веб-обозреватель).

Apache – несомненно, один из лучших веб-серверов, в чем вы смогли сами убедиться, дочитав мой обзор. 

Проект HTTP-сервера Apache

Используйте приведенные ниже ссылки для загрузки HTTP-сервера Apache с наших серверов загрузки.
Вы должны проверить целостность загруженного
файлы, используя подписи, загруженные из нашего основного каталога дистрибутива.
Подписи можно проверить с помощью нашего
файл KEYS.

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

Apache httpd для Microsoft Windows доступен по адресу
ряд сторонних поставщиков.

Стабильная версия — последняя версия:

  • 2.4.54 (выпущена 08.06.2022)

Если вы загружаете дистрибутив Win32, прочитайте эти важные
заметки.

Проект HTTP-сервера Apache рад
объявить
выпуск версии 2.4.54 HTTP-сервера Apache («Apache» и «httpd»).
Эта версия Apache является нашей последней общедоступной версией нового поколения 2.4.x.
ответвление Apache HTTPD и представляет пятнадцать лет инноваций
проект и рекомендуется по сравнению со всеми предыдущими выпусками!

Подробнее см. Официальный
Объявление и
ИЗМЕНЕНИЯ_2.4 и
CHANGES_2.4.54 списки.

  • Источник: httpd-2.4.54.tar.bz2
    [ ПГП ] [
    SHA256 ] [
    SHA512]

  • Источник: httpd-2. 4.54.tar.gz [
    ПГП ] [
    SHA256 ] [
    SHA512]

  • Двоичные файлы

  • Безопасность и официальные исправления

  • Другие файлы

  • Файлы для Microsoft Windows

Apache Software Foundation и проект HTTP-сервера Apache
рад сообщить о выходе версии 2.3.9mod_fcgid, FastCGI
реализация для Apache HTTP Server версий 2.2 и 2.4. Этот
версия mod_fcgid является выпуском безопасности.

Информацию об этом подпроекте модуля см. в модуле mod_fcgid.
страница проекта.

  • Источник в формате gzip с окончаниями строки LF:
    mod_fcgid-2.3.9.tar.gz
    [
    ПГП
    ] [
    MD5
    ] [
    SHA1
    ]

  • Источник как bz2 с окончаниями строки LF:
    mod_fcgid-2.3.9.tar.bz2
    [
    ПГП
    ] [
    MD5
    ] [
    SHA1
    ]

  • Источник Win32, Netware или OS/2 с окончаниями строки CR/LF:
    mod_fcgid-2.3.9-crlf.zip
    [
    ПГП
    ] [
    MD5
    ] [
    SHA1
    ]

Проект HTTP-сервера Apache рад объявить о выпуске Apache
Модуль FTP для HTTP-сервера Apache, версия 0. 9.6 в качестве бета-версии.

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

  • Исходник с окончаниями строк LF (сжатый bzip2):
    mod_ftp-0.9.6-бета.tar.bz2
    [
    ПГП
    ] [
    SHA1
    ] [
    MD5
    ]

  • Исходник с окончаниями строк LF (сжатый gzip):
    mod_ftp-0.9.6-бета.tar.gz
    [
    ПГП
    ] [
    SHA1
    ] [
    MD5
    ]

  • Источник Win32, Netware или OS/2 с окончаниями строки CR/LF:
    mod_ftp-0.9.6-бета-crlf.zip
    [
    ПГП
    ] [
    SHA1
    ] [
    MD5
    ]

Важно проверить целостность загруженных файлов с помощью
подписи PGP или SHA. Пожалуйста, прочтите Проверка HTTP-сервера Apache
Релизы для получения дополнительной информации о том, почему вы должны
проверить наши выпуски и как это сделать.

Что такое веб-сервер Apache? Что это такое и как это работает

Apache — это популярный кроссплатформенный веб-сервер с открытым исходным кодом, который, судя по цифрам, является самым популярным веб-сервером из существующих. Он активно поддерживается Apache Software Foundation.

Некоторые известные компании, использующие Apache, включают Cisco, IBM, Salesforce, General Electric, Adobe, VMware, Xerox, LinkedIn, Facebook, Hewlett-Packard, AT&T, Siemens, eBay и многие другие (источник).

Помимо своей популярности, это также один из старейших веб-серверов, первый выпуск которого был выпущен еще в 1995 году. Сегодня многие хосты cPanel используют Apache. Как и другие веб-серверы, Apache поддерживает скрытые аспекты предоставления файлов вашего веб-сайта посетителям.

Поскольку Apache не так хорошо работает в некоторых тестах, особенно для статических веб-сайтов или веб-сайтов с высоким трафиком, Kinsta использует веб-сервер NGINX вместо Apache. Хотя NGINX существует не так долго, как Apache, его популярность и доля на рынке быстро растут с момента его запуска в 2004 году. 0005

Как работает Apache? Объяснение основ веб-сервера

Несмотря на то, что в основе функционирования веб-сервера лежит большая сложность, основная задача всех веб-серверов состоит в том, чтобы принимать запросы от клиентов (например, веб-браузера посетителя), а затем отправлять ответ на этот запрос ( например, компоненты страницы, которые посетитель хочет видеть).

Веб-сервер Apache имеет модули, которые добавляют дополнительные функции к его программному обеспечению, такие как MPM (для работы в режимах многопроцессорной обработки) или mod_ssl для включения поддержки SSL v3 и TLS (рекомендуемое чтение: TLS против SSL). Некоторые общие функции, наблюдаемые в Apache, включают:

  • .htaccess
  • IPv6
  • FTP
  • HTTP/2
  • Perl, Lua и PHP
  • Регулирование полосы пропускания
  • WebDAV
  • Балансировка нагрузки
  • перезапись URL
  • Отслеживание сеанса
  • Геолокация на основе IP-адреса

Хотя веб-сервер является неотъемлемой частью любого веб-сайта, важно отметить, что случайные пользователи WordPress большую часть времени вряд ли будут напрямую взаимодействовать со своим веб-сервером.

Статистика использования Apache и Nginx

Если посмотреть на каждый веб-сайт в Интернете, Apache является самым популярным веб-сервером. По данным W3Techs, он поддерживает 47% веб-сайтов с известным веб-сервером.

Однако использование Apache значительно падает, когда вы начинаете просматривать наиболее посещаемые сайты в Интернете. Только Apache поддерживает:

  • 27,1% из 100 000 самых популярных сайтов
  • 21,5% из 10 000 самых популярных сайтов
  • 16,2% из 1000 самых популярных сайтов

Это падение, вероятно, связано, по крайней мере частично, с более низкими тестами Apache для веб-сайтов с высоким трафиком.

И наоборот, NGINX, веб-сервер, который использует Kinsta, используется большинством сайтов с высоким трафиком, включая:

  • 56,1% из 100 000 самых популярных сайтов
  • 63,2% из 10 000 самых популярных сайтов
  • 57% из 1000 самых популярных сайтов

Если вы проверите тенденции поиска Google с 2004 года, вы увидите, что эта тенденция проявляется там, где популярность Apache ( в качестве поискового запроса ) снижается, в то время как NGINX растет.

This entry was posted in Популярное