В этой статье мы простым языком объясним, что такое apache сервер, как правильно его настроить и использовать. На сегодняшний день это один из самых востребованных видов программного обеспечения, которое отвечает за отображение информации на сайте. Поэтому с ним сталкивается каждый веб-разработчик.
Что такое Apache и зачем он нужен
Apache часто называют веб сервером. Но корректнее назвать его программным обеспечением для развертывания веб сервера.
Этот продукт создавался в качестве усовершенствованной модификации другого HTTP-клиента. Разработчики вносили в него доработки и улучшения. Их называют патчи, что в переводе означает «заплатки». Эти части кода автоматически устраняют недочёты общего кода. Когда их объединили, появился новый, уникальный IT-продукт с модульной структурой.
Чтобы понять, для чего нужен apache, вспомним, как протекает процесс открытия сайта.
Человек пишет запрос, адрес сайта. Чтобы предоставить нужную информацию, в том числе изображение, текст, формы и другие элементы, браузеру нужно связаться с сервером. В этом ему помогает веб сервер, обрабатывая расположенные на ресурсе файлы. Его задача – найти нужные и направить их браузеру. Когда браузер их получит, он может продемонстрировать контент пользователю.
APACHE VS NGINX. Что выбрать? Сравнение двух популярных HTTP серверов.
Веб-сервер способен обрабатывать несколько запросов параллельно, так что не возникает проблем, если файлы написаны на разных языках программирования. В процессе обработки они всё равно трансформируются в HTML-код, в котором их в итоге получает браузер.
Условно можно выделить 4 ключевые задачи из тех, что делает apache.
- Способствует повышению скорости открывания динамических PHP-страниц.
- Распределяет нагрузку на сервер.
- Повышает отказоустойчивость сервера.
- Помогает настроить сервер при запуске PHP-скриптов.
Архитектура Apache
Apache состоит из ядра и модулей, а его параметры можно изменить, корректируя конфигурационные файлы.
Ядро нужно, чтобы обрабатывать конфигурационные файлы, протокол HTTP/HTTPS и загружать модули. Оно способно функционировать само по себе, без подключения модулей, однако в этом случае функционал будет сильно ограничен.
Как можно расширить функционал веб сервера? Подключить к ядру модули. Это дополнительные файлы, отвечающие за конкретные аспекты обработки запросов. Например, поддержку какого-либо языка программирования, безопасность данных, кэширование и другие функции. То есть общая задача делится на мелкие процессы, и за каждый из них отвечает конкретный модуль.
Модули бывают двух основных видов.
- Статические прикрепляют к ядру ещё до загрузки. По сути, пользователь просто выбирает подходящую версию сборки.
- Динамические можно добавлять позже, в процессе загрузки. Для этого предусмотрен особый встроенный модуль mod_so.
Для апаче уже созданы сотни модулей. А некоторые приложения сразу пишутся в виде модулей для удобного использования.
Конфигурация Apache
Система конфигурации Apache базируется на содержащих настройки текстовых файлах и состоит из трёх уровне.
- Конфигурация сервера – файл httpd.conf. Это главный конфигурационный файл, охватывающий полностью механизм веб-сервера.
- Каталог – файл .htaccess. Это второстепенный конфигурационный файл, так как его директивы действуют исключительно в каталоге, где файл находится, а также его подкаталогах.
- Виртуальный хоста – файл httpd.conf> или extra/httpd-vhosts.conf. Действуют только в конкретном каталоге и его подкаталогах.
Если интересуетесь, как настроить apache, то ищите нужные файлы в папке «conf» и вложенной в неё папке «extra». Редактирование осуществляется в самом файле или командной строке.
Плюсы и минусы Apache
Веб сервер апаче функционирует на базе технологии мультипроцессинга, отсюда вытекают его сильные и слабые стороны.
Любое соединение с сервером образует индивидуальный поток. Для наглядности сравним его с узким тротуаром, на котором помещается всего один пешеход. Причём люди не могут двигаться друг за другом. Следующий может пройти по тротуару только в том случае, если предыдущий успел дойти до конца.
Возвращаясь к Apache, второе соединение невозможно до тех пор, пока первое не будет завершено.
Такой подход имеет один серьёзный недостаток – повышенную вероятность перегрузки. Число потоков не бесконечно. И когда пользователей становится много, работоспособность программного обеспечения снижается.
Кроме того, доступность системы становится её недостатком. Ведь злоумышленники тоже могут создать свой модуль или прошить в нём вредоносный код, вирусы. Чтобы избежать проблем, важно внимательно выбирать модули, которые планируете использовать. Ставьте их только в том случае, если уверены в разработчиках и доверяете им.
Иногда лишних модулей слишком много. Для быстрой и удобной работы их приходится отключать вручную.
Зато у него много достоинств.
- Бесплатное использование, в том числе для коммерческих целей.
- Открытый исходный код, благодаря которому он легко адаптируется под индивидуальные требования пользователей.
- Совместимость с различным серверным программным обеспечением за счёт поддержки множества языков программирования.
- Простая и удобная настройка apache с возможностью масштабирования.
- Совместимость с разнообразными CMS.
- Поддержка технологий FastCGI и CGI.
- Возможность применения СУБД для аутентификации пользователей.
- Обширная база знаний. Так как работа над данным IT продуктом началась ещё в 1998 году, за время его существования было создано огромное количество инструкций под самые разнообразные ситуации.
Альтернативы Apache
Исходя из плюсов и минусов Apache, можно сделать вывод, что при повышенных нагрузках на сервер он вызывает торможение. Когда он только появился, был уникальным и функциональным продуктом. Сейчас для широкого перечня задач существуют более практичные альтернативы, у которых системные требования ниже. Рассмотрим самые известные из них.
- Nginx. Прекрасный вариант для отображения статичного контента. Может использоваться как HTTP и обратный прокси-сервер, почтовый прокси-сервер.
- XAMPP. Удобный бесплатный дистрибутив Apache, в котором содержатся MariaDB, PHP и Perl .
- Serva 32/64. Автоматизированный сервер PXE Solution Solution Accelerator. Принцип его работы базируется на портативном многосерверном механизме со множеством протоколов.
- Lighttpd. Веб сервер создавался специально для использования в проектах, требовательных к скорости передачи данных.
- Caddy. Расширяемый кроссплатформенный веб-сервер с открытым исходным кодом.
- Tomcat. Контейнер сервлетов для обработки спецификации Java.
- Microsoft IIS. Набор сервисов с целью глубокой интеграции и поддержки продуктов Microsoft.
- Apache kafka – стриминговая платформа для хранения, обработки и доставки большого объёма данных в реальном времени.
На самом деле список очень длинный. При желании можно подобрать оптимальное решение для конкретной задачи.
Как установить apache
Установка apache возможна на операционной системе windows и linux. Инструкция несложная.
Скачайте последнюю версию дистрибутива. Откройте файл, примите лицензионное соглашение. Затем в открывшейся форме заполните все поля с указанием действующего адреса электронной почты.
В следующем окне нужно выбрать пункт «Custom» и нажать «далее».
Создайте и выберете соответствующую папку для установки. Нажмите «Install», а после завершения процесса «Finish».
Как запустить apache
На нижней панели управления появится иконка веб сервера.
Если кликнуть по нему правой кнопкой мыши, откроется доступ к системным службам. Это и есть ответ на вопрос, как включить apache. Всё очень просто.
Как повысить производительность apache
Чтобы обслуживать много сайтов параллельно, каждому виртуальному хосту требуется своя конфигурация.
В Ubuntu они расположены в каталоге /etc/apache2/sites-available внутри файла 000-default.conf.
В первой строке указана директива с параметром 80. Это используемые IP-адрес и порт.
В строчке №3 «ServerAdmin» нужно указать актуальный e-mail. В строчке №4 «DocumentRoot» содержится доступ к файловой системе, корневой каталог. Важно проконтролировать, чтобы он не заканчивался символом «/». В строке №8 «VirtualHost» указан файл, где сохраняются ошибки apache. В строке №9 «CustomLog» применяется для регистрации запросов.
Чтобы добавить ещё один виртуальный хост, необходимр создать каталог, для использования в качестве document root, а также базовую страницу – именно её увидит пользователь, когда откроет сайт.
Файлы виртуальных хостов хранятся в каталоге /etc/apache2/sites-available.
В минимальной конфигурации появится ещё одна директива «ServerName», определяющая виртуальный хост. Файл нужно сохранить как example.conf.
Затем введите команду «a2ensite» для формирования символической ссылки в каталог. Перезагрузите конфигурацию сервера.
Как проверить apache
Важно добавить запись в файл /etc/hosts того устройства, с которого выполняется связь с сайтом.
$ sudo echo “192.168.122.241 www.example.local” >> /etc/hosts
Так вы связываете адрес сервера с названием виртуального хоста. Указание IP-сервера напрямую ссылался бы на виртуальный хост по умолчанию. Теперь, если зайти с клиентского компьютера на указанный адрес, откроется страничка, которую настраивали ранее.
Заключение
Apache – практичное решение для быстрого запуска сайтов. Он совместим с внушительным списком IT продуктов и языков программирования, за счёт чего имеет гибкие возможности для расширения функционала.
И хотя у продукта хорошая техподдержка и к нему прилагается большое количество инструкций, для повышения производительности пользователям потребуются профильные знания.
Туториал: как использовать apache
Источник: www.nic.ru
Введение в Apache
Diana Eftaiha Last updated Jul 12, 2012
Read Time: 10 min
Если Apache всегда казался вам черным ящиком? Пришло время узнать, что происходит за кулисами!
Apache — самый популярный веб-сервер.
Задача веб-сервера заключается в том, чтобы принимать запросы от клиентов и отправлять ответы на эти запросы. Веб-сервер получает URL-ссылку, переводит его в имя файла (для статических запросов) и отправляет этот файл через Интернет с локального диска или, на пример, переводит его на имя программы (для динамических запросов), выполняет ее, а затем отправляет выходные данные этой программы обратно через Интернет запрашивающей стороне. Если по какой-либо причине веб-сервер не смог обработать и завершить запрос, вместо этого он отправит сообщение об ошибке. Слово, веб-сервер, может ссылаться на сам компьютер (компьютер / оборудование) или на программное обеспечение, которое получает запросы и отправляет ответы.
Apache является самым популярным веб-сервером (после него идет Microsoft IIS). Можно назвать несколько причин его популярности:
- Его можно бесплатно скачать и установить.
- У него открытый исходный код: он доступен всем и каждому, что в принципе позволяет любому человеку (кому это по силам) настроить код, оптимизировать его и исправить ошибки и недочеты в безопасности. Пользователи могут добавлять новые функции и писать новые модули.
- Он подходит для любых потребностей: Apache можно использовать для небольших сайтов с одной или двумя страницами или для больших веб-сайтов с сотнями и тысячами страниц, который каждый месяц обслуживает миллионы постоянных посетителей. Он может обслуживать как статический, так и динамический контент.
Что такое Apache?
Функциональность, которая вам не нужна или важна, может быть легко удалена.
HTTP-сервер Apache — это программное обеспечение (или программа), которое работает в фоновом режиме в соответствующей операционной системе, поддерживает многозадачность и предоставляет услуги для других приложений, которые к ней подключаются, например, клиентские веб-браузеры. Apache был впервые разработан для работы с операционными системами Linux / Unix, но позже был адаптирован для работы в других системах, включая Windows и Mac. Бинарный файл Apache, работающий под UNIX, называется HTTPd (сокращенно для HTTP-daemon), а под win32 называется Apache.exe.
Установка Apache на Linux не требует много навыков программирования (хотя это не слишком легко). Его установка на платформе Windows прямолинейна, так как вы можете запускать ее через графический интерфейс пользователя.
Оригинальное ядро Apache является довольно простым и содержит ограниченное количество функций. Его сила скорее связана с дополнительной функциональностью, внедренной во многие модули, которые написаны программистами и могут быть установлены для расширения возможностей сервера.
Чтобы добавить новый модуль, все, что вам нужно сделать, это установить его и перезапустить сервер Apache. Функциональность, в которой вы не нуждаетесь или хотите, может быть легко удалена, что на самом деле считается хорошим моментом, так как она делает сервер маленьким и легким, он начинает работать быстрее, потребляет меньше системных ресурсов и памяти и делает сервер менее подверженным уязвимостям в плане безопасности. Сервер Apache также поддерживает сторонние модули, некоторые из которых были добавлены в Apache 2 как постоянные функции. Сервер Apache очень легко интегрируется с другими приложениями с открытым исходным кодом, такими как PHP и MySQL, что делает его еще более мощным, чем он есть.
Веб-сервер в его простейшей форме — это компьютер со специальным программным обеспечением и подключением к Интернету, которое позволяет ему взаимодействовать с другими устройствами.
Каждое устройство, подключенное к сети, имеет IP-адрес, через который другие подключаются к нему и общаются с ним. Этот IP-адрес похож на обычный адрес, который вам нужен в реальной жизни, чтобы позвонить или посетить кого-то. Если у них нет адреса, вы не знаете, как позвонить или связаться с ними. IP-адреса служат точно для такой же цели. Если у устройства не было такого устройства, другие компьютеры в той же сети не знали бы, как его достичь.
Сервер Apache предлагает ряд услуг, которые клиенты могут использовать. Эти службы предлагаются с использованием различных протоколов через разные порты и включают в себя: протокол передачи гипертекста (HTTP), обычно через порт 80, простой протокол передачи почты (SMTP), обычно через порт 25, службу доменных имен (DNS) для сопоставления доменных имен их соответствующие IP-адреса, обычно через порт 53 и протокол передачи файлов (FTP) для загрузки и скачивания файлов, обычно через порт 21.
Как работает Apache
Основная роль Apache связана с коммуникацией по сетям и использует протокол TCP / IP (протокол управления передачей / интернет-протокол, который позволяет устройствам с IP-адресами в одной сети взаимодействовать друг с другом).
Протокол TCP / IP представляет собой набор правил, которые определяют, как клиенты обрабатывают запросы и как реагируют серверы, и определяют, как данные передаются, доставляются, принимаются и подтверждаются.
Сервер Apache настроен для работы через файлы конфигурации, в которые добавляются директивы для управления его поведением. В своем состоянии ожидания Apache прослушивает IP-адреса, указанные в его файле конфигурации (HTTPd.conf). Всякий раз, когда он получает запрос, он анализирует заголовки, применяет правила, указанные для него в файле Config, и принимает меры.
Но на одном сервере может размещаться множество веб-сайтов, а не только один, но для внешнего мира они кажутся отделенными друг от друга. Чтобы достичь этого, каждому из этих сайтов должно быть присвоено другое имя, даже если все они будут отображаться в конечном итоге на одном и том же компьютере. Это достигается за счет использования так называемых виртуальных хостов.
Поскольку IP-адреса трудно запомнить, мы, как посетители определенных сайтов, обычно вводим соответствующие им имена доменов в поле URL-адреса в наших браузерах. Затем браузер подключается к DNS-серверу, который переводит имена доменов на их IP-адреса. Затем браузер берет возвращаемый IP-адрес и подключается к нему. Браузер также отправляет Host header с запросом, чтобы, если сервер размещает несколько сайтов, он будет знать, какой из них должен обслуживать.
Например, ввод текста на www.google.com в поле адреса вашего браузера может отправить следующий запрос на сервер по этому IP-адресу:
GET / HTTP/1.1
Host: www.google.com
Первая строка содержит несколько фрагментов информации. Во-первых, существует метод (в данном случае это GET), URI, который указывает, какую страницу нужно извлечь или какую программу нужно запустить (в этом случае это корневой каталог, обозначенный /), и, наконец, есть HTTP-версия (которая в данном случае является HTTP 1.1).
HTTP — это протокол без ответа.
HTTP — это протокол без ответа. Это набор правил, регулирующих связь между клиентом и сервером. Клиент (обычно, но не обязательно веб-браузер) делает запрос, сервер отправляет ответ, а связь прекращается. Сервер не ожидает дополнительной связи, как в случае с другими протоколами, которые остаются в состоянии ожидания после завершения запроса.
HTTP/1.1 200 OK
Date: Sun, 10 Jun 2012 19:19:21 GMT
Источник: code.tutsplus.com
Что такое Apache
Apache является программным обеспечением с открытым исходным кодом для организации веб-сервера. С его помощью обеспечивается работа около 46% всех сайтов. Основная функция Apache это обработка и ответ на HTTP-запросы.
Например, если посетитель хочет загрузить страницу сайта, то его браузер, отправляет запрос на сервер, где расположен сайт, а Apache в ответ на запрос отправляет необходимые данные браузеру (HTML-код страницы, стили, файлы скриптов, изображение и т.д.). Также Apache может запускать интерпретатор, например PHP, для генерирования динамических страниц. Сервер и браузер используют для взаимодействия протокол HTTP.
Достоинства Apache:
- Удобство и гибкость настройки
- Функциональность
- Надежность
- Кроссплатформенность
- Отсутствие платы за программу