Содержание

Apache vs Nginx: практический взгляд / Хабр

Введение


Apache и Nginx — 2 самых широко распространенных веб-сервера с открытым исходным кодом в мире. Вместе они обслуживают более 50% трафика во всем интернете. Оба решения способны работать с разнообразными рабочими нагрузками и взаимодействовать с другими приложениями для реализации полного веб-стека.

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

Общий обзор


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

Apache


Apache HTTP Server был разработан Робертом Маккулом в 1995 году, а с 1999 года разрабатывается под управлением Apache Software Foundation — фонда развития программного обеспечения Apache. Так как HTTP сервер это первый и самый популярный проект фонда его обычно называют просто Apache.

Веб-север Apache был самым популярным веб-сервером в интернете с 1996 года. Благодаря его популярности у Apache сильная документация и интеграция со сторонним софтом.

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

Nginx


В 2002 году Игорь Сысоев начал работу над Nginx для того чтобы решить проблему C10K — требование к ПО работать с 10 тысячами одновременных соединений. Первый публичный релиз был выпущен в 2004 году, поставленная цель была достигнута благодаря асинхронной event-driven архитектуре.

Nginx начал набирать популярность с момента релиза благодаря своей легковесности (light-weight resource utilization) и возможности легко масштабироваться на минимальном железе.

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

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

Архитектура обработки соединений


Одно из самых существенных отличий между Apache и Nginx состоит в том как они обрабатывают соединения и отвечают на различные виды трафика.

Apache


Apache предоставляет несколько модулей мультипроцессинга (multi-processing modules, MPM), которые отвечают за то как запрос клиента будет обработан. Это позволет администраторам определять политику обработки соединений. Ниже представлен список MPM-модулей Apache:
  • mpm_prefork — этот модуль создает по одному процессу с одним потоком на каждый запрос. Каждый процесс может обрабатывать только одно соединение в один момент времени. Пока число запросов меньше числа процессов этот MPM работает очень быстро. Однако производительность быстро падает когда число запросов начинает превосходить число процессов, поэтому в большинстве случаев это не самый лучший выбор. Каждый процесс потребляет значительный объем RAM, поэтому этот MPM сложно поддается масштабированию. Но он может быть использован вместе с компонентами, которые не созданы для работы в многопоточной среде. Например, PHP не является потокобезопасным, поэтому этот MPM рекомендуется использовать как безопасный метод работы с
    mod_php
    .
  • mpm_worker — этот модуль создает процессы, каждый из которых может управлять несколькими потоками. Каждый поток может обрабтывать одно соединение. Потоки значительно более эффективны чем процессы, что означает что mpm_worker масштабируется значительно лучше чем mpm_prefork. Так как потоков больше чем процессов это означает, что новое соединение может быть сразу обработано свободным потоком, а не ждать пока освободится процесс.
  • mpm_event — этот модуль похож на mpm_worker, но оптимизрован под работу с keep-alive соединениями. Когда используется mpm_worker соединение будет удерживать поток вне зависимости от того активное это соединение или keep-alive. Mpm_event выделяет отдельные потоки для keep-alive соединений и отдельные потоки для активных соединений. Это позволяет модулю не погрязнуть в keep-alive соединениях, что необходимо для быстрой работы. Этот модуль был отмечен как стабильный в Apache версии 2.4.

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

Nginx


Nginx появился на сцене позднее Apache, по этой причине, его разработчик был лучше осведомлен о проблемах конкурентности, с которыми сталкиваются сайты при масштабировании. Благодаря этим знаниям Nginx изначально был спроектирован на базе асинхронных неблокирующих event-driven алгоритмов.

Nginx создает процессы-воркеры каждый из которых может обслуживать тысячи соединений.

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

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

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

Статический и динамический контент


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

Apache


Apache может раздавать статический контент используя стандартные file-based методы. Производительность таких операций зависит от выбранного MPM.

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

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

Nginx


Nginx не имеет возможности самостоятельно обрабатывать запросы к динамическому контенту. Для обработки запросов к PHP или другому динамическому контенту Nginx должен передать запрос внешнему процессору для исполнения, подождать пока ответ будет сгенерирован и получить его. Затем результат может быть отправлен клиенту.

Для администраторов это означает, что нужно настроить взаимодействие Nginx с таким процессором используя один из протоколов, который известен Nginx’у (http, FastCGI, SCGI, uWSGI, memcache). Это может немного усложнить процесс настройки, в особенности когда вы будете пытаться предугадать какое число соединений разрешить, так как будет использоваться дополнительное соединение с процессором на каждый пользовательский запрос.

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

Распределенная конфигурация против централизованной


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

Apache


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

Так как такие конфигурационные файлы находятся в директриях с контентом, Apache вынужден при обработке каждого запроса проверять не содержит ли каждый компонент запрашиваемого пути файл .htaccess и исполнять директивы в найденных файлах. Это позволяет децентрализовать конфигурирование веб-сервера, что позволяет реализовать на уровне директорий модификацию URL’ов (URL rewrite), ограничения доступа, авторизацию и аутентификацию и даже политики кеширования.

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

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

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

Nginx


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

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

Так как Nginx не позволяет переопределять конфиги на уровне директорий, он может обрабатывать запросы быстрее, ведь ему достаточно сделать один directory lookup и прочитать один конфигурационный файл на каждый запрос (предполагается, что файл найден там где он должен быть по соглашению).

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

Имейте ввиду, что вы можете отключить поддержку .htaccess в Apache, если сказанное выше произвело на вас впечатление.

Интерпретация базирующаяся на файлах и URI


То как веб-сервер интерпретирует запрос и сопоставляет его с ресурсом в системе это еще одна отличительная особенность в этих двух серверах.

Apache


Apache имеет возможность интерпретировать запрос как физический ресурс в файловой системе или как URI, который требует дополнительной обработки. Первый тип запросов использует конфигурационные блоки <Directory> или <File>, второй — блоки <Location>.

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

Apache предоставляет ряд альтернатив на случай когда запрос не соответствует файлу в файловой системе. Использование блоков <Location> это метод работы с URI без отображения на файловую систему. Также возможно использовать регулярные выражения, которые позволяют задать более гибкие настройки для всей файловой системы.

Так как Apache может оперировать и c файловой системой, и с webspace, то он в основном опирается на методы работы с файловой системой. Это видно в некоторых решениях в дизайне архитектуры веб-сервера, например, в использовании файлов .htaccess для конфигурирования на уровне директорий. Документация к Apache не рекомендует использовать URI-блоки для ограничения доступа для запросов к файловой системе.

Nginx


Nginx создан, чтобы работать и в качестве веб-сервера, и в качестве прокси-сервера. По этой причине он работает в первую очередь с URI, транслируя их при необходимости в запросы к файловой системе.

Эта особенность прослеживается в том как для Nginx конструируются и интерпретируются конфигурационные файлы. В Nginx нет способа создать конфигурацию для заданной директории, вместо этого он парсит URI.
Например, основными конфигурационными блоками в Nginx являются <server> и <location>. В блоке <server> определяется хост, который будет обслуживаться, блок <location> отвечает за обработку части URI, которая идет после имени хоста и номера порта. Таким образом, запрос интерпретируется как URI, а не как путь в файловой системе.

В случае запросов к статическим файлам все запросы должны быть отображены (mapped) на путь в файловой системе. Сначала Nginx выбирает блоки server и location, которые будут использованы для обработки запроса и затем объединяет document root с URI, в соответствии с конфигурацией.

Эти подходы (интерпретация запроса как пути в файловой системе и как URI) могут показаться похожими, но тот факт что Nginx рассматривает запросы как URI, а не как пути в файловой системе позволяет ему легче справляться одновременно и с ролью веб-сервера, и с ролью прокси. Nginx конфигурируется так, чтобы отвечать на различные шаблоны запросов. Nginx не обращается к файловой системе до тех пор пока он не готов обслужить запрос, что объясняет почему он не реализует ничего похожего на файлы .htaccess.

Модули


И Apache, и Nginx могут быть расширены при помощи системы модулей, но способы реализации модульной системы принципиально отличаются.

Apache


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

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

Использование модулей не ограничивается лишь обработкой динамических запросов. Среди других возможностей модулей: изменение URL’ов (URL rewrite), аутентификация клиентов, защита сервера, логгирование, кеширование, сжатие, проксирование, ограничение частоты запросов, шифрование. Динамические модули могут значительно расширить функцональность ядра.

Nginx


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

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

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

Модули Nginx реализуют те же возможности, что и модули Apache: проксирование, сжатие данных, ограничение частоты запросов, логгирование, модификация URL’ов, гео-локация, аутентификация, шифрование, потоковое вещание, почтовые функции.

Поддержка, совместимость, экосистема и документация


В процессе использования приложения важными являются экосистема созданная вокруг него и возможность получения поддержки.

Apache


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

Существует много инструментов и веб-проектов идущих в комплекте со средствами запуска самих себя из под Apache. Это относится как к самим проектам, так и к системам управления пакетами.

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

Nginx


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

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

Разработчики стороннего ПО также начинают поддерживать работу с Nginx и некоторые из них уже предлагают на выбор пользователя конфиги для работы или с Apache, или с Nginx. И даже без поддержки приложением работы с Nginx не составляет большого труда написать свой конфиг для интеграции приложения с Nginx.

Совместное использование Apache и Nginx


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

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

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

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

Эта конфигурация позволяет горизонтально масштабировать приложение: вы можете установить несколько бэкенд серверов за одним фронтендом и Nginx будет распределять нагрузку между ними, увеличивая тем самым отказоустойчивость приложения.

Заключение


Как вы можете видеть и Apache, и Nginx — это мощные, гибкие и функциональные инструменты. Для того чтобы выбрать сервер под ваши задачи необходимо определиться с требованиями к нему и провести тесты на всех возможных паттернах использования вашего приложения.

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

Как работает Apache? | Apache или Nginx?

Apache – это веб-сервер или программа, разработанная для администрирования интернет-ресурсов. Считается что этот сервер используется не меньше, чем на 50% ПК, использующих HTTP-серверов.

Главные достоинства, которыми обладает Апач сервер:

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

Разработка ПО Apache Software Foundation ведется открытой группой программистов.

Как работает Apache?

Задача этого веб-сервера (программы) в установлении соединения между браузерами пользователей (Google Chrome, Opera, Yandex, Firefox и прочие) при обмене данными между ними.

Программное обеспечение сервера работает на платформе Windows, Ubuntu и Debian, а также на Unix.

Пример работы: При загрузке домашней страницы вашего сайта, браузер запрашивает данные на вашего сервера, а программа Апач возвращает ответ с запрошенными данными (загруженным видео или изображением).

Взаимодействие сервера и пользователя ведется по протоколу HTTP. Веб-сервер при этом обеспечивает бесперебойность и безопасность соединения.

Установка Apache

Пример установки Apache на ОС Убунту: для установки Апач нужно прописать в консоль команду
apt-get install apache2.

Если устанавливаете Апач не под root, используйте sudo: sudo apt-get install apache2.

Apache или Nginx?

У веб-сервера Апач есть один недостаток: невысокая производительность сайтов с высоким трафиком. Решение этой проблемы использование Апач в тандеме с Инженикс (Nginx).

Особенности Nginx:

  • Обработка запросов пользователей, дающих одновременно более 10 000 запросов.
  • Обработка каждого нового запроса в одном потоке.
  • Архитектура программы построена на обработке событий.
  • Обслуживание сайтов с высокой посещаемостью.

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

Использование модулей в Apache

Модули Апач располагаются в разных директориях:

A2enmod — команда, включающая модули.

A2sismod – команда для отключения модулей.
A2enmod rewrite – команда, с помощью которой на сайте настраиваются запрет доступа к отдельным директориям, перенаправляются пользовательские запросы.

Как скрыть версию Apache?

Чтобы скрыть используемую версию Апач достаточно прописать командные строки

ServerTokens Prod

ServerSignature Off

В конфигурационном файле веб-сервера.

Как перезагрузить версию Apache?

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

Service apache2 restart – команда для перезагрузки версии.

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

Директивы конфигурации веб-сервера Apache | Сетевые технологии

Приведены основные (не все) директивы управления работой веб-сервера Apache2, полное описание доступно на сайте http://httpd.apache.org/.

ServerType
Для этой директивы значением по умолчанию является ServerType standalone. Серверы, работающие в автономном режиме (standalone), запускаются из загрузочных сценариев при запуске системы. Такая установка рекомендуется для улучшения производительности.
В качестве альтернативы режиму standalone можно воспользоваться режимом inetd, который обеспечивается демоном inetd.
Port
В этой директиве задается номер сетевого порта, на котором будет работать ваш сервер, если он запущен в автономном режиме (если используется inetd, то номер порта следует задать в файле /etc/services). Значением по умолчанию для этой директивы является Port 80. Этот порт является стандартным для протокола HTTP (см. порты сетевых сервисов) и рекомендуется для использования на основном сервере вашего Web-узла.
HostnameLookups
Директива HostnameLookups указывает, записывается ли в журнальный файл доменное имя узла или только его IP-адрес. По умолчанию сервер сохраняет имя компьютера, но если ожидаемый объем трафика очень велик, отключение опции HostnameLookups позволит уменьшить нагрузку на сервер. Это делается простым изменением строки на HostnameLookups off.
User и Group
Эти параметры задают действительные идентификаторы пользователя и группы, которые присваиваются серверу, работающему в автономном режиме. По умолчанию в качестве имени пользователя принимается nobody, что является превосходным выбором с точки зрения защиты информации. Ни в коем случае нельзя запускать сервер с привилегиями суперпользователя (root).
В качестве идентификатора группы следует использовать идентификатор какой-нибудь нейтральной группы, имеющейся в системе. Часто используется группа news. Либо можно специально создать для сервера новую группу. Если указанные пользователь и группа не существуют в системе, сервер не будет работать.
ServerAdmin [email protected]
Официальный электронный адрес вебмастера вашего Web-узла.
ServerRoot
В этой директиве задается базовый каталог, в котором будет установлено программное обеспечение HTTP-сервера Apache.
BindAddress
Эта директива используется для компьютеров, имеющих несколько сетевых интерфейсов. С ее помощью можно устанавливать прослушивание сервером еще какого-то из IP-адресов компьютера. По умолчанию эта директива закомментирована, и сервер производит прослушивание всех адресов компьютера.
ErrorLog /usr/local/apache/logs/error_log и CustomLog /usr/local/apache/logs/access_log common
При помощи этих двух директив задается путь к log-файлам, в которых регистрируются ошибки и попытки доступа к серверу соответственно. В файле, указанном в директиве ErrorLog, сервер сохраняет сообщения диагностики, включая сообщения об ошибках, выдаваемые сценариями CGI. В файле, указанном в директиве CustomLog, сервер сохраняет все запросы клиентов. Если включена описанная выше опция HostnameLookups, то вместе с запросами регистрируются имена компьютеров.
ServerName
Директива ServerName позволяет задать имя хоста, возвращаемое клиенту. Имя, которое вы определяете здесь, должно быть зарегистрированным доменным именем вашего хоста. Если сервер не имеет зарегистрированного имени, вы можете указать здесь его адрес IP, но вам придется обращаться к нему по адресу (например, http://192. 168.0.1/) и это может сильно осложнить переадресацию ресурсов.
Timeout
Это промежуток времени в секундах (по умолчанию &mdash 300), в течение которого сервер ждет продолжения недополученного запроса или продолжает попытки возобновления приостановленной передачи ответа.
KeepAlive
KeepAlive является свойством протокола HTTP 1.1, позволяющим ускорить обработку запросов путем удержания соединения и выполнения нескольких запросов. В HTTP 1.0 передача Web-страницы с четырьмя встроенными изображениями потребовала бы пять отдельных соединений, а с использованием KeepAlive все последовательные запросы производятся в рамках одного соединения. По умолчанию &mdsh; KeepAlive On
MaxClients
Директива MaxClients устанавливает максимальное число копий сервера, которые могут выполняться одновременно. Когда достигается этот предел (по умолчанию — 150), новые запросы получают отказ. Если вам не хочется отказывать пользователям, не устанавливайте слишком маленькое значение. Медленный ответ все-таки лучше, чем отказ от обслуживания.
Listen
Эта директива позволяет привязать Apache к конкретному адресу IP, и/или порту, в дополнение к порту, определенному по умолчанию.
DocumentRoot
В этой директиве задается каталог, из которого берутся передаваемые клиентам документы. Можно предоставлять клиентам и файлы, находящиеся в других каталогах, — для этого используются символьные ссылки.
UserDir public_html
Название каталога, которое прибавляется к именам пользовательских домашних каталогов при получении запроса ~user (напр.»http://www.example.com/~user»). Если не требуется использовать возможность пользовательских каталогов, следует указать UserDir DISABLED.
DirectoryIndex index.html
Эта директива позволяет задать название документа, возвращаемого по запросу, который не содержит в строке URI названия документа. Если вы указываете несколько имен, разделяйте их пробелами. Пример:
DirectoryIndex index.html index.php index.htm default.html
Сервер будет искать перечисленные файлы в соответствующем порядке.
IndexOptions FancyIndexing
При получении запроса на передачу каталога сервер Apache:
  • находит файл, указанный в директиве DirectoryIndex (если таковой существует), и передает его клиенту;
  • если файл DirectoryIndex не существует, передает клиенту оглавление каталога.

Если выбрана опция Fancylndexing, то в оглавлении используются значки и описания файлов. Если эта опция отключена, сервер представляет оглавление в более простом виде.
AccessFileName
Имя файла, который сервер ищет в каждом каталоге для определения прав доступа. По умолчанию — .htaccess (с точкой в начале).

Чтобы подсказать браузеру, какие файлы ему предстоит обрабатывать, сервер формирует определенный код типа документа, основываясь на спецификации MIME — Multipurpose Internet Mail Extensions — многоцелевые почтовые расширения Internet) и передает этот код в заголовке HTTP-протокола.

DefaultType
Директива DefaultType определяет MIME-тип, который будет использоваться для какого-либо документа, если сервер не сможет определить его по иным признакам, например по расширению. По умолчанию значение DefaultType — text/plain. Если большая часть файлов бинарники (программы, картинки и т.п.) стоит изменить значение на «application/octet-stream», чтобы предотвратить попытку браузера показать содержимое двоичного файла.
AddEncoding x-compress Z и AddEncoding x-gzip gz tgz
Эти директивы позволяют сжимать отдаваемые документы перед отправкой, что экономит трафик и ускоряет загрузку. Браузеры, поддерживающие эту возможность (Mozilla, SeaMonkey, FireFox), распаковывают полученные файлы «на лету».
Redirect
Директива Redirect позволяет переадресовать запрос к ранее существовавшему в именном пространстве сервера документу на его новый адрес. Пример:
Redirect http://example.com/old-location/test.html http://example.com/new-location/test.html
Alias
Директивы Alias дают возможность предоставлять доступ к документам, находящимся не только в корневом каталоге сервера (DocumentRoot) и его подкаталогах, но и в других каталогах. По умолчанию в директиве Alias задан только один псевдоним — /icons, используемый директивами Addlcon и AddIconByType. Обратите внимание, что если вы включаете завершающий слэш в «псевдоним», то сервер потребует его присутствия и в URL. Пример:
Alias /icons/ "/usr/local/apache/icons/"
ScriptAlias
Директива указывает каталог, который содержит серверные скрипты. Свойства ScriptAlias-ов такие же, как и у просто Alias-ов, кроме того, что документы в заданном директивой каталоге считаются приложениями и выполняются на сервере, а не отправляются клиенту. К директиве ScriptAlias применяются те  же правила в отношении завершающего «/», что и к Alias.Разрешается добавлять неограниченное число директив ScriptAlias. Примеры:
ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
ScriptAlias /user1/ "/usr/home/user1/public_html/cgi-bin/"
AddType
Директива AddType позволяет добавить описания типов файлов (помимо MIME-types) и порядок их обработки. Примеры:
#файлы с расширением .shtml должны обрабатываться как html файлы
AddType text/html .shtml
#файлы с расширением .php должны запускаться как php файлы
AddType application/x-httpd-php .php
#файлы с расширением .html должны запускаться и как php файлы
AddType application/x-httpd-php .html
#файлы с расширением .pl должны запускаться как cgi файлы
AddType application/x-httpd-cgi .pl
AddHandler
Сервер Apache имеет возможности модификации файлов определенных типов перед отправкой их пользователю. Директива AddHandler ставит в соответствие расширению файла определенное действие. Например:
AddHandler server-parsed .shtml
включает поддержку технологии SSI (Server-side Includes) и Apache выполняет разбор файлов .shtm на предмет поиска в них директив SSI. Если изменить параметр так:
AddHandler server-parsed .html
то Apache будет парсить и .html-файлы.
Функция, указанная в директиве AddHandler, не обязательно должна являться встроенной функцией сервера. Директива Action может ставить в соответствие функции из AddHandler сценарий CGI. Например, следующие строки в файле srm.conf сначала указывают серверу, что функция foo поставлена в соответствие сценарию bar.pl, который всякий раз запускается при обращении к файлам с расширением .ext:
Action foo /user/cgi-bin/bar.pl
AddHandler foo .ext
ErrorDocument
Эта директива позволяет переопределить сообщения об ошибках, сопоставив в соответствие кодам ошибок HTTP-сервера текстовые сообщения и/или адреса URL на том же сервере. Например:
ErrorDocument 404 "Этого файла нет, не было и не будет на сервере!"
Options
Эта директива перечисляет список опций, применяемых к указанному каталогу. Опции могут иметь значения «None», «All» или любую комбинацию из «Indexes», «Includes», «FollowSymLinks», «ExecCGI» или «MultiViews». Например, такая конфигурация определяет порядок отображения индексной страницы, разрешает серверные включения (SSI) и переход по символьным ссылкам:
Options Indexes Includes FollowSymLinks
AllowOverride
С параметром none блокирует использование файла .htaccess, с параметром all — разрешает перекрывать дефолные настройки директивами из .htaccess.
Order
Директива, вместе с директивами Allow и Deny, определяющая порядок обращения к ресурсам в соответствии с правами доступа. Пример:
Order allow,deny
Allow from all

Анатольев А.Г., 06.08.2013

Постоянный адрес этой страницы:

Apache Kafka – Аналитическая платформа – КОРУС Консалтинг

Основные отличия Apache Kafka от традиционных систем обмена сообщениями:

  • Apache Kafka – распределенная система, поэтому она приспособлена к масштабированию
  • Высокая производительность как в случае публикации сообщений, так и в случае подписки на них
  • Apache Kafka сохраняет сообщения на диске, поэтому может использоваться для пакетной передачи данных (например, для ETL-процессов: извлечение, трансформация и загрузка данных)

Компоненты архитектуры Apache Kafka:

  1. Поток сообщений определенного типа называется темой (Topic). Сообщение – это полезный для происходящего процесса комплект данных, а тема – это категория, в соответствии с которой публикуется то или иное сообщение.
  2. Производитель (Producer) – это любой процесс, публикующий сообщения в соответствующей теме.
  3. Опубликованные сообщения отправляются на хранение на кластер серверов (brokers или кластеры Apache Kafka). Брокер – это диспетчер очереди, которая принимает и отдает сообщения между отдельными приложениями внутри системы, где приложения должны пересылать данные друг другу.
  4. Потребитель (Consumer) может подписаться на одну или несколько тем и использовать сообщения, забирая данные от брокеров.

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

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

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

Apache SSL: как настроить SSL-сертификат для сервера Apache

Защищенное соединение между веб-браузером и сервером – гарантия того, что клиенты могут совершать безопасные транзакции, не опасаясь за кражу своих данных. Идеальный способ создать такое соединение – это воспользоваться связкой из Apache 2 (лидера в области серверного программного обеспечения для Linux) и SSL (протокола безопасной связи). В данной статье мы покажем вам, как защитить соединение между сервером Apache и пользовательским браузером c помощью SSL-сертификата.

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

Установка SSL для Apache

Установка SSL для Apache достаточно проста, в ней можно выделить несколько важных шагов. Первый шаг – это получение сертификата. Вы всегда можете приобрести один из следующих SSL-сертификатов на сайте ЛидерТелеком:

  • EssentialSSL – один из самых недорогих SSL-сертификатов, который предполагает только проверку по домену.
  • InstantSSL – SSL-сертификат, подтверждающий существование той или иной организации.
  • EV SSL – SSL-сертификат с расширенной проверкой организации, позволяющий добиться зеленой строки в браузере и максимального доверия со стороны клиентов, а также обеспечивает высочайшую надежность.

Вне зависимости от того, какой сертификат вы выбрали для себя, вам понадобится пройти следующие шаги для его установки на сервер Apache.

После выпуска сертификата вам понадобится провести настройку Apache. Процесс настройки Apache для SSL следующий:

  1. Сохраняем основной и промежуточный сертификат в отдельную папку на сервере вместе с приватным ключом.
  2. Открываем конфигурационный файл Apache в текстовом редакторе. Конфигурационные файлы Apache обычно хранятся в /etc/httpd/ или /etc/apache2/. Основной конфигурационный файл обычно называется httpd.conf или apache2.conf. В большинстве случаев блоки <VirtualHost> будут находиться в самом низу файла httpd.conf. Иногда блоки <VirtualHost> могут располагаться в отдельных файлах в каталогах /etc/httpd/vhosts.d/ или /etc/httpd/sites/, либо в файле ssl.conf. Найти место, где располагается SSL-конфигурация в дистрибутивах Linux, можно с помощью grep:

grep -i -r «SSLCertificateFile» /etc/httpd/

В данном случае «/etc/httpd/» – это базовая директория в вашей сборке Apache.

  1. Если вы хотите, чтобы ваш сайт был доступен как через безопасное (https), так и через небезопасное (http) соединение, то в таком случае вам нужно будет создать виртуальный хост для каждого типа соединения. Скопируйте уже существующий виртуальный хост для http-соединения и смените порт с 80 на 443.
  2. Добавьте к файлу следующие строки (выделены жирным):

<VirtualHost 192.168.0.1:443>

DocumentRoot /var/www/leader_site

ServerName www.leader_site.com

SSLEngine on

SSLCertificateFile /etc/ssl/crt/bazov_cert.crt

SSLCertificateKeyFile /etc/ssl/crt/private.key

SSLCertificateChainFile /etc/ssl/crt/promejut_cert.crt

</VirtualHost>

  1. Измените имена файлов и путей, чтобы они соответствовали вашим файлам сертификата:
  • SSLCertificateFile – файл основного сертификата для вашего домена.
  • SSLCertificateKeyFile – файл с ключом, сгенерированный в процессе создания CSR.
  • SSLCertificateChainFile – файл промежуточного сертификата (если он имеется), предоставленный вашим центром сертификации. Если эта директива не работает, попробуйте вместо нее использовать SSLCACertificateFile.
  1. Сохраняем изменения и тестируем конфигурацию Apache. Лучше всего заранее протестировать конфигурацию на наличие различных синтаксических ошибок, иначе Apache просто не запустится. Для тестирования выполняем следующую команду:

apachectl configtest

  1. Делаем рестарт Apache с помощью команды:

apachectl restart

Или останавливаем и вновь запускаем сервер:

apachectl stop

apachectl start

Если вы столкнулись с проблемами при установке SSL-соединения и вы не в силах самостоятельно устранить их, вы всегда можете связаться с нашими специалистами по представленным на сайте контактам. Мы поможем вам настроить SSL на Apache без лишних проблем.


PHP: Если PHP установлен как модуль Apache

Если PHP используется как модуль Apache, он наследует права пользователя, с которыми был запущен веб-сервер (обычно это пользователь «nobody»). Это влияет на обеспечение безопасности и реализацию авторизации. Например, если вы используете PHP для доступа к базе данных, которая не имеет встроенного механизма разграничения доступа, вам придётся обеспечить доступ к БД для пользователя ‘nobody’. В таком случае вредоносный скрипт может получить доступ к базе данных и модифицировать её, даже не зная логина и пароля. Вполне возможна ситуация, при которой веб-паук неверными запросами на страницу администратора базы данных может уничтожить все ваши базы данных. Вы можете избежать такой ситуации при помощи авторизации Apache или разработав собственную модель доступа, используя LDAP, файлы .htaccess или любые другие технологии, внедряя соответствующий код в ваши PHP-скрипты.

Достаточно часто используются такие настройки безопасности, при которых PHP (имеется в виду пользователь, с правами которого выполняется Apache) имеет минимальные привилегии, например, отсутствует возможность записи в пользовательские директории с помощью PHP. Или, например, отсутствует возможность работать с базой данных. При этом система безопасности не позволяет записывать как «хорошие», так и «плохие» файлы, или провести «хорошие» или «плохие» транзакции.

Распространённой ошибкой является запуск Apache с правами суперпользователя или любое другое расширение полномочий веб-сервера.

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

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

Apach

О компании

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

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

APACH – это независимый бренд, производящий профессиональное оборудование для общественного питания, которое наилучшим образом отвечает требованиям и ожиданиям международных и российских клиентов. Важно, что 100 % оборудования производится в Италии.

Продукция

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

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

Печи для пиццы APACH с одной или двумя камерами предназначены для одновременной выпечки 4, 6 или 9 пицц, а аппараты для копчения – это мультифункциональные устройства, которые могут быть использованы не только для копчения, но и в качестве низкотемпературных печей, тепловых шкафов. Кроме этого, у APACH есть тепловые тележки для кратковременного хранения блюд перед подачей их на стол и тепловые модульные линии любой комплектации по желанию клиента.

Холодильное оборудование APACH экологически безопасно, долговечно и износостойко. Оно предназначено для интенсивной эксплуатации в тяжелых условиях коммерческих кухонь, при этом удобно в использовании и простое в обслуживании. Представлено следующими аппаратами:

  • саладетты;
  • столы холодильные и морозильные с разным количеством дверей;
  • шкафы холодильные и морозильные;
  • бласт-чиллеры и шок-фризеры.

Посудомоечные машины APACH подойдут для любого предприятий общепита. Их легко установить и обслуживать, Они высокопроизводительные, при этом экономично расходуют воду, электричество и моющие средства. Компания может предложить следующие типы посудомоечных машин:

  • конвейерные;
  • купольные
  • фронтальные;
  • для мойки противней и столовых приборов.

Что такое апач? Углубленный обзор веб-сервера Apache

Глоссарий

время доступа

17 июня, 2020

песочные часы пустые

5 мин чтения

person_outline

Домантас Г.

Apache — это бесплатное программное обеспечение для веб-серверов с открытым исходным кодом, которое поддерживает около 40% веб-сайтов по всему миру. Официальное название — Apache HTTP Server, он поддерживается и разрабатывается Apache Software Foundation.

Он позволяет владельцам веб-сайтов размещать контент в Интернете — отсюда и название «веб-сервер». Это один из самых старых и надежных веб-серверов, первая версия которого была выпущена более 20 лет назад, в 1995 году.

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

Здесь, в Hostinger, наша инфраструктура веб-хостинга использует Apache параллельно с NGINX, еще одним популярным программным обеспечением для веб-серверов.Эта конкретная установка позволяет нам получить лучшее из обоих миров. Это значительно улучшает производительность сервера, компенсируя слабые стороны одного программного обеспечения сильными сторонами другого.

Перейдите на хостинг Hostinger сегодня и получите 30-дневную гарантию возврата денег!

Начните здесь


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

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

Задача веб-сервера — обслуживать веб-сайты в Интернете. Для достижения этой цели он действует как посредник между сервером и клиентскими машинами. Он извлекает контент с сервера по каждому запросу пользователя и доставляет его в Интернет.

Самая большая проблема веб-сервера — одновременно обслуживать множество разных пользователей, каждый из которых запрашивает разные страницы. Веб-серверы обрабатывают файлы, написанные на разных языках программирования, таких как PHP, Python, Java и других.

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

Как работает веб-сервер Apache?

Хотя мы называем Apache веб-сервером, это не физический сервер, а скорее программное обеспечение, работающее на сервере. Его задача — установить соединение между сервером и браузерами посетителей веб-сайтов (Firefox, Google Chrome, Safari и т. Д.).) при передаче файлов между ними (структура клиент-сервер). Apache — это кроссплатформенное программное обеспечение, поэтому оно работает как на серверах Unix, так и на Windows.

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

Apache обладает широкими возможностями настройки, поскольку имеет модульную структуру. Модули позволяют администраторам сервера включать и выключать дополнительные функции. У Apache есть модули для безопасности, кеширования, перезаписи URL, аутентификации по паролю и многого другого. Вы также можете настроить свои собственные конфигурации сервера с помощью файла с именем .htaccess , , который является файлом конфигурации Apache, поддерживаемым всеми планами Hostinger.

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

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

Apache против NGINX

Nginx, произносится как Engine-X, представляет собой новое веб-серверное приложение, впервые выпущенное в 2004 году. На сегодняшний день оно приобрело довольно популярную популярность среди владельцев веб-сайтов. Nginx был создан для решения так называемой проблемы c10k, что означает, что веб-сервер, использующий потоки для обработки пользовательских запросов, не может одновременно управлять более чем 10 000 подключений.

  1. Поскольку Apache использует структуру на основе потоков, владельцы веб-сайтов с интенсивным трафиком могут столкнуться с проблемами производительности. Nginx — один из веб-серверов, решающих проблему c10k, и, вероятно, самый успешный из них.
  2. Nginx имеет архитектуру, управляемую событиями, которая не создает новый процесс для каждого запроса. Вместо этого он обрабатывает каждый входящий запрос в одном потоке. Этот главный процесс управляет несколькими рабочими процессами, которые выполняют фактическую обработку запросов.Модель Nginx, основанная на событиях, эффективно распределяет пользовательские запросы между рабочими процессами, что обеспечивает лучшую масштабируемость.
  3. Если вам нужно управлять веб-сайтом с высокой посещаемостью, Nginx — отличный выбор, поскольку он может делать это с минимальными затратами ресурсов. Не может быть совпадением, что его используют многие популярные веб-сайты, такие как Netflix, Hulu, Pinterest и Airbnb.
  4. Однако для малых и средних игроков Apache имеет ряд преимуществ перед Nginx, таких как простая конфигурация, множество модулей и удобная для новичков среда.

Apache против Tomcat

Tomcat — это веб-сервер, также разработанный Apache Software Foundation, поэтому его официальное название — Apache Tomcat. Это также HTTP-сервер, однако он поддерживает приложения Java, а не статические веб-сайты. Tomcat может запускать несколько различных спецификаций Java, таких как Java Servlet, JavaServer Pages (JSP), Java EL и WebSocket.

  1. Tomcat был создан специально для приложений Java, а Apache — это HTTP-сервер общего назначения.Вы можете использовать Apache вместе с разными языками программирования (PHP, Python, Perl и т. Д.) С помощью соответствующего модуля Apache (mod_php, mod_python, mod_perl и т. Д.).
  2. Хотя вы можете использовать сервер Tomcat и для обслуживания статических веб-страниц, он менее эффективен для этой цели по сравнению с сервером Apache. Например, Tomcat предварительно загружает виртуальную машину Java и другие библиотеки, связанные с Java, которые вам не понадобятся на большинстве веб-сайтов.
  3. Tomcat также менее настраиваем по сравнению с другими веб-серверами.Например, для запуска WordPress лучшим выбором будет HTTP-сервер общего назначения, такой как Apache или NGINX.

Apache Плюсы и минусы

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

Плюсы :

  1. С открытым исходным кодом и бесплатно, даже для коммерческого использования.
  2. Надежное, стабильное программное обеспечение.
  3. Часто обновляемые регулярные исправления безопасности.
  4. Гибкость благодаря модульной структуре.
  5. Простота настройки, удобство для новичков.
  6. Кросс-платформенный (работает как на серверах Unix, так и на Windows).
  7. Работает «из коробки» с сайтами WordPress.
  8. Огромное сообщество и доступная поддержка в случае возникновения каких-либо проблем.

Минусы :

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

Дополнительная литература

Хотите узнать больше о хостинге и разработке веб-сайтов? Ознакомьтесь с этими руководствами:

Итак, что такое Apache?

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

Вы можете установить веб-сайт WordPress на веб-сервер Apache без каких-либо настроек.Кроме того, Apache без проблем работает со многими другими системами управления контентом (Joomla, Drupal и т. Д.), Веб-фреймворками (Django, Laravel и т. Д.) И языками программирования. Это делает его отличным выбором для всех типов платформ веб-хостинга, таких как VPS или виртуальный хостинг.

Что такое веб-сервер 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 году.

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

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

Веб-сервер Apache имеет модули, которые добавляют дополнительные функции к его программному обеспечению, такие как MPM (для обработки режимов многопроцессорности) или mod_ssl для включения поддержки SSL v3 и TLS (рекомендуемая литература: TLS vs 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 растет.

Apache и NGINX Результаты Google Trends с 2004 г.

Как проверить, какой веб-сервер вы используете

Если вы хотите узнать, используете ли вы Apache или NGINX, вы можете часто (но не всегда) просматривать HTTP-заголовок вашего сайта.

Чтобы просмотреть HTTP-заголовок своего сайта, вы можете:

  • Используйте вкладку Сеть Инструментов разработчика Chrome
  • Используйте такой инструмент, как Pingdom или GTmetrix

HTTP-заголовок Apache

Однако этот метод может не работать, если вы используете такой сервис, как Cloudflare.

Apache и логотип Apache с пером являются товарными знаками Apache Software Foundation.


Если вам понравилось это руководство, то вам понравится наша поддержка.Все планы хостинга Kinsta включают круглосуточную поддержку наших опытных разработчиков и инженеров WordPress. Общайтесь с той же командой, которая поддерживает наших клиентов из списка Fortune 500. Ознакомьтесь с нашими тарифами

Что такое апач? Углубленный обзор веб-сервера Apache

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

Apache HTTP Server — это бесплатный веб-сервер с открытым исходным кодом, который доставляет веб-контент через Интернет. Его обычно называют Apache, и после разработки он быстро стал самым популярным HTTP-клиентом в сети.Широко распространено мнение, что Apache получил свое название благодаря истории развития и процессу совершенствования с помощью прикладных исправлений и модулей, но это было исправлено еще в 2000 году. Выяснилось, что название произошло из уважения индейского племени к его устойчивости и долговечности.

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

Архитектура веб-приложений Apache

Apache — это всего лишь один компонент, который необходим в стеке веб-приложений для доставки веб-контента.Один из наиболее распространенных стеков веб-приложений включает LAMP или Linux, Apache, MySQL и PHP.

Linux — это операционная система, которая обрабатывает операции приложения. Apache — это веб-сервер, который обрабатывает запросы и обслуживает веб-ресурсы и контент через HTTP. MySQL — это база данных, в которой хранится вся ваша информация в удобном для запроса формате. PHP — это язык программирования, который работает с apache и помогает создавать динамический веб-контент.

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

Брандмауэры

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

Простой мониторинг и устранение неполадок веб-активности Apache

Получите лучшее представление о системной инфраструктуре и взаимодействии ваших клиентов и клиентов с вашим веб-сайтом и приложениями.

Пейзаж веб-сервера

Интернет состоит из множества различных технологий, и не все из них одинаковы.Хотя Apache, возможно, является одним из самых популярных веб-серверов в сети, есть много других игроков, и ситуация постоянно меняется. Еще в конце 90-х — начале 2000-х годов господство Apache было очень сильным, обслуживая более 50% активных веб-сайтов в Интернете. IIS (Internet Information Services) от Microsoft также был вариантом, но не таким популярным.

Сегодня Apache по-прежнему обслуживает большую часть активных веб-сайтов, но их доля в этой области сократилась с 50% до чуть менее 40% по состоянию на 2018 год, а NGINX, относительно новый игрок на игровом поле веб-серверов, находится на втором месте. примерно 35%, а Microsoft IIS колеблется в районе 8-10%.Каждый год появляется новый урожай веб-приложений с новыми стеками и серверами, поэтому ситуация постоянно меняется.

Почему веб-серверы Apache?

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

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

Некоторые из наиболее популярных модулей, которые можно добавить, — это SSL, поддержка программирования на стороне сервера (PHP) и конфигурации балансировки нагрузки для обработки больших объемов трафика.Apache также можно развернуть в Linux, MacOS и Windows. Если вы узнаете, как настроить Apache в Linux, вы сможете администрировать Apache в Windows и Mac. Единственное различие будет заключаться в путях к каталогам и процессах установки.

Особенности веб-сервера Apache

  • Обработка статических файлов
  • Загружаемые динамические модули
  • Автоиндексирование
  • .htaccess
  • Совместимость с IPv6
  • Поддерживает HTTP / 2
  • FTP-соединения
  • Сжатие и декомпрессия Gzip
  • Регулирование полосы пропускания
  • Perl, PHP , Сценарии Lua
  • Балансировка нагрузки
  • Отслеживание сеанса
  • Перезапись URL
  • Геолокация на основе IP-адреса

Как работает веб-сервер Apache?

Apache функционирует как способ связи по сети от клиента к серверу с использованием протокола TCP / IP.Apache можно использовать для самых разных протоколов, но наиболее распространенным является HTTP / S. HTTP / S или протокол передачи гипертекста (S означает «безопасный») — один из основных протоколов в Интернете, а также тот протокол, которым наиболее известен Apache.

HTTP / S используется для определения того, как сообщения форматируются и передаются через Интернет, с инструкциями для браузеров и серверов о том, как отвечать на различные запросы и команды. Безопасный протокол передачи гипертекста обычно осуществляется через порт 443, а незащищенный протокол — через порт 80.

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

С помощью директивы Listen Apache может принимать и направлять определенный трафик на определенные порты и домены на основе определенных запросов комбинации адреса и порта. По умолчанию Listen работает на порту 80, но Apache может быть привязан к разным портам для разных доменов, что позволяет размещать множество разных веб-сайтов и доменов на одном сервере.Вы можете настроить domain1.com на порт 80, domain2.com на порт 8080 и domain3.com на порт 443, используя HTTPS на Apache.

Как только сообщение достигает места назначения или получателя, оно отправляет уведомление или сообщение ACK, в основном подтверждая первоначальному отправителю, что его данные успешно доставлены. Если произошла ошибка при получении данных или некоторые пакеты были потеряны при передаче, хост или клиент назначения отправляет сообщение Not Acknowledged или NAK, чтобы сообщить отправителю, что данные необходимо повторно передать.

Кто использует веб-сервер Apache?

Веб-серверы Apache HTTP используются более 67% всех веб-серверов в мире. Веб-серверы Apache просты в настройке среды, они быстрые, надежные и очень безопасные. Это делает веб-серверы Apache обычным выбором для лучших в своем классе компаний.

Альтернативы для HTTP-сервера Apache

Хотя веб-серверы Apache очень популярны, они не единственные веб-серверы на рынке. Ниже приведен ряд альтернатив для HTTP-серверов Apache.

  • Nginx
  • Apache Tomcat
  • Node.js
  • Lighttpd
  • Cherokee
  • Microsoft IIS
  • Appweb
  • Hiawatha

HTTP-сервер Apache против Tomcat

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

Заключение: веб-сервер Apache

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

Простой мониторинг и устранение неполадок веб-активности Apache

Sumo Logic помогает определить основные проблемы, сократить время простоя, повысить доступность и улучшить общую производительность системы и удобство работы пользователей.

Определение Apache

Apache — самое популярное программное обеспечение для веб-серверов. Это позволяет компьютеру размещать один или несколько веб-сайтов, к которым можно получить доступ через Интернет с помощью веб-браузера. Первая версия Apache была выпущена в 1995 году группой Apache.В 1999 году группа Apache стала Apache Software Foundation, некоммерческой организацией, которая в настоящее время поддерживает разработку программного обеспечения веб-сервера Apache.

Популярность Apache на рынке веб-хостинга во многом обусловлена ​​его открытым исходным кодом и бесплатным использованием. Таким образом, компании, занимающиеся веб-хостингом, могут предложить решения для веб-хостинга на базе Apache с минимальными затратами. Другое серверное программное обеспечение, такое как Windows Server, требует коммерческой лицензии. Apache также поддерживает несколько платформ, включая операционные системы Linux, Windows и Macintosh.Поскольку многие дистрибутивы Linux также имеют открытый исходный код, комбинация Linux / Apache стала самой популярной конфигурацией веб-хостинга.

Apache может размещать статические веб-сайты, а также динамические веб-сайты, использующие серверные языки сценариев, такие как PHP, Python или Perl. Поддержка этих и других языков осуществляется с помощью модулей или установочных пакетов, которые добавляются к стандартной установке Apache. Apache также поддерживает другие модули, которые предлагают расширенные параметры безопасности, инструменты управления файлами и другие функции.Большинство установок Apache включают модуль перезаписи URL-адресов под названием «mod_rewrite», который стал обычным способом для веб-мастеров создавать собственные URL-адреса.

Хотя программное обеспечение веб-сервера Apache обычно называют просто «Apache», технически его называют «сервером Apache HTTP», поскольку программное обеспечение обслуживает веб-страницы по протоколу HTTP. Когда Apache запущен, его имя процесса — «httpd», что является сокращением от «HTTP-демон».

Обновлено: 7 января 2011 г.

TechTerms — Компьютерный словарь технических терминов

Эта страница содержит техническое определение Apache.Он объясняет в компьютерной терминологии, что означает Apache, и является одним из многих интернет-терминов в словаре TechTerms.

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

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

Подписаться

веб-серверов — Apache | Ubuntu

Apache — наиболее часто используемый веб-сервер в системах Linux. Веб-серверы используются для обслуживания веб-страниц, запрашиваемых клиентскими компьютерами. Клиенты обычно запрашивают и просматривают веб-страницы с помощью приложений веб-браузера, таких как Firefox, Opera, Chromium или Internet Explorer.

Пользователи вводят унифицированный указатель ресурса (URL), чтобы указать на веб-сервер с помощью его полного доменного имени (FQDN) и пути к требуемому ресурсу.Например, для просмотра домашней страницы веб-сайта Ubuntu пользователь вводит только полное доменное имя:

.
  www.ubuntu.com
  

Для просмотра подстраницы сообщества пользователь вводит полное доменное имя, за которым следует путь:

  www.ubuntu.com/community
  

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

Веб-серверы

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

Установка

Веб-сервер Apache2 доступен в Ubuntu Linux. Для установки Apache2:

В командной строке терминала введите следующую команду:

  sudo apt install apache2
  

Конфигурация

Apache2 настраивается путем размещения директив в текстовых файлах конфигурации.Эти директивы разделены между следующими файлами и каталогами:

  • apache2.conf: главный файл конфигурации Apache2. Содержит настройки, которые являются глобальными для Apache2.

  • httpd.conf: исторически основной файл конфигурации Apache2, названный в честь демона httpd. В других дистрибутивах (или более старых версиях Ubuntu) файл может присутствовать. В Ubuntu все параметры конфигурации перенесены на apache2.conf и указанные ниже каталоги, и этот файл больше не существует.

  • conf-available: этот каталог содержит доступные файлы конфигурации. Все файлы, которые ранее находились в /etc/apache2/conf.d , следует переместить в / etc / apache2 / conf-available .

  • conf-enabled: содержит символических ссылок на файлы в / etc / apache2 / conf-available . Когда файл конфигурации имеет символическую ссылку, он будет включен при следующем перезапуске apache2.

  • envvars: файл, в котором установлены переменные среды Apache2 .

  • доступных модов: этот каталог содержит файлы конфигурации для загрузки модулей и их настройки. Однако не все модули будут иметь определенные файлы конфигурации.

  • с включенными модами: содержит символических ссылок на файлы в / etc / apache2 / mods-available . Когда файл конфигурации модуля имеет символическую ссылку, он будет включен при следующем перезапуске apache2.

  • ports.conf: содержит директивы, определяющие, какие TCP-порты прослушивает Apache2.

  • сайтов-доступных: в этом каталоге есть файлы конфигурации для виртуальных хостов Apache2 . Виртуальные хосты позволяют настраивать Apache2 для нескольких сайтов с отдельными конфигурациями.

  • с поддержкой сайтов: с поддержкой модов, с поддержкой сайтов содержит символические ссылки на каталог / etc / apache2 / sites-available .Точно так же, когда файл конфигурации в sites-available имеет символическую ссылку, сайт, настроенный им, будет активен после перезапуска Apache2.

  • magic: инструкции для определения типа MIME на основе первых нескольких байтов файла.

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

Сервер также читает файл, содержащий типы документов mime; имя файла задается директивой TypesConfig , обычно через /etc/apache2/mods-available/mime.conf , который также может включать дополнения и переопределения, и по умолчанию равен /etc/mime.types .

Основные настройки

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

  • Apache2 поставляется с конфигурацией по умолчанию, дружественной к виртуальному хосту. То есть он настроен с одним виртуальным хостом по умолчанию (с использованием директивы VirtualHost ), который можно изменить или использовать как есть, если у вас один сайт, или использовать в качестве шаблона для дополнительных виртуальных хостов, если у вас несколько сайтов. . Если оставить его в покое, виртуальный хост по умолчанию будет служить вашим сайтом по умолчанию, или пользователи сайта увидят, не соответствует ли введенный ими URL-адрес ServerName директиве любого из ваших настраиваемых сайтов.Чтобы изменить виртуальный хост по умолчанию, отредактируйте файл /etc/apache2/sites-available/000-default.conf .

    Примечание

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

    Если вы хотите настроить новый виртуальный хост или сайт, скопируйте этот файл в тот же каталог с выбранным вами именем.Например:

      sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/mynewsite.conf
      

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

  • Директива ServerAdmin указывает адрес электронной почты, который будет объявлен администратору сервера. Значение по умолчанию — webmaster @ localhost. Его следует изменить на адрес электронной почты, который будет вам доставлен (если вы являетесь администратором сервера).Если на вашем веб-сайте возникла проблема, Apache2 отобразит сообщение об ошибке, содержащее этот адрес электронной почты, чтобы сообщить о проблеме. Найдите эту директиву в файле конфигурации вашего сайта в / etc / apache2 / sites-available.

  • Директива Listen указывает порт и, необязательно, IP-адрес, который Apache2 должен прослушивать. Если IP-адрес не указан, Apache2 будет прослушивать все IP-адреса, назначенные машине, на которой он работает. Значение по умолчанию для директивы Listen — 80.Измените это на 127.0.0.1:80, чтобы Apache2 слушал только ваш интерфейс обратной петли, чтобы он не был доступен для Интернета, на (например) 81, чтобы изменить порт, который он слушает, или оставьте его как есть для Нормальная операция. Эту директиву можно найти и изменить в ее собственном файле, /etc/apache2/ports.conf

  • Директива ServerName является необязательной и указывает, на какое полное доменное имя должен отвечать ваш сайт. Для виртуального хоста по умолчанию не указана директива ServerName, поэтому он будет отвечать на все запросы, которые не соответствуют директиве ServerName на другом виртуальном хосте.Если вы только что приобрели доменное имя mynewsite.com и хотите разместить его на своем сервере Ubuntu, значение директивы ServerName в файле конфигурации вашего виртуального хоста должно быть mynewsite.com . Добавьте эту директиву в новый файл виртуального хоста, который вы создали ранее ( /etc/apache2/sites-available/mynewsite.conf ).

    Вы также можете захотеть, чтобы ваш сайт отвечал на www.mynewsite.com , поскольку многие пользователи сочтут уместным префикс www.Используйте для этого директиву ServerAlias ​​. Вы также можете использовать подстановочные знаки в директиве ServerAlias.

    Например, следующая конфигурация заставит ваш сайт отвечать на любой запрос домена, заканчивающийся на .mynewsite.com .

      ServerAlias ​​* .mynewsite.com
      
  • Директива DocumentRoot указывает, где Apache2 должен искать файлы, составляющие сайт. Значение по умолчанию — / var / www / html, как указано в / etc / apache2 / sites-available / 000-default.conf . При желании измените это значение в файле виртуального хоста вашего сайта и не забудьте при необходимости создать этот каталог!

Включите новый VirtualHost с помощью утилиты a2ensite и перезапустите Apache2:

  sudo a2ensite mynewsite
sudo systemctl перезапустить apache2.service
  

Примечание

Обязательно замените mynewsite на более информативное имя VirtualHost. Один из способов — присвоить файлу имя после директивы ServerName VirtualHost.

Аналогичным образом воспользуйтесь утилитой a2dissite для отключения сайтов. Это может быть полезно при устранении проблем конфигурации с несколькими VirtualHosts:

  sudo a2dissite mynewsite
sudo systemctl перезапустить apache2.service
  

Настройки по умолчанию

В этом разделе объясняется конфигурация настроек сервера Apache2 по умолчанию. Например, если вы добавляете виртуальный хост, настройки, которые вы настраиваете для виртуального хоста, имеют приоритет для этого виртуального хоста.Для директивы, не определенной в настройках виртуального хоста, используется значение по умолчанию.

  • DirectoryIndex — это страница по умолчанию, обслуживаемая сервером, когда пользователь запрашивает индекс каталога, указав косую черту (/) в конце имени каталога.

    Например, когда пользователь запрашивает страницу http://www.example.com/this_directory/ , он или она получит либо страницу DirectoryIndex, если она существует, либо список каталогов, созданный сервером, если это не так, и Указана опция индексов или страница с отказом в разрешении, если ни один из них не является истинным.Сервер попытается найти один из файлов, перечисленных в директиве DirectoryIndex, и вернет первый найденный. Если он не находит ни одного из этих файлов и если для этого каталога установлено значение Options Indexes , сервер сгенерирует и вернет список в формате HTML подкаталогов и файлов в каталоге. Значение по умолчанию, которое находится в /etc/apache2/mods-available/dir.conf , — «index.html index.cgi index.pl index.php index.xhtml index.htm». Таким образом, если Apache2 найдет файл в запрошенном каталоге, соответствующий любому из этих имен, будет отображен первый.

  • Директива ErrorDocument позволяет указать файл, который Apache2 будет использовать для определенных событий ошибки. Например, если пользователь запрашивает несуществующий ресурс, возникает ошибка 404. По умолчанию Apache2 просто возвращает код возврата HTTP 404. Прочтите /etc/apache2/conf-available/localized-error-pages.conf для получения подробных инструкций по использованию ErrorDocument, включая расположение файлов примеров.

  • По умолчанию сервер записывает журнал передачи в файл / var / log / apache2 / access.журнал . Вы можете изменить это для каждого сайта в файлах конфигурации вашего виртуального хоста с помощью директивы CustomLog или опустить его, чтобы принять значение по умолчанию, указанное в / etc / apache2 / conf-available / other-vhosts-access-log .conf . Вы также можете указать файл, в котором регистрируются ошибки, с помощью директивы ErrorLog , значение по умолчанию которой — /var/log/apache2/error.log . Они хранятся отдельно от журналов передачи, чтобы помочь в устранении проблем с вашим сервером Apache2.Вы также можете указать LogLevel (значение по умолчанию «предупреждение») и LogFormat (см. Значение по умолчанию /etc/apache2/apache2.conf ).

  • Некоторые параметры указываются для отдельных каталогов, а не для серверов. Опции — одна из этих директив. Раздел каталога заключен в теги, подобные XML, например:

      
    ...
    
      

    Директива Options в разделе Directory принимает одно или несколько из следующих значений (среди прочих), разделенных пробелами:

    • ExecCGI — Разрешить выполнение сценариев CGI.Если этот параметр не выбран, сценарии CGI не выполняются.

      Осторожно

      Большинство файлов не должны выполняться как сценарии CGI. Это было бы очень опасно. Сценарии CGI должны храниться в каталоге отдельно от вашего DocumentRoot и вне его, и только в этом каталоге должна быть установлена ​​опция ExecCGI. Это значение по умолчанию, а расположение по умолчанию для сценариев CGI — / usr / lib / cgi-bin .

    • Включает — Разрешить включение на стороне сервера.Серверные включения позволяют HTML-файлу включать других файлов. См. Документацию Apache SSI (сообщество Ubuntu) для получения дополнительной информации.

    • Включает NOEXEC — Разрешить серверное включение, но отключить команды #exec и #include в сценариях CGI.

    • Индексы — отображение отформатированного списка содержимого каталога, если в запрошенном каталоге нет DirectoryIndex (например, index.html).

      Осторожно

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

    • Multiview — Поддержка мультиракурсов с согласованием содержимого; эта опция по умолчанию отключена из соображений безопасности. См. Документацию Apache2 по этому параметру.

    • SymLinksIfOwnerMatch — Переходите по символическим ссылкам только в том случае, если у целевого файла или каталога того же владельца, что и у ссылки.

Настройки apache2

В этом разделе объясняются некоторые основные параметры конфигурации демона apache2.

LockFile — Директива LockFile устанавливает путь к файлу блокировки, который используется при компиляции сервера с использованием USE_FCNTL_SERIALIZED_ACCEPT или USE_FLOCK_SERIALIZED_ACCEPT.Он должен храниться на локальном диске. Следует оставить значение по умолчанию, если каталог журналов не находится в общей папке NFS. В этом случае значение по умолчанию следует изменить на расположение на локальном диске и на каталог, доступный для чтения только пользователю root.

PidFile — Директива PidFile устанавливает файл, в который сервер записывает свой идентификатор процесса (pid). Этот файл должен быть доступен для чтения только root. В большинстве случаев следует оставить значение по умолчанию.

Пользователь — Директива User устанавливает идентификатор пользователя, используемый сервером для ответа на запросы.Этот параметр определяет доступ к серверу. Любые файлы, недоступные для этого пользователя, также будут недоступны для посетителей вашего сайта. Значение по умолчанию для пользователя — «www-data».

Предупреждение

Если вы точно не знаете, что делаете, не устанавливайте в директиве User значение root. Использование root в качестве пользователя создаст большие дыры в безопасности для вашего веб-сервера.

Группа — Директива группы аналогична директиве пользователя. Группа устанавливает группу, в которой сервер будет отвечать на запросы.Группа по умолчанию также «www-data».

Модули Apache2

Apache2 — это модульный сервер. Это означает, что в главный сервер включены только самые основные функции. Расширенные функции доступны через модули, которые можно загрузить в Apache2. По умолчанию базовый набор модулей включается в сервер во время компиляции. Если сервер скомпилирован для использования динамически загружаемых модулей, то модули можно компилировать отдельно и добавлять в любое время с помощью директивы LoadModule.В противном случае необходимо перекомпилировать Apache2 для добавления или удаления модулей.

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

Вы можете установить дополнительные модули Apache2 и использовать их на своем веб-сервере. Например, выполните следующую команду в командной строке терминала, чтобы установить модуль Python 3 WSGI:

  sudo apt установить libapache2-mod-wsgi-py3
  

Установка включит модуль автоматически, но мы можем отключить его с помощью a2dismod :

  судо a2dismod wsgi
sudo systemctl перезапустить apache2.служба
  

Затем используйте утилиту a2enmod , чтобы снова включить ее:

  судо a2enmod wsgi
sudo systemctl перезапустить apache2.service
  

См. Каталог / etc / apache2 / mods-available для дополнительных модулей, уже доступных в вашей системе.

Конфигурация HTTPS

Модуль mod_ssl добавляет важную функцию к серверу Apache2 — возможность шифровать обмен данными. Таким образом, когда ваш браузер обменивается данными с использованием SSL, префикс https: // используется в начале унифицированного указателя ресурсов (URL) на панели навигации браузера.

Модуль mod_ssl доступен в пакете apache2-common. Выполните следующую команду в командной строке терминала, чтобы включить модуль mod_ssl :

  sudo a2enmod SSL
  

Файл конфигурации HTTPS по умолчанию находится в /etc/apache2/sites-available/default-ssl.conf . Чтобы Apache2 предоставлял HTTPS, также необходимы сертификат и файл ключа . Конфигурация HTTPS по умолчанию будет использовать сертификат и ключ, сгенерированные пакетом ssl-cert .Они хороши для тестирования, но автоматически сгенерированные сертификат и ключ должны быть заменены сертификатом, специфичным для сайта или сервера. Для получения информации о создании ключа и получении сертификата см. Сертификаты.

Чтобы настроить Apache2 для HTTPS, введите следующее:

  sudo a2ensite default-ssl
  

Примечание

Каталоги / etc / ssl / certs и / etc / ssl / private являются местоположениями по умолчанию.Если вы устанавливаете сертификат и ключ в другой каталог, обязательно измените SSLCertificateFile и SSLCertificateKeyFile соответственно.

Теперь, когда Apache2 настроен для HTTPS, перезапустите службу, чтобы активировать новые настройки:

  sudo systemctl перезапустить apache2.service
  

Примечание

В зависимости от того, как вы получили сертификат, вам может потребоваться ввести кодовую фразу при запуске Apache2.

Вы можете получить доступ к страницам защищенного сервера, набрав https: // your_hostname / url / в адресной строке браузера.

Совместное использование разрешения на запись

Чтобы более одного пользователя могли писать в один и тот же каталог, необходимо предоставить разрешение на запись группе, которую они совместно используют. В следующем примере предоставляется общее разрешение на запись в / var / www / html группе «веб-мастера».

  sudo chgrp -R webmasters / var / www / html
sudo chmod -R g = rwX / var / www / html /
  

Эти команды рекурсивно устанавливают права группы для всех файлов и каталогов в / var / www / html , чтобы разрешить чтение, запись и поиск каталогов.Многие администраторы считают это полезным, позволяя нескольким пользователям редактировать файлы в дереве каталогов.

Предупреждение

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

Список литературы

  • Документация Apache2 содержит подробную информацию о директивах конфигурации Apache2.Также смотрите официальную документацию Apache2 в пакете apache2-doc.

  • O’Reilly’s Apache Cookbook — хороший ресурс для выполнения определенных конфигураций Apache2.

  • По вопросам, связанным с Apache2 для Ubuntu, задавайте их на IRC-канале # ubuntu-server на freenode.net.

Что такое веб-сервер Apache? (Плюсы и минусы Apache)

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

Большинство веб-серверов по всему миру используют программное обеспечение Apache или Apache HTTP Server.Это довольно быстро, безопасно и может быть легко настроено для различных сред с помощью расширений и модулей. Apache без проблем работает как на веб-серверах Windows, так и на Linux.

Это программное обеспечение с открытым исходным кодом, разработанное и поддерживаемое Apache Software Foundation. HTTP-сервер Apache — это не физический сервер, а скорее программное обеспечение, работающее на сервере.

В этой статье мы обсудим следующее: —

Кто использует веб-сервер Apache?

Программное обеспечение Apache в настоящее время используется 43.2% веб-сайтов по всему миру.

Популярные компании, использующие HTTP-сервер Apache:

  • IBM
  • eBay
  • Adobe
  • PayPal
  • Linkedin
  • GTMetrix
  • Facebook

Узнать больше о Лучшие серверы PHP

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

Основная функция веб-сервера — хранить, обрабатывать и обслуживать веб-страницы для клиентов.Он использует протокол HTTP, чтобы предоставить пользователю веб-страницу, которую он хочет увидеть.

Apache помогает установить соединение между сервером и браузерами посетителей веб-сайтов (Firefox, Google Chrome, Safari и т. Д.), Одновременно доставляя файлы между ними (структура клиент-сервер).

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

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

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

Почему выбирают Apache?

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

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

С 1995 года Apache помогает в развитии Интернета.

Веб-серверы

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

В основном это серверная часть.

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

Особенности веб-сервера Apache

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

У сервера

Apache есть и другие функции:

  • Загружаемые динамические модули
  • Обработка статических файлов, индексных файлов, автоиндексирование и согласование содержимого
  • .Поддержка конфигурации htaccess для каждого каталога
  • Apache совместим с IPv6
  • Сервер Apache поддерживает HTTP / 2
  • сжатие и декомпрессию gzip
  • FTP-соединения возможны с правильным модулем
  • Perl, PHP и сценарии Lua уже созданы

Плюсы и минусы Apache

Плюсы Apache Server:
  • Apache с открытым исходным кодом, и любой может получить его бесплатно
  • Настраиваемый код можно настроить в соответствии с потребностями
  • Возможность добавления дополнительных функций и модулей для улучшения функций
  • Высокая надежность и отличная производительность
  • Apache прост в использовании установить
  • Немедленная запись изменений
  • Может работать в любой операционной системе
  • Активно поддерживается и обновляется сообществом
  • Очень гибкий веб-сервер
  • Впечатляющая документация, довольно обширная и полезная

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

Альтернатива HTTP-серверу Apache
  • Nginx
  • Apache Tomcat
  • Node.js
  • Lighttpd
  • Cherokee
  • Microsoft IIS
  • Appweb
  • Hiawatha

Конечно, Apache известен и надежен, но это не единственный веб-сервер на рынке .

На данный момент Nginx является следующим по популярности веб-сервером после Apache HTTP. Nginx решил слабость Apache.

Apache не смог поддерживать одновременный трафик большого объема, в то время как Nginx может управлять сотней тысяч пользователей одновременно.

Большинство сайтов устанавливают оба сервера и используют Nginx в качестве резервного сервера.

В ServerGuy мы предоставляем оба веб-сервера вместе с нашим хостингом.

Узнайте больше о различиях между Apache и Nginx.

Как проверить, какой веб-сервер вы используете

Вы можете проверить, какой веб-сервер использует сайт, с помощью Google Chrome. Проверьте версию Apache здесь.

  • Откройте сайт в Google Chrome.
  • Щелкните страницу правой кнопкой мыши и выберите «Проверить элементы».
  • Перейдите на вкладку «Сеть»
  • Перезагрузите веб-страницу
  • Щелкните адрес сайта
  • Проверьте тег заголовка

Альтернативный метод:

Многие онлайн-инструменты могут определить, какой веб-сервер использует сайт.Вы можете использовать Wapplyzer.

Наконец, что такое веб-сервер Apache?

Apache Web Server — это зрелый и надежный веб-сервер, который позволяет сайту обслуживать веб-страницы для пользователей.

Вы можете установить сайт WordPress на Apache. Не только WordPress, но и Apache также совместим со всеми популярными CMS, такими как Joomla или Drupal. Совместимость также является важной причиной того, что Apache так популярен среди веб-разработчиков.

Надеюсь, вы знаете, что сейчас такое веб-сервер Apache.

Оставьте свои сомнения в поле для комментариев.

Что такое апач? — BetterStudio

Веб-сервер Apache — один из самых популярных серверов для HTTP, который поддерживает PHP и Perl. Это популярное программное обеспечение разработано и поддерживается Apache Software в США. Многие серверы по всему миру управляются веб-сервером Apache. Причина этого — скорость и безопасность, которые обеспечивает эта компания.

Апачи — это название индейского племени. Это племя было известно своей храбростью и умением вести войну.Это имя было выбрано в 1995 году для первой версии этого веб-сервера. В этой статье мы должны объяснить, что такое apache и для чего он используется?

Причина в скорости и безопасности, которые обеспечивает эта компания. Апачи — это название индейского племени. Это племя было известно своей храбростью и умением вести войну. Это имя было выбрано в 1995 году для первой версии этого веб-сервера. В этой статье мы должны объяснить, что такое apache и для чего он используется?

В 1996 году Apache был хорошо известен во всем мире и быстро стал популярным.Благодаря функции с открытым исходным кодом он поддерживает многие современные технологии, такие как сертификат SSL и CGL. Apache поддерживает Linux, Windows и т. Д.

Кроме того, вы можете использовать макросы и дополнения для улучшения, разработки и настройки этого программного обеспечения. Они дали Apache прозвище «LAMP» за поддержку 4 наиболее часто используемых систем: Linux, Apache, MySQL и PHP / Perl. Можно с уверенностью сказать, что Apache поддерживает все системы, используемые в современном мире. Согласно статистике Netcraft.com, около 60% веб-сайтов во всем мире используют Apache.

В нашей предыдущей статье мы обсуждали, как установить WordPress на localhost.

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

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

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

Зачем нужен веб-сервер Apache?

В настоящее время существует множество веб-серверов, которые пользователи используют в Мир. Самые популярные из них — Apache, IIS, LiteSpeed, LightTPD и Nginx. Apache является самым популярным по нескольким простым причинам:

  1. Apache бесплатен как для личного, так и для коммерческого использования.
  2. Это программное обеспечение заслуживает доверия и обеспечивает отличную безопасность. Кроме того, Apache имеет открытый исходный код и позволяет пользователям просматривать коды и изменять их в соответствии со своими потребностями.
  3. Веб-серверы Apache могут использоваться для любых веб-сайтов (от веб-сайтов с несколькими страницами до веб-сайтов с тысячами страниц).
  4. Чаще всего Apache используется .htaccess, который используют многие эксперты по Linux. Программисты могут редактировать файл .htaccess, чтобы добавить свои собственные функции.

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

Как упоминалось выше, Apache используется уже 25 лет, и его популярность продолжает расти, и другие веб-серверы не могут конкурировать с ним.У веб-сервера Apache много преимуществ. Мы упомянем некоторые ниже:

  • Поскольку это открытый исходный код, вам необходимо разрешение на просмотр кодов.
  • Вы можете редактировать код.
  • К нему можно добавлять макросы и дополнения. Эта функция сделала Apache популярным в сообществе программистов.
  • Веб-сервер Apache заслуживает доверия.
  • Вы можете сохранить любые сделанные вами изменения, не перезагружая его.
  • Apache поддерживает две известные в мире операционные системы, Linux и Windows.
  • Регулярно обновляется.
  • Простота установки.
  • Гибкий.
  • Вы можете разместить несколько веб-сайтов одновременно.
  • Простая конструкция.
  • Поддерживает многие CMS, такие как WordPress и Joomla.
  • Рекомендуется для начинающих.
  • Документы и руководства Apache регулярно обновляются.
  • Apache не имеет статических или динамических проблем и может управлять тысячами веб-сайтов.
  • Apache — самый старый веб-сервер в мире, и его сообщество очень активно поддерживает.
  • Высокая скорость

Недостатки Apache

У Apache может быть много преимуществ, но есть и некоторые недостатки. Важные недостатки:

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

Заключение

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

  1. Apache: 60,6%
  2. NGINX: 20,6%
  3. IIS: 13,9%
  4. LiteSpeed: 2,0%

Хотя эти цифры могли измениться за 5 лет, это сильно Считается, что благодаря преимуществам Apache, он по-прежнему является наиболее часто используемым веб-сервером.

Apache позволяет размещать веб-сайты, не беспокоясь о рисках безопасности.