Разное

Apache сервер: Что такое Apache? Подробный обзор веб-сервера Apache

27.01.1970

Содержание

Что такое Apache? Подробный обзор веб-сервера Apache

Что такое Apache? Это программное обеспечение с открытым исходным кодом, веб-сервер, который обеспечивает работу около 46% сайтов по всему миру. Официальное название – Apache HTTP Сервер, поддерживается и развивается компанией Apache Software Foundation.

Веб-сервер позволяет владельцам сайтов обслуживать их контент в интернете, о чём понятно с самого название «веб-сервер». Apache один из самый старых и надёжный веб-серверов с первой версией выпуска более 20 лет назад в 1995 году.

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

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

Попробуйте хостинг от Hostinger. Верните ваши деньги в течение 30 дней, если вас что-то не устроит. Воспользуйтесь предложением и разместите сайт до 85% дешевле!

К предложению

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

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

Работа веб-сервера – обслуживать сайт в интернете. Для этого он выполняет роль посредника между компьютером сервера и компьютером клиента. Он берёт контент с сервера на каждый запрос пользователя и доставляет его в сеть.

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

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

Когда вы слышите словосочетание веб-сервер, думайте о нём, как об инструменте для коммуникации между сервером и клиентом.

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

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

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

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

Знаете ли вы, что в Hostinger есть специальные предложения? Посетите нашу страницу купонов и сэкономьте до 75%! Не стоит забывать, что это предложение ограничено во времени!

Использовать купон

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

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

Apache или NGINX

Nginx произносится как Engine-X, это более новое веб-серверное программное обеспечение с первым релизом в 2004 году. Как на сегодня он добился большой популярности среди владельцев сайтов. Nginx был создан для решения так называемой проблемы c10k – проблемы 10 тысяч соединений, что означает, что веб-сервера, использующие потоки не могут обрабатывать запросы пользователей более, чем с 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, Java Server 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 или общий хостинг.

Елена имеет профессиональное техническое образование в области информационных технологий и опыт программирования на разных языках под разные платформы и системы. Более 10 лет посвятила сфере веб, работая с разными CMS, такими как: Drupal, Joomla, Magento и конечно же наиболее популярной в наши дни системой управления контентом – WordPress. Её статьи всегда технически выверены и точны, будь то обзор для WordPress или инструкции по настройке вашего VPS сервера.

Начало работы — HTTP сервер Apache Версия 2.4

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

См. также

Адреса в Интернете записываются с помощью URL — Uniform Resource Locator (унифицированный указатель ресурса), который указывает на используемый протокол (например, http), имя сервера (например, www.

apache.org), URL-путь (например, /docs/current/getting-started.html) и, возможно, строку запроса (например, ?arg=value), используемую для передачи серверу дополнительных аргументов.

Клиент (например, веб-браузер) подключается к серверу (например, вашему HTTP-серверу Apache), используя определённый протокол, и отправляет запрос на ресурс, используя URL-путь.

URL-путь может обозначать множество вещей на сервере. Это может быть файл (как getting-started.html), обработчик (как server-status) или файл какой-то программы (как index.php). Мы рассмотрим это подробней ниже, в разделе Контент веб-сайта.

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

Детали транзакции и условия возникновения ошибки записываются в файлы журналов. Это описывается более подробно ниже, в разделе Файлы журналов и устранение неполадок.

Для того чтобы соединиться с сервером, клиент сначала должен преобразовать имя сервера в IP-адрес — место в Интернете, где находится сервер. Таким образом, чтобы ваш веб-сервер был доступен, необходимо, чтобы имя сервера было в DNS.

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

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

Если вы тестируете сервер, не имеющий выхода в Интернет, можете поместить имена хостов в файл hosts для того что бы имя разрешалось локально. Например, вы можете добавить запись для отправки запросов к www. example.com на локальный компьютер, для тестирования. Эта запись будет выглядеть так:

127.0.0.1 www.example.com

Файл hosts, скорее всего, расположен в /etc/hosts или C:\Windows\system32\drivers\etc\hosts.

Вы можете узнать больше о файле hosts и больше о DNS.

HTTP-сервер Apache настроен с помощью простых текстовых файлов. Эти файлы могут располагаться в разных местах, в зависимости от того как вы установили сервер. Общие места расположения файлов можно найти в Вики HTTP-сервера Apache. Если вы установили httpd из исходного кода, то расположение файлов конфигурации по умолчанию следующее: /usr/local/apache2/conf. По умолчанию файл конфигурации называется httpd.conf. Это тоже может варьироваться в сторонних дистрибутивах сервера.

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

Сервер настраивается путём размещения директив конфигурации в этих файлах конфигурации. Директива — это ключевое слово с одним или несколькими аргументами, устанавливающими её значение.

На вопрос: «Где я должен прописать эту директиву?» – обычно отвечают, там где ты хочешь использовать её. Если это глобальная настройка, она должна располагаться в конфигурационном файле вне разделов <Directory>, <Location>, <VirtualHost> или других разделов. Если настройка относится только к конкретному каталогу, значит она должна быть внутри секции <Directory>, которая описывает этот каталог, и так далее. Смотри документ Разделы конфигурации с подробным описанием вышеуказанных разделов.

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

Содержимое сайта может принимать различные формы, но в широком смысле разделяется на статический и динамический контент.

Статический контент — это, например, HTML-файлы, файлы изображений, CSS-файлы и другие файлы, которые просто лежат на диске. Директива DocumentRoot указывает где в вашей файловой системе, вы должны разместить эти файлы. Эта директива устанавливается глобально или отдельно для каждого виртуального хоста. Посмотрите в своём файле(ах) конфигурации, чтобы узнать, как именно эта директива используется на вашем сервере.

Обычно, когда запрашивается каталог, без указания имени файла, то будет отдан документ с именем index. html. Например, если для директивы DocumentRoot установлено значение /var/www/html и приходит запрос на адрес http://www.example.com/work/, то файл расположенный по пути /var/www/html/work/index.html будет отдан клиенту.

Динамический контент — это всё что генерируется во время запроса и может изменяться от запроса к запросу. Существует множество способов создания динамического контента. Различные обработчики доступны для генерации содержимого. Могут быть написаны специальные CGI программы для генерации контента на сайте.

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

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

Расположение журнала ошибок задаётся директивой ErrorLog, которая может быть установлена глобально или для каждого виртуального хоста. Записи в журнале ошибок расскажут вам, что и когда пошло не так. Зачастую они также смогут подсказать, как что-то исправить. Каждая запись в журнале ошибок содержит код ошибки, по которому вы можете поискать в Интернете более подробное описание того, как решить проблему. Вы также можете настроить журнал ошибок так, чтобы в него записывался идентификатор журнала, который можно сопоставить с записями в журнале доступа — это поможет определить, какой запрос какую ошибку вызвал.

Больше о логирование вы можете узнать в документации о журналах.

Теперь, когда вы знакомы с основами, пора двигаться дальше.

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Плюсы

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

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

Минусы

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

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

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

установка, настройка и способы защиты от атак

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

Этапы установки Apache

Установить веб-сервер Apache в Ubuntu 18.04 Bionic Beaver очень просто:

$ sudo apt-get update && apt-get install apache2

Сценарии установки Ubuntu позаботятся о запуске и включении apache2-сервиса при загрузке.

Настройка брандмауэра

Чтобы получить доступ к содержимому сервера на той же машине, где он работает, нужно запустить веб-браузер и ввести в адресную строку localhost. Если всё настроено правильно, страница поприветствует словами: «It works!».

http://local.server.ip

Если в системе включён брандмауэр (как и должно быть), то чтобы сделать контент доступным извне нашей машины, нужно разрешить входящий трафик через порт 80. Команда для запуска зависит от используемого менеджера брандмауэра. Например, при использовании ufw (используется в Ubuntu по умолчанию) мы должны запустить:

$ sudo ufw allow http

Если вы используете firewalld, можно запустить:

$ sudo firewall-cmd --permanent --add-service=http && firewall-cmd --reload

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

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

Веб-сервер Apache может запускать несколько веб-сайтов на одном компьютере. Каждый запущенный сайт («виртуальный хост» в терминологии Apache) должен иметь свою собственную конфигурацию. Виртуальный хост может быть IP или именем.

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

Виртуальный хост по умолчанию

В Ubuntu виртуальный хост по умолчанию определён в каталоге /etc/apache2/sites-available внутри файла 000-default.conf. Рассмотрим его:

<VirtualHost *:443>
	[...]
	ServerAdmin [email protected]
	DocumentRoot /var/www/html

	[...]

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

	[...]
</VirtualHost>

Директива <VirtualHost> на первой строке применяется для группы параметров, используемых Apache для конкретного виртуального хоста. Первое, что вы увидите в ней, — инструкцию *:80. Она указывает IP-адрес и порт, используемый виртуальным хостом.

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

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

DocumentRoot в строке 4 является обязательным, это важно для конфигурации виртуального хоста. Аргумент этой инструкции должен иметь доступ к файловой системе. Указанный каталог будет считаться корневым каталогом виртуального хоста и не должен содержать завершающий символ «/». В этом случае корневая директория документа — /var/www/html. Если мы посмотрим на её содержимое, то увидим, что она содержит страницу index.html, которую вы до этого видели в качестве страницы приветствия сервера.

Последние две команды на строках 8–9, представленные в этом VirtualHost, — ErrorLog и CustomLog. Используя первый, вы указываете файл, в который сервер будет записывать возникающие ошибки. Второй используется для регистрации запросов, отправленных на сервер в указанном формате.

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

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

Как сказано выше, файлы виртуальных хостов должны быть определены внутри каталога /etc/apache2/sites-available (по крайней мере в дистрибутивах на основе Debian). Поэтому создадим этот файл там. Прежде чем сделать это, следует создать каталог, который будет использоваться как document root, а также создать базовую страницу, которая будет отображаться при открытии сайта:

$ sudo mkdir /var/www/example && echo "Welcome to example!" > /var/www/example/index.html

Теперь можно приступить к настройке виртуального хоста:

<VirtualHost *:80>
DocumentRoot /var/www/example
ServerName www.example.local
</VirtualHost>

Это минимальная конфигурация, необходимая для его запуска. Здесь вы можете увидеть новую директиву ServerName. Это то, что определяет ваш виртуальный хост. Сохраним этот файл как example.conf. Чтобы активировать ваш виртуальный хост, используйте команду a2ensite. Эта команда создаёт символическую ссылку файла в каталоге /etc/apache2/sites-enabled:

$ sudo a2ensite example.conf

После этого следует перезагрузить конфигурацию сервера:

$ sudo systemctl reload apache2.service

Чтобы убедиться, что конфигурация работает, вы должны добавить запись в файл /etc/hosts той машины, с которой вы пытаетесь связаться с сайтом.

$ sudo echo "192.168.122.241 www.example.local" >> /etc/hosts

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

С клиентского компьютера, если вы теперь перейдёте к www.example.local, вы должны увидеть минимальную страницу, которую настроили выше.

Настройка SSL

SSL (Secure Sockets Layer) — это технология, которая позволяет нам шифровать данные, связанные с соединением между клиентом и сервером. При использовании SSL-сертификатов HTTPS (Hyper Text Transfer Protocol Secure) заменяет HTTP в URL-адресе.

SSL-сертификаты выдаются центром сертификации и могут быть очень дорогими, однако есть два других способа получить сертификат: создать самозаверяющий сертификат или воспользоваться сервисом Let’s encrypt.

Создаём самоподписанный SSL-сертификат

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

$ sudo openssl req -x509 \
 -days 365 \
 -sha256 \
 -newkey rsa:2048 \
 -nodes \
 -keyout example.key \
 -out example-cert.pem

Посмотрим, что делает эта команда. Первая опция, -x509определяет, что формируется сертификат стандарта X509.

С помощью -days мы устанавливаем срок действия сертификата в днях. Следующая опция — -newkey. С её помощью мы создаём новый ключ, в данном случае RSA-ключ размером 2048 бит. В тестовом примере нам не нужно шифровать файл закрытого ключа, поэтому используем -nodes. Если эта опция не указана, файл, в котором хранится ключ, будет защищён паролем, который нужно будет предъявлять каждый раз при перезапуске веб-сервера.

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

Скопируйте сгенерированный ключ и сертификат в каталоги /etc/ssl/private и /etc/ssl/ssl-certs соответственно:

$ sudo cp example-cert.pem /etc/ssl/certs

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

Теперь ключ:

$ sudo cp example.key /etc/ssl/private

Важно настроить права доступа к файлу ключа. Папка /etc/ssl/private принадлежит root-пользователю и группе ssl-cert, и у неё есть права доступа 710. Это означает, что владелец имеет на неё полные права, а владелец группы может только получить к ней доступ и перечислить её содержимое, но не может дать разрешение другим:

$ ls -ld /etc/ssl/private
drwx--x--- 2 root ssl-cert 4096 Mar 16 11:57 /etc/ssl/private

Изменим права доступа к файлу ключа, предоставив владельцу права на чтение и запись, а группе — только для чтения:

$ sudo chown root:ssl-cert /etc/ssl/private/example.key
$ sudo chmod 640 /etc/ssl/private/example.key

Теперь, чтобы использовать сертификат, нужно включить модуль SSL с помощью команды a2enmod:

$ sudo a2enmod ssl

Почти всё готово. Теперь пришло время изменить наш виртуальный хост и настроить его следующим образом:

<VirtualHost *:443>
	DocumentRoot /var/www/example
	ServerName www.example.local

	# Enable ssl engine
	SSLEngine on

	SSLCertificate /etc/ssl/certs/example-cert.pem
	SSLCertificateKeyFile /etc/ssl/private/example.key
</VirtualHost>

Порт 443 в строке 1 — это порт, используемый для HTTPS (вместо порта 80, используемого для HTTP).

Мы также добавили инструкцию SSLEngine on в строке 6.

Наконец, в строках 8–9 мы определили пути для сертификата и файла ключей, используя инструкции SSLCertificateFile и SSLCertificateKeyFile.

Теперь следуйте инструкциям по открытию порты брандмауэра из начале статьи, но на этот раз чтобы разрешить HTTPS-службу:

$ sudo ufw allow https

Наконец, перезагрузите конфигурацию Apache:

$ sudo systemctl reload apache2

Готово. Теперь, если мы перейдём по адресу https://www.example.local, мы должны увидеть веб-сервер, предупреждающий нас о том, что используемый сертификат небезопасен. Это, однако, признак того, что наш сертификат работает, и трафик между клиентом и сервером будет зашифрован (вам необходимо добавить исключение для сертификата, чтобы использовать его).

Настройка Let’s encrypt

Альтернатива коммерческим и самозаверенным сертификатам — «Let’s encrypt». Это бесплатный, автоматизированный и открытый центр сертификации. Его цель — дать возможность автоматически получить сертификат, которому доверяет браузер, без какого-либо вмешательства человека.

Для этого используется протокол ACME (certificate management agent), который запускается на сервере.

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

Если же у вас есть доступ к shell, необходимо установить клиент certbotACME.

Для установки Certbot на Ubuntu 18.04 достаточно запустить:

$ sudo apt-get update && apt-get install certbot python-certbot-apache

Пакет Certbot поставляется с модулем systemd timer, который будет запускать Certbot два раза в день, чтобы поддерживать сертификат в актуальном состоянии. Получить сертификат довольно просто:

$ sudo certbot --apache -m  -d 

Очевидно, чтобы это работало, домен должен правильно указывать на ваш общедоступный IP-адрес. Certbot предложит вам несколько вопросов для настройки конфигурации, и, если всё пойдёт хорошо, сертификат и ключ будут сохранены в каталоге /etc/letsencrypt/live/. Просто настройте файл виртуального хоста, чтобы указать на них, и всё готово.

Как обезопасить сервер Apache

Основные средства защиты

Установка Fail2ban на Ubuntu Server 18.04

Если вы хотите обезопасить свой сервер Ubuntu, первое, что вы должны сделать, — это установить систему обнаружения вторжений Fail2ban.

Fail2ban отслеживает определённые файлы журналов (в /var/log) на предмет неудачных попыток входа или автоматических атак на сервер. Когда обнаруживается попытка компрометации с IP-адреса, Fail2ban блокирует его, добавляя новую цепочку в iptables и предотвращая доступ или дальнейшую атаку на сервер.

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

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

sudo apt-get update
sudo apt-get upgrade

После выполнения команд при необходимости перезагрузите сервер.
Установить Fail2ban можно с помощью одной команды:

sudo apt-get install -y fail2ban

Проверьте установленную версию:

fail2ban-server --version

После этого Fail2ban готов к работе. Запустить и включить сервис можно так:

sudo systemctl start fail2ban
sudo systemctl enable fail2ban
Настройка jail

Настроим его для попыток входа по SSH. В каталоге /etc/fail2ban вы найдёте файл jail.conf. Не редактируйте его. Вместо этого создайте новый файл jail.local, который переопределит любые подобные настройки в jail.conf. Новая конфигурация будет отслеживать /var/log/auth.log, использовать фильтр sshd fail2ban, устанавливать для порта SSH значение 22 и устанавливать максимальное количество попыток — 3. Для этого выполните команду:

sudo nano /etc/fail2ban/jail.local

В новый файл вставьте следующее содержимое:

[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3

Сохраните и закройте его. Перезапустите Fail2ban с помощью команды:

sudo systemctl restart fail2ban

На этом этапе, если кто-либо попытается войти на ваш сервер Ubuntu через SSH и эта попытка 3 раза завершится ошибкой, он не сможет больше войти, поскольку iptables заблокирует IP-адрес.

Тестирование и разблокирование

Вы можете проверить, работает ли jail, намеренно провалив три попытки входа на сервер через SSH. После третьей неудачной попытки соединение будет зависать. Нажмите Ctrl+C, чтобы выйти, а затем попытайтесь вернуться по SSH на сервер. Вы больше не сможете использовать SSH на этом сервере с того IP-адреса, который вы использовали.

Затем вы можете разблокировать свой тестовый IP-адрес с помощью следующей команды:

sudo fail2ban-client set sshd unbanip ip_address

Где ip_address — запрещённый IP-адрес.

Теперь вы снова можете войти.

Модуль mod_evasive

Ещё одна отличная утилита для обнаружения и блокировки IP-адресов, которые используются при атаке типа «отказ в обслуживании». Модуль помещает подозрительные IP-адреса во временный чёрный список и сохраняет их там, если они продолжают подозрительно себя вести.

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

Установка mod_evasive в Ubuntu

Введите команду:

# apt-get update

Затем установите вспомогательную утилиту:

sudo apt-get install apache2-utils

Чтобы установить модуль mod_evasive в Ubuntu, введите следующее:

# apt-get install libapache2-mod-evasive
Настройка mod_evasive

Как и большинство программных пакетов Linux, mod_evasive управляется файлом конфигурации.

Откройте его в текстовом редакторе с помощью следующей команды:

sudo nano /etc/apache2/mods-enabled/evasive.conf

Найдите запись:

#DOSEmailNotify [email protected]

Знак # помечает это как комментарий. Удалите его, затем замените [email protected] своим адресом электронной почты. Используйте ту, которой вы постоянно пользуетесь — именно сюда будут отправляться оповещения.

Отредактируйте файл журнала, чтобы он выглядел следующим образом:

Сохраните и выйдите, затем перезагрузите Apache:

sudo systemctl reload apache2
Тестирование mod_evasive

Пришло время проверить, правильно ли работает модуль.
Используйте скрипт test.pl. Его сценарий расположен по этому адресу:

/usr/share/doc/libapache2-mod-evasive/examples/test.pl.

Для его запуска примените эту команду:

perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl

Вывод должен выглядеть таким образом:

Параметры и настройки

DOSSystemCommand

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

DOSHashTableSize

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

DOSPageCount

Количество запросов для отдельной страницы, после которого адрес помещается в чёрный список. В примере стоит 2, но это достаточно маленькое (и агрессивное) значение. Увеличьте его, чтобы уменьшить количество ложных срабатываний.

DOSSiteCount

Общее количество запросов на один и тот же сайт по одному и тому же IP-адресу. По умолчанию установлено значение 50. Вы можете увеличить его до 100, чтобы уменьшить количество ложных срабатываний.

DOSPageInterval

Количество секунд для DOSPageCount. По умолчанию значение равно 1 секунде. Это означает, что если вы не измените его, запрос 2 страниц за 1 секунду временно поместит IP-адрес в чёрный список.

DOSSiteInterval

Как и DOSPageInterval, он определяет количество секунд, которые отслеживает DOSSiteCount. По умолчанию это значение равно 1 секунде, то есть если один IP-адрес запрашивает 50 ресурсов на одном и том же веб-сайте за одну секунду, он будет временно помещён в чёрный список.

DOSBlockingPeriod

Время, в течение которого IP-адрес остаётся в чёрном списке. По умолчанию установлено 10 секунд, но вы можете изменить его на любое значение, которое вам нравится.

DOSLogDir

По умолчанию он настроен на запись журналов в /var/log/mod_evasive. Эти журналы можно просмотреть позже, чтобы оценить поведение клиента.

Белые IP-адреса

Эта опция по умолчанию не включена в файл evasive.conf.

Откройте файл для редактирования и добавьте следующую строку:

DOSWhitelist ваш_IP_адрес

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

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

DNS Injection

Спам из веб-форм не только распространён, но и является быстрым способом внести домен в чёрный список подобный Spamhaus. Чтобы предотвратить подобное, вам нужно добавить ещё один модуль в Apache.

В терминале введите:

sudo apt-get -y install libapache2-mod-spamhaus

После завершения установки введите команду:

sudo touch /etc/spamhaus.wl

Далее откройте файл /etc/apache2/apache2.conf (используя sudo и ваш любимый текстовый редактор) и добавьте в конец вашего файла конфигурации блок:

<IfModule mod_spamhaus.c>
  MS_METHODS POST, PUT, OPTIONS, CONNECT 
  MS_WhiteList /etc/spamhaus.wl 
  MS_CacheSize 256 
</IfModule>

Сохраните файл apache2.conf и перезапустите Apache, чтобы новый модуль вступил в силу.

Slowloris

В Apache есть модуль для предотвращения подобных DOS-атак. Вот как это работает. Откройте окно терминала. Введите команду:

sudo apt-get -y install libapache2-mod-qos

После завершения установки проверьте конфигурацию в /etc/apache2/mods-available/qos.conf, чтобы убедиться, что она идеально соответствует вашим потребностям. После настройки модуля (при необходимости) перезапустите Apache.

Дополнительные средства защиты

Скрыть версию сервера

Это одно из первых соображений, поскольку вы не хотите показывать, какую версию веб-сервера вы используете. Её разоблачение означает, что вы помогаете хакеру ускорить процесс разведки.
Перейдите в папку:

$ Web_Server/conf

Измените httpd.conf с помощью редактора. Добавьте следующую директиву и сохраните httpd.conf:

ServerTokens Prod
ServerSignature Off

Перезапустите Apache.
ServerSignature удалит информацию о версии со страницы.
ServerTokens изменит заголовок только на рабочий, т. е. Apache.

Защита от атаки Clickjacking

Атака данного типа позволяет злоумышленнику выполнить клик на сайте-жертве от имени легитимного посетителя.

Чтобы обезопасить свой веб-сервер, вам нужно использовать заголовок «X-FRAME-OPTIONS»
Вы можете сделать это, отредактировав файл apache2.conf.

sudo nano /etc/apache2/apache2.conf

Добавьте следующую строку внутри Directory /var/www/html/:

Header always append X-Frame-Options SAMEORIGIN

Сохраните файл и перезапустите Apache.

sudo /etc/init.d/apache2 restart

Теперь попробуйте открыть веб-браузер для доступа к веб-серверу. Проверьте заголовки ответа HTTP в firebug. Вы должны увидеть X-Frame-Options.

Защита от атаки XSS

XSS (англ. Cross-Site Scripting — «межсайтовый скриптинг») является одной из наиболее распространённых атак на уровне приложений.

Вы можете защититься от неё, отредактировав файл конфигурации Apache.

sudo nano /etc/apache2/apache2.conf

Добавьте следующую строку внутри Directory /var/www/html/:

Header set X-XSS-Protection "1; mode=block"

Заключение

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

Вадим Сычёв

Apache HTTP Server | Русскоязычная документация по Ubuntu

Apache HTTP Server — проект, развиваемый The Apache Software Foundation, в рамках которого разрабатывается кроссплатформенный HTTP сервер с открытым исходным кодом. Входит в состав LAMP и XAMPP.

Версии Apache в Ubuntu

Ubuntu Apache
12.04 LTS (Precise) 2.2
14.04 LTS (Trusty) 2.4
15.10 (Wily) 2.4
16.04 LTS (Xenial) 2.4

Хостинг сайтов

Можно реализовать четырьмя способами:

  1. по умолчанию в папке /var/www/html. Доступом является http://localhost/

  2. настройки основного хостинга. Например, http://localhost/phpmyadmin

  3. в любой папке с помощью модуля виртуальных хостов. Например, http://mysite/

  4. в папке пользователя public_html (модуль userdir). Например, http://localhost/~username

Установка

Для установки Apache выполните в терминале:

sudo apt-get install apache2

Настройка

Для применения изменений в настройках необходимо перезапустить демон Apache:
sudo service apache2 restart

В Ubuntu конечный файл настройки (apache2.conf) расделён на несколько файлов, расположенных в разных поддиректориях. Подробней написано в комментариях файла apache2.conf.

       /etc/apache2/
       |-- apache2.conf
       |       `--  ports.conf
       |-- mods-enabled
       |       |-- *.load
       |       `-- *.conf
       |-- conf-enabled
       |       `-- *.conf
       `-- sites-enabled
               `-- *.conf

Настройки модулей расположены в директории /etc/apache2/mods-available. Для подключения или отключения модулей (настроек модулей) следует использовать соответствующие команды a2enmod или a2dismod. Пример подключения модуля:

sudo a2enmod <mod-name>

Свои настройки следует сохранять в файлы, расположенные в директории /etc/apache2/conf-available. Для подключения или отключения своих настроек следует использовать соответствующие команды a2enconf или a2disconf. Пример подключения файла со своими настройками:

sudo a2enconf <config-name>

Настройки виртуальных хостов следует сохранять в файлы, расположенные в директории /etc/apache2/sites-available. Для подключения виртуальных хостов следует использовать соответствующие команды a2ensite или a2dissite. Пример подключения виртуального хоста:

sudo a2ensite <site-name>

Кодировка по умолчанию

Для указания кодировки по умолчанию следует использовать директиву AddDefaultCharset в файле /etc/apache2/conf-available/charset.conf (или раскомментировать соответствующую строку):

AddDefaultCharset UTF-8

Виртуальные хосты

Файлы настроек виртуальных хостов хранятся в /etc/apache2/sites-available/*.conf. По умолчанию в Apache уже настроен один виртуальный хост. Его настройки лежат в файле 000-default.conf. Вы можете использовать этот виртуальный хост в качестве примера.

Пример настройки виртуального хоста:

<VirtualHost *:80>
    #Имя хоста
    ServerName host1.server1
    #Корневая папка хоста
    DocumentRoot /var/www/host1.server1
    <Directory /var/www/host1.server1>
        #Разрешение на перезапись всех директив при помощи .htaccess
        AllowOverride All
    </Directory>
</VirtualHost>

Назовите файл настройки именем вашего хоста host1.server1.conf и сохраните.

После создания файла настроек допишите в /etc/hosts имя вашего хоста:

127.0.0.1    host1.server1

Для включения созданного виртуального хоста используется утилита a2ensite:

sudo a2ensite host1.server1

Отключается хост аналогично утилитой a2dissite:

sudo a2dissite host1.server1

Модули

mod_userdir

Модуль mod_userdir позволяет использовать директории, находящиеся в домашних директориях пользователей для хранения веб страниц. По умолчанию Apache ищет запрашиваемые страницы в директории ~/public_html

mkdir ~/public_html

Чтобы включить mod_userdir, выполните:

sudo a2enmod userdir

и добавьте необходимого пользователя в группу www-data:

sudo adduser $USER www-data

после чего перезагрузите Apache:

sudo service apache2 restart

Страницы будут доступны по адресу http://localhost/~username, где username — имя пользователя.

Настройка public_html подробно.

CGI

Если Вы хотите запускать на сервере cgi-скрипты, подключите модуль cgi командой

sudo a2enmod cgi

По умолчанию cgi-скрипты размещаются в директории /usr/lib/cgi-bin, но вы можете разместить их где угодно, указав это в настройках своего виртуального хоста, либо глобально для всех хостов в файле /etc/apache2/conf-enabled/serve-cgi-bin.conf.

Eсли ваш сервер работает во внешней сети, то в целях безопасности настоятельно рекомендуется размещать cgi-скрипты вне корневой директории виртуального хоста

Настройка HTTPS в Apache

Веб-сервер Apache полностью поддерживает работу по HTTPS. Чтобы активировать поддержку HTTPS на уже установленном Apache, необходимо выполнить следующее.

Создание ключа и ssl-сертификата

Использование самоподписанных сертификатов хоть и защищает от пассивного прослушивания, тем не менее не гарантирует клиентам, что сервер является именно тем сервером, который им нужен. Преимуществом самоподписанных сертификатов является их бесплатность. Сертификат, подписанный компанией-сертификатором (Certificate authority), стоит денег.

Для создания ключа и сертификата вводим команду:

openssl req -new -x509 -days 30 -keyout server.key -out server.pem

На вопрос «Enter PEM pass phrase:» отвечаем паролем, подтверждаем и запоминаем.

На все последующие вопросы отвечаем произвольно, можно просто щелкать по Enter, соглашаясь с предложенными вариантами, только на вопрос «Common Name (eg, YOUR name) []:» отвечаем именем сайта, для которого создаем сертификат, например www.example.com.

После ответа на все вопросы в директории должны появиться два новых файла — server.pem (ключ) и server.crt (сертификат).

Чтобы использовать сгенерированный ключ, нужно знать пароль, введённый нами, и Apache будет спрашивать его у нас при загрузке, а к чему нам лишние вопросы от демонов? 🙂 Поэтому снимаем пароль с ключа:

cp server.key{,.orig}
openssl rsa -in server.key.orig -out server.key
rm server.key.orig

Скопируем их в /etc/ssl и назначим файлу ключа права чтения только администратору:

sudo cp server.pem /etc/ssl/certs/
sudo cp server.key /etc/ssl/private/
sudo chmod 0600 /etc/ssl/private/server.key

Настройка Apache

Для начала необходимо активировать mod_ssl:

sudo a2enmod ssl

А затем включить настройки HTTPS сайта по умолчанию:

sudo a2ensite default-ssl

Теперь необходимо отредактировать файл с настройками HTTPS сайта по умолчанию, указав в нём пути к вашим сертификатам. Сам файл называется /etc/apache2/sites-enabled/default-ssl (или /etc/apache2/sites-enabled/default-ssl.conf).

В этом файле рекомендуется после директивы

SSLEngine on

добавить строчку

SSLProtocol all -SSLv2

чтобы запретить использование устаревшего протокола SSLv2.

Дальше вам необходимо отредактировать параметры, ответственные за сертификаты.

# Публичный сертификат сервера
SSLCertificateFile    /etc/ssl/certs/server.pem
# Приватный ключ сервера
SSLCertificateKeyFile /etc/ssl/private/server.key

Теперь просто перезагрузите Apache:

sudo service apache2 restart

И если все параметры указаны верно, ваши сайты станут доступны по HTTPS.

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

Перенаправление HTTP запросов на HTTPS

Если вы хотите запретить использование HTTP, то самым разумным будет перенаправлять все HTTP запросы к страницам на их HTTPS адрес. Сделаем это с помощью mod_alias. Если он не включён — включаем:

sudo a2enmod alias
sudo service apache2 restart

Затем изменяем файл /etc/apache2/sites-enabled/000-default, отвечающий за виртуальный хост по умолчанию для HTTP запросов. В этот файл добавляем директиву

Redirect / https://example.com/

При этом все настройки директорий можно удалить, поскольку по HTTP на ваши сайты всё равно будет не попасть.

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

Ссылки

Возможные проблемы

Если при запуске появляется ошибка

apache2: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

добавьте в свой файл конфигурации строку

ServerName localhost

Смотрите также

Ссылки

Что такое Apache | REG.RU

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

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

Что такое Apache сервер

Веб-сервер — это программа, без которой не может работать сайт в интернете. Cайт — это набор файлов, например, HTML, CSS и JS. В каждом файле находится информация о картинках, тексте, кнопках, шрифтах и других элементах внешнего вида сайта. Все эти файлы находятся на физическом сервере, который имеет или арендует владелец сайта. Чтобы показать пользователю сайт, браузер должен связаться с сервером и получить эти файлы. Для связи с сервером браузер просит помощи у веб-сервера. Веб-сервер получает запрос от браузера, ищет ресурсы сайта и пересылает их ему. Только после этого браузер показывает контент пользователю.

История создания Apache

Apache — это сокращение от «a patchy server», что переводится как сервер с патчами. Такое название появилось из-за происхождения программы. Все началось с разработки веб-сервера CERN HTTPd и NCSA HTTPd в Национальном центре суперкомпьютерных приложений (NCSA). Позднее к проекту подключились другие авторы, которые стали накладывать свои патчи. Патч ― это информация, кусок кода или программный модуль, который исправляет недочёты разработчиков. Их ещё называют заплатки. В 1995 году Брайан Белендорф объединил все патчи и создал команду разработчиков, которая выпустила первую версию Apache. Релиз Apache 1.0 прошёл в декабре 1995 года, но популярной эта программа стала только через год. Далее группа разработчиков расширялась, и они создали Apache для различные операционные системы (Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS).

В 1998 году появилась версия Apache 1.3, а в 1999 году была создана некоммерческая организация Apache Software Foundation. В марте 2000 года состоялась первая конференция для разработчиков ApacheCon. На ней была представлена версия Apache 2.0. Она отличалась новой модульной структурой. Это предоставило широкие возможности для функционала программы. На данный момент последней версией является Apache 2.4.

Архитектура Apache

Apache состоит из ядра и модулей. Ядро выполняет основные функции: обработка конфигурационных файлов, работа с протоколом HTTP, система загрузки модулей. Оно может работать самостоятельно без модулей, но тогда функционал программы будет крайне ограничен. Ядро создала команда компании Apache Software Foundation без вмешательства сторонних разработчиков.

Как можно расширить функционал веб-сервера? Для этого выпускаются модули. Модуль — это код, который расширяет функционал ядра. Они бывают статические и динамические. Статические добавляются к ядру ещё до загрузки программы, то есть пользователь выбирает программу определенной сборки. Динамические можно добавить на этапе загрузки программы при помощи встроенного модуля mod_so.

Модули отвечают за определенные возможности программы. Это может быть поддержка различных языков программирования, повышение безопасности, аутентификация пользователя, исправление ошибок и другие дополнительные функции. Таким образом, Apache — это конструктор, который можно собрать так, как нужно пользователю. Для этой программы существует более 500 модулей. Например, Multi-Processing Module (MPM) — модуль системного уровня. С его помощью можно оптимизировать Apache в условиях конкретной операционной системы.

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

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

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

Система конфигурации web-сервера Apache состоит из 3-х уровней текстовых файлов.

  1. httpd.conf — основной конфигурационный файл. В нём содержатся директивы, которые управляют работой веб-сервера. Местоположение файла зависит от операционной системы. Узнать, где он находится, можно с помощью команды:
  1. .htaccess — дополнительный конфигурационный файл. Файл (или файлы) .htaccess задают правила работы веб-сервера в каталоге, в котором он размещен, и в его дочерних каталогах, то есть он не затрагивает глобальные изменения работы сервиса. Настройки .htaccess приоритетны перед настройками в httpd.conf. При каждом обращении к веб-серверу Apache просматривает все каталоги на наличие .htaccess.

  2. Виртуальный хост. Он используется для запуска нескольких доменов на одном IP-адресе. Такие хосты нужны пользователям, которые запускают несколько сайтов на одном виртуальном сервере. На один сервер можно добавить неограниченное количество виртуальных хостов. Как это сделать, читайте в статье Как настроить виртуальные хосты в Apache на Ubuntu 16.04/18.04.

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

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

  • Бесплатное программное обеспечение как для личного использования, так и для коммерческого;
  • гибкость программы. Открытый исходный код позволяет подстроить программу под специфические нужды пользователя;
  • поддержка многих языков программирования (PHP, Python, Ruby, Perl, ASP, Tcl), что дает доступ к различным серверным ПО;
  • удобная и надежная конфигурация системы. Приложение легко настраивается через текстовые конфигурационные файлы и может быстро масштабироваться;
  • Apache хорошо работает со многими системами управления контентом (CMS), такими как WordPress, Joomla, Drupal;
  • поддерживает технологии FastCGI и CGI;
  • может использовать СУБД для аутентификации пользователей;
  • большая база инструкций. Так как продукт уже давно на рынке, разработчики и пользователи уже написали множество инструкций под разные ситуации.

Недостатки веб-сервера Apache

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

Теперь вы знаете, что такое веб-сервер Апаче и как он работает. Чтобы установить Apache на CentOS 7, воспользуйтесь инструкцией.

Облачные серверы нового поколения

Виртуализация KVM, почасовая оплата, резервные копии, готовые шаблоны, 10 доступных ОС на выбор!

Подробнее Помогла ли вам статья?

1 раз уже
помогла

Тюнинг сервера Apache — Highload.today

Этот текст написан несколько лет назад и может содержать неточности

Apache — самый популярный Web сервер. Настройка некоторых параметров (тюнинг) может дать существенный прирост в скорости его работы.

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

Настройка Apache проводится в конфигурационном файле. Его можно найти:

Debian

/etc/apache2/apache2.conf

Freebsd

/usr/local/etc/apache22/httpd.conf

Модули

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

Обычно Вам не нужно ничего, кроме таких модули:

mod_alias
mod_authz_host
mod_deflate
mod_dir
mod_expires
mod_headers
mod_mime
mod_rewrite
mod_log_config
mod_autoindex
mod_negotiation
mod_setenvif

MPM

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

Для включения Worker MPM, нужно открыть файл

nano /etc/sysconfig/httpd

и убрать комментарий со строки

HTTPD=/usr/sbin/httpd.worker

Перезапустим Apache

/etc/init.d/apache2 restart

AllowOverride и .htaccess

Директива AllowOverride включайте использование файла .htaccess. В этом случае при каждом запросе Apache будет искать этот файл в запрашиваемых директориях. Перемещайте всю конфигурацию в файлы виртуальных хостов (папка /etc/apache2/sites-enabled/ для Debian) и отключите использование htaccess:

AllowOverride None

MaxClients

Директива MaxClients устанавливает максимальное количество параллельных запросов, которые будет обрабатывать сервер. Эту настройку нужно адаптировать с течением времени, работайте в пределах значений в 128…4096:

MaxClients 256

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

MinSpareServers, MaxSpareServers, и StartServers

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

StartServers 3

# При запуска Apache будет создавать 3 процесса

MinSpareServers 3

# Apache не будет убивать свободные процессы, если их остается менее трех

MaxSpareServers 5

# Максимум 5 свободных процессов, остальные будут уничтожаться

MaxRequestsPerChild

Директива MaxRequestsPerChild устанавливает сколько запросов может обработать один дочерний процесс/поток прежде чем он будет завершен. По умолчанию значение этой директивы установлено в 0, что означает что однажды созданный процесс/поток не будет завершен никогда. Этот параметр позволяет избавиться от проблем с утечкой памяти, поэтому лучше установить его:

MaxRequestsPerChild 4096

# После 4096 обработанных запросов процесс будет перезапущен

KeepAlive

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

KeepAlive On
KeepAliveTimeout 30

#Включаем KeepAlive и устанавливаем время ожидания перед закрытием соединения в 30 секунд

Бывают случаи, когда пользователь отправляет только один запрос. Например, download-сервер. Тогда KeepAlive может быть бесполезен и даже вреден, т.к. при включенном KeepAlive сервер закрывает соединение не сразу, а ждет какое-то время (KeepAliveTimeout).

Сжатие

Все современные браузеры поддерживают сжатие. Включение gzip существенно уменьшит размер трафика. Это нужно делать всегда.

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

Проверьте, что сжатие заработало с помощью Online Gzip checker.

DNS

Выключайте лишние запросы к DNS в Apache:

HostnameLookups Off

# Так Apache будет записывать в лог IP адрес клиента вместо его хоста.

Всегда используйте IP адрес в директивах Allow From и Deny From, а не доменные имена.

Allow From 1.1.1.1 
Deny From 2.2.2.2

Самое важное

Самым большим эффектом на посетителей окажет включение сжатия gzip. Часто это экономит около 70% трафика.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Использование HTTP-сервера Apache в Microsoft Windows

В этом документе объясняется, как установить, настроить и запустить Apache 2.4 под Microsoft Windows. Если у вас есть вопросы после просматривая документацию (и любые журналы событий и ошибок), вы следует проконсультироваться с поддерживаемым коллегами рассылка пользователей список.

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

См. Также

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

HTTP-сервера Apache версии более поздней, чем 2.2, не будет работать ни на каких операционная система ранее, чем Windows 2000.

Сам проект HTTP-сервера Apache не предоставляет двоичных выпусков ПО, только исходный код. Индивидуальные коммиттеры могут предоставить бинарные пакеты для удобства, но не выпускаются.

Если вы не можете скомпилировать HTTP-сервер Apache вы можете получить бинарный пакет из множества бинарных дистрибутивов. доступно в Интернете.

Популярные варианты развертывания Apache httpd и, опционально, PHP и MySQL в Microsoft Windows включают:

Apache настроен файлами в conf подкаталог. Это те же файлы, которые используются для настройки Unix версия, но есть несколько разных директив для Apache на Windows.См. Указатель директив для всех доступных директив.

Основные отличия Apache для Windows:

  • Поскольку Apache для Windows многопоточный, он не используйте отдельный процесс для каждого запроса, как это может сделать Apache в Unix. Вместо этого обычно работают только два процесса Apache: родительский процесс и дочерний процесс, который обрабатывает запросы. В В дочернем процессе каждый запрос обрабатывается отдельным потоком.

    Директивы по управлению процессами также разные:

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

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

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

  • Директивы, которые принимают имена файлов в качестве аргументов, должны использовать Имена файлов Windows вместо файлов Unix. Однако, поскольку Apache может интерпретировать обратную косую черту как последовательность «escape-символа», вы следует последовательно использовать косую черту в именах путей, а не обратная косая черта.

  • Хотя имена файлов обычно не чувствительны к регистру Windows, URL-адреса по-прежнему обрабатываются внутренне как чувствительные к регистру прежде, чем они будут сопоставлены с файловой системой.Например, <Местоположение> , Все директивы Alias ​​ и ProxyPass используют аргументы с учетом регистра. По этой причине особенно важно использовать директиву при попытке для ограничения доступа к содержимому файловой системы, поскольку это Директива применяется к любому контенту в каталоге, независимо от как к нему обращаются. Если вы хотите убедиться, что только строчные буквы используется в URL-адресах, вы можете использовать что-то вроде:

     RewriteEngine On
    RewriteMap нижний регистр int: tolower
    RewriteCond "% {REQUEST_URI}" "[A-Z]"
    RewriteRule "(.*) "" $ {нижний регистр: $ 1} "[R, L] 
  • При работе Apache требуется доступ на запись только к журналам каталог и любое настроенное дерево каталогов кеша. Из-за выдача нечувствительных к регистру и коротких имен формата 8.3, Apache должен проверить все указанные пути. Это означает, что каждый каталог который оценивает Apache, от корня диска до каталога лист, должен иметь разрешения на чтение, список и просмотр каталогов. Если Apache2.4 установлен в C: \ Program Files, то корень каталог, Program Files и Apache2.4 должны быть видны в Apache.

  • Apache для Windows содержит возможность загрузки модулей на время выполнения, без перекомпиляции сервера. Если Apache скомпилирован обычно он устанавливает несколько дополнительных модулей в Каталог \ Apache2.4 \ modules . Чтобы активировать эти или другие модули, LoadModule директива должна использоваться. Например, чтобы активировать статус модуля используйте следующие (в дополнение к директивы в доступе .conf ):

     LoadModule status_module "modules / mod_status.so" 

    Информация о создании загружаемые модули также доступны.

  • Apache также может загружать ISAPI (приложение Интернет-сервера). Programming Interface), такие как используемые Microsoft IIS и другие серверы Windows. Более информация имеется. Обратите внимание, что Apache не может загружать фильтры ISAPI и обработчики ISAPI с некоторыми функциями Microsoft расширения работать не будут.

  • При запуске сценариев CGI метод, который Apache использует для поиска интерпретатор сценария настраивается с помощью ScriptInterpreterSource директива.

  • Так как часто бывает сложно управлять файлами с именами например .htaccess в Windows, вам может быть полезно измените имя этого файла конфигурации для каждого каталога, используя AccessFilename директива.

  • Любые ошибки во время запуска Apache регистрируются в Журнал событий Windows при работе в Windows NT. Этот механизм действует как резервная копия для тех ситуаций, когда Apache еще не подготовлен к использованию файла error.log . Ты можешь просмотрите журнал событий приложения Windows с помощью средства просмотра событий, например Пуск — Настройка — Панель управления — Администрирование — Просмотрщик событий.

Apache поставляется с утилитой, которая называется Apache Service Monitor.С его помощью вы можете видеть и управлять состоянием всех установленных Apache. сервисы на любой машине в вашей сети. Чтобы иметь возможность управлять Сервис Apache с монитором, сначала необходимо установить сервис (автоматически через установку или вручную).

Вы можете установить Apache как службу Windows NT следующим образом: командная строка в подкаталоге Apache bin :

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

httpd.exe -k install -n "MyServiceName"

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

httpd.exe -k install -n "MyServiceName" -f "c: \ files \ my.conf "

Если вы используете первую команду без каких-либо специальных параметров, кроме -k install , сервис будет называться Apache2.4 Предполагается, что конфигурация — conf \ httpd.conf .

Удалить службу Apache очень просто. Просто используйте:

Конкретная удаляемая служба Apache может быть указана с помощью:

httpd.exe -k uninstall -n "MyServiceName"

Нормальный запуск, перезапуск и завершение работы Apache обслуживание обычно выполняется через Apache Service Monitor, используя такие команды, как NET START Apache2.4 и NET STOP Apache2.4 или через обычное управление службами Windows. Перед запуская Apache как службу любыми способами, вы должны протестировать файл конфигурации службы, используя:

httpd.exe -n "MyServiceName" -t

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

httpd.exe -k start -n "MyServiceName"

Чтобы остановить службу Apache с помощью переключателей командной строки, используйте это:

httpd.exe -k stop -n "MyServiceName"

или

httpd.exe -k shutdown -n "MyServiceName"

Вы также можете перезапустить работающую службу и заставить ее перечитать его файл конфигурации, используя:

httpd.exe -k restart -n "MyServiceName"

По умолчанию все службы Apache зарегистрированы для работы как системный пользователь (учетная запись LocalSystem ). В Учетная запись LocalSystem не имеет прав доступа к вашей сети. через любой защищенный Windows механизм, включая файловую систему с именем каналы, DCOM или безопасный RPC.Однако на местном уровне он имеет широкие привилегии.

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

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

  1. Создайте обычную учетную запись пользователя домена и обязательно запомнить его пароль.
  2. Предоставить вновь созданному пользователю привилегию Войти в систему. как услуга и Действуют как часть операционной система . В Windows NT 4.0 эти права предоставляются через Диспетчер пользователей для доменов, но в Windows 2000 и XP вы, вероятно, хотите использовать групповую политику для распространения этих параметров. Ты можешь также вручную установите их с помощью оснастки MMC локальной политики безопасности.
  3. Подтвердите, что созданная учетная запись является членом пользователей группа.
  4. Предоставить учетной записи права на чтение и выполнение (RX) для всего документа. и папки скриптов ( htdocs и cgi-bin Например).
  5. Предоставьте право изменения учетной записи (RWXD) Apache регистрирует каталог .
  6. Предоставьте учетной записи права на чтение и выполнение (RX) для httpd.exe двоичный исполняемый файл.

Обычно рекомендуется предоставить пользователю Apache служба работает как доступ для чтения и выполнения (RX) ко всему Apache2.4 каталог, за исключением подкаталога logs , в котором пользователь должен иметь как минимум права на изменение (RWXD).

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

Код ошибки 2186 является хорошим признаком того, что вам необходимо просмотреть конфигурацию «Вход в систему как» для службы, поскольку Apache не может получить доступ к требуемому сетевому ресурсу. Также платите пристальное внимание к привилегиям пользователя Apache стоит настроен для работы как.

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

Не удалось запустить Apache2.4 сервис на \\ КОМПЬЮТЕР
Ошибка 1067; Процесс неожиданно завершился.

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

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

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

Чтобы запустить Apache из командной строки как консольное приложение, используйте следующую команду:

Apache будет запущен и будет работать до тех пор, пока не будет остановлен. нажав Control-C.

Вы также можете запустить Apache с помощью ярлыка Запустить Apache в консоли. помещен в Меню Пуск -> Программы -> HTTP-сервер Apache 2.4.xx -> Управление Apache Server во время установки. Это откроет окно консоли и запустит внутри него Apache. если ты если Apache не установлен как служба, окно останется виден, пока вы не остановите Apache, нажав Control-C в консоли окно, в котором работает Apache. Сервер завершит работу через несколько секунд. Однако, если у вас установлен Apache как служба, ярлык запускает службу. Если служба Apache запущена уже ярлык ничего не делает.

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

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

Но если сервер запущен в окне консоли, вы можете только остановите его, нажав Control-C в том же окне.

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

, если сервер работает как служба.

Примечание для людей, знакомых с версией Apache для Unix: эти команды обеспечивают эквивалент Windows kill -TERM pid и kill -USR1 pid .В используемый параметр командной строки -k был выбран в качестве напоминания команды kill , используемой в Unix.

Если окно консоли Apache закрывается сразу или неожиданно после запуска откройте командную строку из меню «Пуск» -> Программ. Перейдите в папку, в которую вы установили Apache, введите команду httpd.exe и прочтите сообщение об ошибке. потом перейдите в папку журналов и просмотрите ошибку . журнал файл для ошибок конфигурации.Предполагая, что httpd был установлен в C: \ Program Files \ Apache Software Foundation \ Apache2.4 \ , вы можете сделать следующее:

c:
cd "\ Program Files \ Apache Software Foundation \ Apache2.4 \ bin"
httpd.exe

Затем дождитесь остановки Apache или нажмите Control-C. Затем введите следующий:

cd .. \ logs еще

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

В обоих случаях правильный ServerRoot должен быть установлен в файл конфигурации.

Если вы не укажете файл конфигурации с -f или -n , Apache будет использовать имя файла, скомпилированное в сервер, например conf \ httpd.conf . Этот встроенный путь относительно каталога установки. Вы можете проверить скомпилированный имя файла из значения, помеченного как SERVER_CONFIG_FILE , когда вызов Apache с помощью переключателя -V , например:

Apache затем попытается определить свой ServerRoot , попробовав следующее в следующем порядке:

  1. A Директива ServerRoot через переключатель командной строки -C .
  2. Ключ -d в командной строке.
  3. Текущий рабочий каталог.
  4. Запись в реестре, созданная, если вы выполнили двоичный монтаж.
  5. Корень сервера, скомпилированный в сервер. Это / apache по умолчанию, вы можете проверить это с помощью httpd.exe -V и ищет значение, помеченное как HTTPD_ROOT .

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

Значение этого ключа - ServerRoot каталог, который содержит подкаталог conf . Когда Apache запускает это читает файл httpd.conf из этого каталога. Если этот файл содержит ServerRoot директива, которая содержит каталог, отличный от того полученный из ключа реестра выше, Apache забудет раздел реестра и используйте каталог из файла конфигурации.Если вы копируете каталог Apache или файлы конфигурации в новый местоположение очень важно, чтобы вы обновили ServerRoot директива в httpd.conf , чтобы отразить новое местоположение.

После запуска Apache (либо в окне консоли, либо как service) он будет прослушивать порт 80 (если вы не изменили Слушайте директиву в файлы конфигурации или установленный Apache только для текущего пользователя). Чтобы подключиться к серверу и получить доступ к странице по умолчанию, запустите браузер и введите этот URL:

Apache должен ответить приветственной страницей, и вы должны увидеть "Оно работает!".Если ничего не происходит или возникает ошибка, загляните в error.log файл в подкаталоге logs . Если ваш хост не подключен к сети, или если у вас есть серьезные проблемы с настройкой DNS (службы доменных имен), вы возможно, придется использовать этот URL:

Если вы используете Apache на альтернативном порту, вы необходимо явно указать это в URL:

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

Поскольку Apache не может использовать один и тот же порт с другое приложение TCP / IP, вам может потребоваться остановить, удалить или перенастроить некоторые другие службы перед запуском Apache. Эти противоречивые услуги включают другие серверы WWW, некоторые реализации межсетевого экрана, и даже некоторые клиентские приложения (например, Skype), которые будут использовать порт 80, чтобы попытаться обойти проблемы брандмауэра.

Доступ к файлам по сети можно указать с помощью двух механизмы, предоставляемые Windows:

Буквы подключенных дисков
например, Псевдоним "/ images /" "Z: /"
UNC-пути
например, Псевдоним "/ images /" "// imagehost / www / images /"

Буквы подключенных дисков позволяют администратору поддерживать отображение на конкретную машину и путь за пределами Apache httpd конфигурация.Однако эти отображения связаны только с интерактивные сеансы и не доступны напрямую для Apache httpd когда он запускается как служба. Используйте только пути UNC для сетевые ресурсы в httpd.conf , чтобы ресурсы могли будут доступны постоянно, независимо от того, как запущен Apache httpd. (Тайные процедуры и процедуры, подверженные ошибкам, могут обойти ограничение на подключенных буквах дисков, но это не рекомендуется.)

Пример DocumentRoot с UNC-путем

 DocumentRoot "// dochost / www / html /" 

Пример DocumentRoot с IP-адресом в UNC-пути

 DocumentRoot "// 192.168.1.50 / docs / "

Пример псевдонима и соответствующий каталог с UNC-путем

 Псевдоним "/ images /" "// imagehost / www / images /"

<Каталог "// imagehost / www / images /">
# ...
 

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

  • Если в операционной системе используется более нескольких десятков подключенных по каналу регистраторов Например, часто необходимо масштабирование «кучи рабочего стола».Для более подробную информацию см. в документации по конвейерному ведению журнала.

Что такое Apache? Углубленный обзор веб-сервера 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 - это бесплатное программное обеспечение для веб-серверов с открытым исходным кодом, которое поддерживает около 40% веб-сайтов по всему миру. Официальное название - Apache HTTP Server, он поддерживается и разрабатывается Apache Software Foundation.

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

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

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

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

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

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

Самая большая проблема веб-сервера - одновременно обслуживать множество разных пользователей сети, каждый из которых запрашивает разные страницы. Веб-серверы обрабатывают файлы, написанные на разных языках программирования, таких как 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 или виртуальный хостинг.

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

Что такое веб-сервер 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 против 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 / httpd: зеркало HTTP-сервера Apache. Выпуски: http://issues.apache.org

                          HTTP-сервер Apache

  Что это?
  -----------

  HTTP-сервер Apache - это мощный и гибкий, совместимый с HTTP / 1.1.
  веб сервер. Первоначально разработан как замена NCSA HTTP
  Server, он стал самым популярным веб-сервером на
  Интернет.В рамках проекта Apache Software Foundation
  разработчики стремятся совместно разрабатывать и поддерживать надежную,
  коммерческий, стандартный сервер со свободно доступными
  исходный код.

  Последняя версия
  ------------------

  Подробную информацию о последней версии можно найти в Apache HTTP.
  страницу серверного проекта по адресу http://httpd.apache.org/.

  Документация
  -------------

  Документация, доступная на дату выпуска этого выпуска:
  включены в формате HTML в каталог docs / manual /.Большинство
  актуальную документацию можно найти на
  http://httpd.apache.org/docs/trunk/.

  Монтаж
  ------------

  Пожалуйста, посмотрите файл под названием INSTALL. Примечания к платформе могут быть
  можно найти в README.platforms.

  Лицензирование
  ---------

  См. Файл LICENSE.

  Уведомление о криптографическом программном обеспечении
  -----------------------------

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

  Министерство торговли США, Промышленное бюро и
  Security (BIS) классифицировал это программное обеспечение как Export Commodity.
  Контрольный номер (ECCN) 5D002.C.1, который включает информационную безопасность
  программное обеспечение, использующее или выполняющее криптографические функции с асимметричным
  алгоритмы.Форма и характер этого Apache Software Foundation
  распространение дает право на экспорт в соответствии с Исключением из лицензии
  Исключение для неограниченного программного обеспечения ENC Technology (TSU) (см. BIS
  Правила экспортного управления, раздел 740.13) для обоих объектов
  код и исходный код.

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

    Apache httpd 2.0 и более поздние версии включают модуль mod_ssl в
       модули / ssl /
    для настройки и прослушивания соединений через зашифрованный SSL
    сетевые сокеты, выполняя вызовы универсального шифрования
    библиотека, такая как OpenSSL или зависящая от платформы ОС
    Возможности SSL.Кроме того, некоторые версии apr-util предоставляют абстрактный интерфейс.
    для симметричных криптографических функций, которые используют
    универсальная библиотека шифрования, такая как OpenSSL, NSS или
    средства операционной системы, зависящие от платформы. Этот интерфейс
    известный как интерфейс apr_crypto, с реализацией ниже
    / криптографический каталог. Интерфейс apr_crypto используется
    модуль mod_session_crypto доступен в
      модулей / сеанс
    для дополнительного шифрования информации о сеансе.Некоторые дистрибутивы объектного кода Apache httpd, обозначенные
    слово «крипто» в названии пакета может включать объектный код для
    Библиотека шифрования OpenSSL, распространяемая в форме с открытым исходным кодом от
    .

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

     o Если вы хотите получать информацию о новых выпусках кода, исправлениях ошибок,
       исправления безопасности, общие новости и информация о сервере Apache
       подпишитесь на список рассылки apache-announce, как описано в разделе
       

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

     o Если у вас есть конкретный отчет об ошибке для Apache, см. инструкции
       для сообщений об ошибках на 

     o Если вы хотите участвовать в активной разработке Apache, пожалуйста,
       подпишитесь на список рассылки `[email protected] ', как описано на
       

 

Наиболее важные шаги, которые необходимо предпринять для повышения безопасности сервера Apache - DreamHost Knowledge Base

Обзор

Apache - самый популярный веб-сервер с открытым исходным кодом, доступный для современных серверов Linux. Он предлагает гибкую конфигурацию, позволяющую использовать его в самых разных целях: от обслуживания базовых HTML-сайтов до сложных приложений PHP / Passenger до проксирования запросов в качестве обратного прокси-шлюза.Учитывая его популярность и простоту использования, очень важно установить и поддерживать безопасную среду для установок Apache.

В этой статье предполагается, что вы установили и настроили Apache на экземпляре Debian или Ubuntu:

Поддерживать обновление Apache

Apache имеет хорошую репутацию в области безопасности, и ошибки безопасности редко обнаруживаются на самом веб-сервере. Тем не менее, важно постоянно обновлять Apache, чтобы воспользоваться последними доступными функциями безопасности, стабильности и функций.Как правило, это просто вопрос обновления пакета Apache, предоставляемого ОС дистрибутива (например, через apt , yum и т. Д.). Также рекомендуется, чтобы операторы серверов Apache следили за списком рассылки объявлений Apache Server, чтобы быть в курсе последних новостей от команды разработчиков Apache. Вы можете подписаться на список здесь:

Защита конфигураций

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

Запуск от имени непривилегированного пользователя

В области безопасности принцип наименьших привилегий гласит, что объекту не следует давать больше разрешений, чем необходимо для достижения своих целей в данной системе. В контексте вашего веб-сервера это означает блокировку Apache для запуска только с разрешениями, необходимыми для запуска. Первым шагом в этом процессе является настройка Apache для работы от имени непривилегированного пользователя системы (например,г., а не корень). Это делается путем установки переменных APACHE_RUN_USER и APACHE_RUN_GROUP в файле / etc / apache2 / envvars:

Отредактируйте файл и измените следующие строки:

 [пользователь @ экземпляр] $ sudo vim / etc / apache2 / envvars
# Поскольку нет разумного способа получить проанализированную конфигурацию apache2 в скриптах, некоторые
# настройки определяются через переменные среды и затем используются в apache2ctl,
# /etc/init.d/apache2, /etc/logrotate.d/apache2 и т. д.
экспорт APACHE_RUN_USER = apache
экспорт APACHE_RUN_GROUP = apache
 
Серверы

Apache, распространяемые как общий пакет ОС, также могут использовать имя пользователя и группы, например www-data или никто.Независимо от выбора имени пользователя убедитесь, что выбранный пользователь / группа имеет как можно меньше прав для правильной работы.

Отключить серверные токены

Спецификация HTTP рекомендует (но не требует), чтобы веб-серверы идентифицировали себя через заголовок Server. Исторически веб-серверы включали информацию о своей версии как часть этого заголовка. Раскрытие версии работающего Apache может быть нежелательным, особенно в средах, чувствительных к раскрытию информации. Настройте Apache так, чтобы его версия не отображалась в заголовке сервера, отредактировав следующий файл:

 [пользователь @ экземпляр] $ sudo vim / etc / apache2 / conf-available / security.conf 

В этом файле вы увидите несколько ServerTokens. Убедитесь, что все они закомментированы и отображается только ProductOnly.

 #ServerTokens
#ServerTokens Minimal
#ServerTokens OS
#ServerTokens Full
ServerTokens ProductOnly; 

Перезапустите Apache, чтобы обновить изменения.

 [пользователь @ экземпляр] $ sudo service apache2 reload 

Отключить файлы .htaccess

Файлы .htaccess

- это мощная функция, которая позволяет Apache расширять свою конфигурацию за пределы основного файла конфигурации.Хотя это может быть удобно, но представляет угрозу безопасности, поскольку Apache будет читать любой файл .htaccess на своем пути - даже те, которые размещены злоумышленником, который может поставить под угрозу сервер. Может быть желательно заблокировать конфигурацию Apache, полностью отключив файлы .htaccess. Это можно сделать, отредактировав директиву AllowOverride в файле /etc/apache2/apache2.conf:

 [пользователь @ экземпляр] $ sudo vim /etc/apache2/apache2.conf
AllowOverride Нет 

Кроме того, детализированный контроль над тем, в каких директивах Apache можно использовать.Файлы .htaccess также можно контролировать с помощью AllowOverride:

 AllowOverride AuthConfig Индексы 

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

Ограничить доступ по IP

Чувствительные области веб-сайтов, такие как панели управления администратора, должны иметь строгий контроль доступа. Apache позволяет легко занести в белый список IP-доступ к определенным местоположениям вашего веб-сайта и запретить трафик для всех других IP-адресов.Вы можете добавить следующее в свой файл /etc/apache2/apache2.conf.

 <Каталог / ПУТЬ / К / WEBDIR / wp-admin>
    # разрешить доступ с одного IP и дополнительного диапазона IP,
    # и заблокировать все остальное
    Требуется ip 1.2.3.4
    Требуется ip 192.168.0.0/24
 

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

Ограничить доступ паролем

Доступ к определенным местам также можно настроить с помощью учетных данных на основе пароля с помощью утилиты htpasswd.Для получения дополнительных сведений см. Следующую статью:

Предотвращение DoS-атак

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

Включить mod_reqtimeout

mod_reqtimeout - это модуль Apache, предназначенный для отключения соединений от клиентов, которые слишком долго отправляют свой запрос, например, как это наблюдается в атаке Slowloris. Этот модуль предоставляет директиву, которая позволяет Apache закрыть соединение, если он обнаруживает, что клиент не отправляет данные достаточно быстро. Например, добавьте это в свой файл /etc/apache2/apache2.conf:

 Заголовок RequestReadTimeout = 10-20, MinRate = 500, тело = 20, MinRate = 500 

В этом примере Apache закроет соединение, если клиенту требуется более 10 секунд для отправки своих заголовков HTTP или если клиенту требуется более 20 секунд для отправки заголовков со скоростью 500 байт в секунду.

Apache также закроет соединение, если клиенту потребуется более 20 секунд для отправки тела запроса, но разрешит выполнение запроса до тех пор, пока клиент отправляет более 500 байт в секунду.

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

Защита SSL / TLS

Убедитесь, что на всех сайтах вашего сервера установлен сертификат SSL. Вы можете установить бесплатный сертификат Let's Encrypt, выполнив следующие инструкции:

Принудительно использовать все соединения через TLS

Если вы установили сертификат Let's Encrypt, как показано выше, у вас уже была возможность принудительно использовать весь трафик через SSL. Если вы не используете сертификат Let's Encrypt, вы также можете сделать это, добавив следующее в файл конфигурации вашего сайта, расположенный по адресу / etc / apache2 / sites-available / example.com.conf.

Сначала убедитесь, что модуль заголовков активен.

 [пользователь @ экземпляр] $ sudo a2enmod заголовки
[пользователь @ экземпляр] $ sudo service apache2 перезапуск 

Затем вы можете добавить следующее в файл .conf вашего сайта.

 
Заголовок всегда установлен Strict-Transport-Security «max-age = 15768000; includeSubDomains; preload»
 

Для всех соединений с открытым текстом настройте Apache для отправки 301 редиректа для запросов к TLS-версии сайта:

 
    [...]
    ServerName example.com
    Перенаправление постоянное / https://example.com/
 

Дополнительные меры безопасности

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

Установите WAF

WAF (брандмауэр веб-приложений) - это часть программного обеспечения, предназначенная для проверки трафика HTTP / HTTPS, отклонения злонамеренных запросов и, как правило, выступает в качестве дополнительного уровня безопасности в веб-стеке HTTP.Правильно настроенный WAF может защитить ваш сайт от атак SQLi, XSS, CSRF и DDoS, а также обеспечить смягчение атак методом грубой силы и исправление угроз нулевого дня. Самый популярный и стабильный WAF для Apache - ModSecurity. Посетите страницу проекта на GitHub для получения дополнительной информации об установке и настройке.

Автоматический анализ журналов + мониторинг

Такие программы, как Fail2Ban, можно использовать для мониторинга доступа Apache и журналов ошибок, поиска шаблонов атак и принятия мер против атакующего клиента (таких как удаление IP-адресов, сообщение о вредоносном поведении владельцу IP и т. Д.).Fail2Ban является расширяемым, что позволяет создавать уникальные шаблоны поиска и поведения ответа. Дополнительные сведения и подробности по установке и настройке см. На странице проекта на GitHub:

.

Ограничение входящего трафика через IPTables

Помимо защиты самого Apache, важно защитить среду хоста, используемую для размещения веб-сервера. Блокирование доступа к таким вещам, как SSH, может значительно повысить безопасность хоста, предотвращая попытки вторжения. Распространенным подходом является занесение в белый список известных IP-адресов, которые будут получать доступ к хосту через SSH и запрещать весь другой трафик порта 22, или использовать поле перехода, которое строго фильтрует доступ к оболочке.Вы также можете сделать это, настроив настраиваемую группу безопасности для своего экземпляра. См. Дополнительную информацию в следующей статье:

Разверните свои приложения на облачных серверах сегодня

Как настроить веб-сервер Apache

Я уже много лет размещаю свои собственные веб-сайты. После перехода с OS / 2 на Linux более 20 лет назад я использовал Apache в качестве серверного программного обеспечения. Apache надежен, хорошо известен и довольно прост в настройке для базовой установки.На самом деле не так уж сложно настроить более сложную настройку, например, несколько веб-сайтов.

Установка и настройка веб-сервера Apache должны выполняться от имени пользователя root. Настроить брандмауэр также нужно с правами root. Использование браузера для просмотра результатов этой работы должно выполняться как пользователь без полномочий root. (Я использую пользователя student на моем виртуальном хосте.)

Установка

Примечание. Эта статья была обновлена ​​с использованием Fedora 33 с Apache 2.4.46. Если вы используете другой дистрибутив или другую версию Fedora, ваши команды, а также расположение и содержимое файлов конфигурации могут отличаться. Однако строки конфигурации, которые необходимо изменить, одинаковы независимо от распределения.

Веб-сервер Apache прост в установке. С помощью одной команды вы можете установить его и все необходимые зависимости:

  $ dnf установить httpd  

Все файлы конфигурации для Apache находятся в / etc / httpd / conf и / etc / httpd / conf.г . Данные для веб-сайтов, которые вы будете запускать с Apache, по умолчанию расположены в / var / www , но вы можете изменить это, если хотите.

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

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

Сначала найдите время и просмотрите файл httpd.conf , чтобы ознакомиться с ним. Одна из вещей, которые мне нравятся в версиях большинства файлов конфигурации для Red Hat, - это количество комментариев, описывающих различные разделы и директивы конфигурации в файлах. Файл httpd.conf не является исключением, поскольку он довольно хорошо прокомментирован. Используйте эти комментарии, чтобы понять, что настраивает файл.

Первым изменяемым элементом является оператор Listen , который определяет IP-адрес и порт, на котором Apache должен прослушивать запросы страниц.Прямо сейчас вам просто нужно сделать этот веб-сайт доступным для локального компьютера, поэтому используйте адрес localhost . Когда вы закончите, линия должна выглядеть так:

  Слушайте 127.0.0.1:80  

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

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

  DocumentRoot "/ var / www / html"  

RPM установки Apache создает дерево каталогов / var / www . Если вы хотите изменить место, где хранятся файлы веб-сайта, этот элемент конфигурации используется для этого. Например, вы можете захотеть использовать другое имя для подкаталога www , чтобы сделать идентификацию веб-сайта более явной.Это может выглядеть так:

  DocumentRoot "/ var / mywebsite / html"  

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

Однако необходимо еще одно изменение: открыть порт 80 в нашем брандмауэре. Я использую iptables в качестве брандмауэра, поэтому я изменяю / etc / sysconfig / iptables , чтобы добавить оператор, разрешающий протокол HTTP.Весь файл выглядит так:

 

# образец конфигурации для службы iptables
# вы можете изменить это вручную или использовать system-config-firewall
# пожалуйста, не просите нас добавлять дополнительные порты / службы к этой конфигурации по умолчанию
* filter
: INPUT ACCEPT [0: 0 ]
: FORWARD ACCEPT [0: 0]
: OUTPUT ACCEPT [0: 0]
-A INPUT -m state --state RELATED, ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT - i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host -hibited
-A FORWARD -j REJECT --reject-with icmp-host -hibited
COMMIT

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

  [root @ testvm1 ~] # cd / etc / sysconfig /; iptables-восстановление iptables  

Создайте файл index.html

Файл index.html - это файл по умолчанию, который веб-сервер будет обслуживать, когда вы заходите на веб-сайт, используя только имя домена, а не конкретное имя файла HTML. В каталоге / var / www / html создайте файл с именем index.html . Добавьте содержимое Hello World .Вам не нужно добавлять разметку HTML, чтобы это работало. Единственная задача веб-сервера - обслуживать поток текстовых данных, и сервер не знает, какая это дата и как ее отобразить. Он просто передает поток данных запрашивающему хосту.

После сохранения файла установите право собственности на apache.apache .

  [root @ testvm1 html] # chown apache.apache index.html  

Запустите Apache

Apache запустить очень просто. Текущие версии Fedora используют systemd .Выполните следующие команды, чтобы запустить его, а затем проверить состояние сервера:

 [root @ testvm1 ~] # systemctl start httpd 
[root @ testvm1 ~] # статус systemctl httpd
● httpd.service - HTTP-сервер Apache
Загружено: загружено (/usr/lib/systemd/system/httpd.service; отключено; предустановка поставщика: отключено)
Активен: активен (работает) с Thu 2018-02-08 13:18:54 EST; 5с назад
Документы: мужчина: httpd.service (8)
Основной PID: 27107 (httpd)
Статус: «Обработка запросов... "
Задач: 213 (лимит: 4915)
CGroup: /system.slice/httpd.service
├─27107 / usr / sbin / httpd -DFOREGROUND
├─27108 / usr / sbin / httpd -DFOREGROUND
├─27109 / usr / sbin / httpd -DFOREGROUND
├─27110 / usr / sbin / httpd -DFOREGROUND
└─27111 / usr / sbin / httpd -DFOREGROUND

, 8 февраля, 13:18:54 testvm1 systemd [1]: Запуск HTTP-сервера Apache ...
, 8 февраля, 13:18:54 testvm1 systemd [1]: Запуск Apache HTTP-сервер.

На вашем сервере команды могут отличаться. В системах Linux, которые используют сценарии запуска SystemV, команды будут такими:

 

[root @ testvm1 ~] # service httpd start
Запуск httpd: [Fri Feb 09, 08:18:07 2018] [OK]
[root @ testvm1 ~] # service httpd status
httpd (pid 14649) запущен. ..

Если у вас есть веб-браузер, такой как Firefox или Chrome, на вашем хосте, вы можете использовать URL-адрес localhost в строке URL-адреса браузера, чтобы отобразить свою веб-страницу, даже если она есть.Вы также можете использовать веб-браузер в текстовом режиме, например Lynx, для просмотра веб-страницы. Сначала установите Lynx (если он еще не установлен).

  [root @ testvm1 ~] # dnf -y установить lynx  

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

  [root @ testvm1 ~] # lynx localhost  

Результат выглядит так в моем терминальном сеансе. Я удалил много пустого места на странице.

 Hello World 

Команды: используйте клавиши со стрелками для перемещения, '?' для помощи, «q», чтобы выйти, «<-», чтобы вернуться.
Клавиши со стрелками: вверх и вниз для перемещения. Право перехода по ссылке; Осталось вернуться.
H) elp O) ptions P) rint G) o M) на экране Q) uit / = поиск [удалить] = список истории

Затем отредактируйте файл index.html и добавьте немного разметки HTML, чтобы он выглядел так:

  

Привет, мир

Теперь обновите браузер. Для Lynx используйте комбинацию клавиш Ctrl + R. Результаты выглядят немного иначе. Текст в цвете, так Lynx отображает заголовки, если ваш терминал поддерживает цвет, и теперь он центрирован.В браузере с графическим интерфейсом текст будет большим шрифтом.

 Hello World 

Команды: используйте клавиши со стрелками для перемещения, '?' для помощи, «q», чтобы выйти, «<-», чтобы вернуться.
Клавиши со стрелками: вверх и вниз для перемещения. Право перехода по ссылке; Осталось вернуться.
H) elp O) ptions P) rint G) o M) на экране Q) uit / = поиск [удалить] = список истории

Расставания

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

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

Эта статья была первоначально опубликована в 2018 году и была обновлена ​​редактором.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *