Что такое веб-сервер Apache и как им пользоваться 🍂
12 апреля 2021
5 688
Время чтения ≈ 11 минут
Интернет невозможно представить без всевозможных сайтов. Все они работают за счёт веб-серверов – программ, отвечающих за передачу данных от физических хранилищ до браузеров пользователей.
Веб-сервер работает в качестве «посредника» между пользователем и физическим сервером. При получении запроса от посетителя он ищет необходимую страницу в каталоге с сайтом и отправляет её в ответ. Браузер принимает полученный файл, обрабатывает его и отображает на экране посетителя.
Передача информации веб-сервера выполняется по протоколу HTTP (HyperText Transfer Protocol), изначально созданного для работы с HTML-страницами. Уже позже стало возможным отправлять через HTTP файлы любых типов. В последнее время преобладают сайты, работающие через HTTPS. Это улучшенная версия HTTP, которая отличается от предшественника тем, что поддерживает шифрование трафика TLS/SSL между пользователем и сервером.
Звание самого популярного веб-сервера в мире уже более 25 лет удерживает за собой Apache HTTP Server, который принято называть сокращенно Apache или «Апач». Сегодня программа обслуживает более 40% всех существующих серверов, включая проекты IBM, eBay, PayPal и Facebook.
Рассмотрим причины популярности Apache подробнее. Это не только пополнит копилку знаний об интернет-технологиях, но и поможет сделать правильный выбор веб-сервера для размещения сайта в будущем.
Что это такое
Apache – это свободное программное обеспечение для размещения веб-сервера. Он хорошо показывает себя в работе с масштабными проектами, поэтому заслуженно считается одним из самых популярных веб-серверов. Кроме того, Apache очень гибок в плане настройки, что даёт возможность реализовать все особенности размещаемого веб-ресурса.
История создания
Apache HTTP Server был выпущен в 1995 году разработчиком Робертом Маккулом из Университета штата Иллинойс (UIUC). Продукт возник как доработанная версия другого HTTP-клиента – NCSA HTTPd 1.3, созданного Робертом ранее.
Основой для модификации стали многочисленные «патчи» или программные «заплатки» для NCSA. Именно отсюда (а не от индейского племени апачей) изначально и происходит название Apache. Оно расшифровывается как «a patchy server» или «сервер с патчами».
Разработкой и поддержкой продукта с 1999 года занимается организация Apache Software Foundation (ASF) – сообщество экспертов-энтузиастов со всего мира. Этим же некоммерческим фондом была создана официальная лицензия ПО – Apache License.
В 2000 году ASF представило новую версию Apache 2.0 с полностью переработанной архитектурой, свободной от кода NCSA. С этого момента веб-сервер развивается по двум основным веткам – 1.х и 2.х.
Как устроен Apache
Архитектура
Apache состоит из ядра и динамической модульной системы. Параметры системы изменяются с помощью конфигурационных файлов.
Ядро
Ядро Apache разработано Apache Software Foundation на языке C. Основные функции — обработка конфигурационных файлов, протокол HTTP/HTTPS и загрузка модулей. Ядро может работать без модулей, но будет иметь ограниченный функционал.
Модульная система
Модуль – отдельный файл, подключение которого расширяет изначальный функционал ядра. Они могут включаться в состав ПО при первоначальной установке или подгружаться позже через изменение конфигурационного файла.
Большинство из них отвечает за определенный аспект обработки клиентского запроса – поддержку различных языков программирования, безопасность, кэширование, аутентификацию и т.д. Таким образом, большая задача разбивается на несколько фаз, каждую из которых решает отдельный, узкоспециализированный модуль.
Для Apache существует больше 500 модулей. Многие популярные веб-приложения сразу выпускаются в виде модуля к Apache. Например, ISPmanager и VDSmanager.
Конфигурация
Система конфигурации Apache работает на текстовых файлах с прописанными настройками. Она подразделяется на три условных уровня, для каждого из которых имеется свой конфигурационный файл:
- Уровень конфигурации сервера (файл httpd.conf) – основной конфигурационный файл. Действие распространяется на весь механизм веб-сервера.
- Уровень каталога (файл .htaccess) – дополнительный конфигурационный файл. Его директивы охватывают только каталог, где расположен файл, а также вложенные подкаталоги.
- Уровень виртуального хоста (файл
Обычно конфигурационные файлы Apache находятся в папке «conf», а дополнительные конфигурационные файлы во вложенной в нее папке «extra». Внести изменения можно как через редактирование самого файла, так и через командную строку.
Виртуальные хосты
Веб-хост – это компонент сервера, отвечающий за обслуживание одного размещенного на нем объекта (сайта, виртуального сервера). Система виртуальных хостов Apache позволяет одновременно запускать несколько проектов с одного IP-адреса.
В Apache можно установить настройки модуля и ядра, а также вводить лимиты на потребление серверных ресурсов (трафик, RAM, CPU) для каждого виртуального хоста в отдельности. Это технологическая основа всего механизма веб-хостинга.
Достоинства и недостатки Apache
Плюсы
- Доступность. Это программное обеспечение с открытым исходным кодом. Значит, его может бесплатно использовать или модифицировать любой желающий. Разработчики по всему миру создают конфигурации и модули веб-сервера для своих специфических нужд. По этой же причине Apache регулярно получает полезные дополнения, расширяющие его базовый функционал.
- Гибкость настройки. Apache использует несколько конфигурационных файлов для управления веб-сервером. Это позволяет настроить ПО под узконаправленные задачи.
- Функциональность. У Apache динамическая модульная структура. Можно быстро подключать дополнительный функционал в виде скачиваемых модулей, даже без обращения к внешним источникам. Это позволяет решать целый комплекс важнейших задач в области безопасности, кэширования, редактирования URL, распределения нагрузки. Благодаря гибридным модулям MPM, Apache может одинаково успешно обслуживать статический и динамический контент. Есть возможность оперативно отключать ненужные модули и ускорять работу веб-сервера
- Кроссплатформенность. Apache работает как на Windows, так и на всех Unix-подобных системах. Администрирование веб-сервером не имеет серьёзных отличий на разных ОС. Индивидуален только процесс установки и расположение директорий с файлами программы.
- Совместимость. Apache работает на базе скриптовых или веб-ориентированных языков (PHP, Python, Tcl, Ruby, Perl, ASP), что делает его совместимым с самым широким спектром баз данных и серверного ПО. Многие веб-приложения и инструменты сразу выходят со средствами запуска из-под Apache в виде PHP-модуля. Веб-сервер, поддерживает технологии FastCGI и CGI, позволяющие пользоваться программными продуктами на объектно-ориентированных языках Java, sh, C, C++.
- Масштабируемость. Подходит для веб-ресурсов любого масштаба. Apache хорошо работает как на одностраничном сайте (лендинге), так и на многостраничном сайте с ежедневной аудиторией в десятки тысяч посетителей.
Минусы
- Производительность. Скорость обработки запросов Apache несколько ниже, по сравнению со своими конкурентами. Гибкость веб-сервера в некоторых случаях вредит производительности. Например, Apache приходится каждый раз считывать несколько конфигурационных файлов на сервере, затрачивая системные ресурсы и время. Но этот и многие другие факторы можно исправить, отключив ненужные опции. Правда в таком случае функциональность Apache не будет сильно отличаться от других веб-серверов.
- Сложная конфигурация повышает уязвимость. Возможность подключать модули в Apache это не всегда преимущество. Чем больше модулей, тем сложнее становятся настройки. Соответственно, больше шансов допустить критические пробелы в контуре безопасности.
- Синтаксис конфигов.. В файлах с параметрами программы используются разнообразные переменные, поэтому настройка и управление веб-сервером может показаться сложной новичкам. Упростить администрирование Apache можно с помощью бесплатного инструмента Apache GUI.
- Излишний функционал. Даже без дополнительных модулей Apache предоставляет пользователям массу возможностей. Правда, большинство использует лишь небольшую часть базового функционала приложения. Поэтому часто после установки приходится тратить время на отключение «лишних» модулей.
Альтернативы Apache
NGINX
Nginx (Engine-X, «энжинкс») — второе по популярности веб-серверное приложение и главный конкурент Apache. Было выпущено в 2004 году под открытой лицензией BSD. Изначально приложение создавалось для решения проблемы масштабирования, известной как «10 тысяч соединений» (С10к). Это значит, что до Nginx веб-сервер не был способен одновременно обрабатывать пользовательские запросы более чем с 10 000 подключений.
У этого веб-сервера асинхронная событийно-ориентированная архитектура (event-driven), которая позволяет добиваться быстрого масштабирования даже при минимальных ресурсах. Вместо того, чтобы создавать новый процесс для каждого пользовательского запроса, Nginx обрабатывает множество соединений в едином потоке.
Nginx отлично подходит для веб-проектов с высокой посещаемостью. Однако веб-сервер не может самостоятельно работать с динамическим контентом. Поэтому его чаще используют для статических веб-сайтов или например, в связке с PHP-FPM или Apache HTTP Server как прокси-сервер.
Lighttpd
Веб-сервер Lighttpd (произносится «лайти») — кроссплатформенное программное обеспечение на языке С. Выпущено в 2003 году под лицензией BSD. «Лайти» работает на операционных системах Windows и семейства Unix/Linux. Приложение поддерживает технологии FastCGI, SCGI, HTTP proxy, Auth, перезаписи URL и AJP (с версии 1.5).
Как и Nginx, изначально «Лайти» создавалось для решения проблемы «С10к». Неудивительно, что его специализация — веб-проекты с большой посещаемостью. В числе компаний, использующих Lighttpd, такие гиганты, как Google, Википедия, Яндекс и Ubuntu.
Microsoft IIS
Internet Information Services (IIS) — набор сервисов для создания веб-сервера от компании Microsoft. Распространяется в комплекте с операционными системами Windows NT как дополнительно устанавливаемый компонент. Веб-сервер поддерживает технологии CGI, FastCGI, ISAPI и SSI.
Главная сила IIS – в глубокой интеграции и поддержке продуктов Microsoft. Его часто выбирают те, чьи ресурсы работают на движке ASP.NET и используют скриптовый язык ASPX. Главный недостаток – жесткая привязка к операционной системе Windows и отсутствие версий для Unix/Linux.
Tomcat
Apache Tomcat — это контейнер сервлетов, который обрабатывает спецификации Java. Например, Java Servlet, Java Server Pages (JSP), Java EL и WebSocket. Продукт был разработан фондом Apache Software Foundation на основе открытой лицензии Apache License 2.0. Tomcat используется как в качестве самостоятельного веб-сервера, так и в связке с Apache HTTP Server.
Приложение написано на языке Java и способно автоматически загружать Java-библиотеки. Его основная специализация — веб-проекты с динамическим содержимым. Но у Apache Tomcat хуже возможности для настройки, что сужает его сферу применения. Например, для запуска WordPress эффективнее использовать обычный HTTP-сервер Apache.
Заключение
Сервер Apache – универсальный инструмент для быстрого и безопасного запуска интернет-проектов разного масштаба. Веб-сервер совместим с большинством существующих операционных систем, программных продуктов и языков разработки.
Система конфигурационных файлов дает «Апач» гибкие возможности для настройки, а динамически подгружаемые модули расширяют функционал до максимума. Особенно эффективно использовать веб-сервер Apache в связке с ближайшим аналогом – Nginx.
Для работы с «Апач» пользователю нужен определенный уровень IT грамотности. Желательно знать основы программирования и веб-администрирования. Но процесс сильно упрощает активное сообщество поддержки и отлично развитая база официальной документации.
Раскройте все возможности и преимущества веб-сервера Apache с надёжным хостингом от Eternalhost!
Оцените материал:
[Всего голосов: 3 Средний: 5/5]Что такое 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 подключений одновременно.
- Так как Apache использует структуру основанную на потоках, владельцы сайтов с высоким трафиком могли столкнуться с проблемой производительности. Nginx один из веб-серверов, который был нацелен на решение проблемы c10k и возможно это одно из самых успешных решений.
- Nginx имеет событийно ориентированную архитектуру, которая не создаёт новый процесс для каждого запроса. Вместо этого он обрабатывает каждый входящий запрос в едином потоке. Этот главный процесс управляет несколькими рабочими процессами, которые выполняют непосредственную обработку запросов. Модель Nginx, основанная на событиях распространяет запросы пользователей среди рабочих процессов эффективным путём, что приводит к лучшей масштабируемости.
- Если вам нужно обслуживание сайта с высокой посещаемостью, то Nginx – отличный выбор, поскольку он может сделать это, затратив минимальные ресурсы. И не случайно он используется сайтами с большим количеством показов, такими как: Netflix, Hulu, Pinterest и Airbnb.
- Однако для мелких и средних игроков, Apache имеет несколько преимуществ в сравнении с Nginx, среди которых: более простая настройка, множество модулей и среда дружественная для начинающих.
Apache или Tomcat
Tomcat – это веб-сервер также разработанных Apache Software Foundation, поэтому его официальное название Apache Tomcat. Это тоже HTTP-сервер, однако он обрабатывает приложения Java вместо статических сайтов. Tomcat может запускать несколько Java спецификаций, таких как: Java Servlet, Java Server Pages (JSP), Java EL и WebSocket.
- Tomcat был разработан специально для приложений на Java, в то время как Apache позиционируется как HTTP-сервер. Вы можете использовать Apache совместно с другими языками программирования (PHP, Python, Perl и т.д.) с помощью специального модуля Apache (mod_php, mod_python, mod_perl и др.).
- Хотя вы и можете использовать сервер Tomcat для статических веб-страниц, но это будет менее эффективно, чем использование Apache. Например, Tomcat заранее загружает виртуальную машину Java и другие Java-библиотеки, которые могут быть ненужными для работы вашего сайта.
- Tomcat также хуже настраиваемых в сравнении с другими веб-серверами. Например, для запуска WordPress, лучшим выбором будет стандартный HTTP-сервер, такой как Apache или NGINX.
Apache: преимущества и недостатки
Веб-сервер Apache может быть прекрасным выбором для запуска вашего сайта на стабильной и универсальной платформе. Но у него есть и свои недостатки, на которые стоит обратить внимание.
Преимущества:
- Бесплатный даже для использования в коммерческих целях.
- Надёжный, стабильное программное обеспечение.
- Часто обновляемый, регулярные патчи безопасности.
- Гибкий благодаря своей модульной структуре.
- Легко настраиваемый, дружелюбный для начинающих.
- Кроссплатформенный (работает одинаково хорошо на Unix и на Windows серверах).
- Работает для сайтов на WordPress сразу после установки без дополнительных настроек.
- Большое сообщество и легко доступная поддержка в случае любой проблемы.
Недостатки:
- Проблемы производительности на сайтах с большим трафиком.
- Слишком много параметров конфигруации могут привести к уязвимостям в безопасности.
Что ещё почитать?
Хотите узнать больше об основах хостинга сайтов и разработке? Познакомьтесь с нашими руководствами:
Итак, что такое Apache?
Apache один из наиболее популярных веб-серверов, который позволяет вам запускать безопасно сайт без излишней головной боли. Это наиболее частый выбор для сайтов небольших проектов и малого бизнеса.
Вы можете установить сайт WordPress на веб-сервере Apache без каких-либо настроек. Кроме того, Apache прекрасно работает со многими другими системами управления контентом (Joomla, Drupal и др.), веб-фреймворками (Django, Laravel и др.) и языками программирования. Это делает его уверенным решением для всех типов хостинг платформ, таких как VPS или общий хостинг.
Елена имеет профессиональное техническое образование в области информационных технологий и опыт программирования на разных языках под разные платформы и системы. Более 10 лет посвятила сфере веб, работая с разными CMS, такими как: Drupal, Joomla, Magento и конечно же наиболее популярной в наши дни системой управления контентом – WordPress. Её статьи всегда технически выверены и точны, будь то обзор для WordPress или инструкции по настройке вашего VPS сервера.
что это такое и как им пользоваться
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 – несомненно, один из лучших веб-серверов, в чем вы смогли сами убедиться, дочитав мой обзор.
Начало работы — 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: установка, настройка и применение
Web-сервером называют и физический «компьютер-сервер», и специализированное программное обеспечение (ПО), принимающее запросы пользователей с браузеров и выдающее им ответы, используя протокол http/https. Практически у всех провайдеров услуг виртуального хостинга в качестве программного обеспечения для работы сайтов используется web-сервер Apache (также известный как httpd).
Apache — это свободное программное обеспечение, которое работает на ОС Linux и Windows и распространяется в виде файлов, готовых к установке.
Часто Apache используется на хостингах в виде backend web-сервера — работающего с запросами, которые поступили из форм на сайте (например, из корзины товаров).
Backend-сервер работает в связке с frontend web-сервером, который отвечает за отдачу статического контента, видимого пользователю в браузере (HTML, CSS, JavaScript). Таким fronted-сервером является Nginx, который устанавливают вместе с веб-сервером Apache. Они распределяют между собой нагрузку, что ускоряет работу сайта.
Для Linux
Web-сервер Apache на платформе Linux используется вместе с:
Все вместе это называется технологией LAMP (Linux-Apache-MySQL-PHP). На применение связки LAMP ориентируется большинство провайдеров виртуального хостинга.
Apache поддерживает панели управления сервером:
Для Windows
На платформе Windows Apache вместе с другими веб-серверами включен в состав популярных наборов для локального хостинга на компьютере пользователя и разработки web-сайтов Denwer и AMPPS. Вы можете установить себе на компьютер любой из них, включая Apache.
На реальных хостинг-серверах с ОС Windows в большинстве случаев используется веб-сервер IIS.
Принципы работы Apache
Как было сказано выше, основная задача Apache — это обработка запросов web-браузеров на выдачу информации по http/https-протоколу.
Информация — это:
- HTML-страницы;
- изображения;
- файлы;
- медиапотоки.
Работает это так:
1. При использовании http/https браузер запрашивает страницу по определенному адресу — URL (Universal Resource Locator).
2. Web-сервер обрабатывает запрос и либо отправляет обратно в браузер запрошенную информацию, либо возвращает код ошибки.
Apache основан на модульной архитектуре и содержит в своем составе более 500 разнообразных компонентов-модулей, среди которых:
- PageSpeed — отвечает за оптимизацию веб-сервера и контента сайта.
- mod_security — отвечает за безопасность, а именно фильтрацию нежелательных видов трафика.
- mod_status — используется для мониторинга запросов и нагрузки на веб-сервер.
- mod rewrite — самый популярный модуль, который отвечает за редиректы и URL на сайте.
Принцип работы Apache: каждый http/https-запрос создает отдельный процесс, который обрабатывает данный запрос. Если на сайт перешли условно 5 пользователей и нажали на кнопку «заказать», то на сервере будет активно 5 процессов. Пока они не закончатся, другие процессы не могут быть запущены.
Одновременно web-сервер может обрабатывать большое количество http/https-запросов, благодаря чему достигается его многопоточность. Максимальное число одновременно работающих процессов ограничивается в настройках Apache.
Плюс системы: разделение запросов между процессами способствует безопасности и скорости работы web-сервера.
Минус системы: такой подход приводит к относительно большому потреблению оперативной памяти.
Информацию о настройках web-сервера, используемых модулях, различных правилах обработки запросов, настройках web-сайтов Apache хранит в виде набора текстовых конфигурационных файлов. Соответственно, изменение параметров работы Apache происходит путем их редактирования.
Отдельные строки-команды конфигурации Apache называются директивами.
Основной конфигурационный файл Apache, в зависимости от операционной системы, называется httpd.conf или apache2.conf.
Виртуальные хосты Apache
Компьютер-сервер, на котором размещаются web-сайты, имеет лишь один IP-адрес. Чтобы знать, к какому именно сайту идет запрос, в протоколе http/https для web-браузера указывается название конкретного сайта, а не IP-адреса.
В Apache входящие запросы между разными web-сайтами распределяет функция виртуальных хостов (VirtualHost). Это специальные разделы конфигурации Apache, описывающие набор настроек для конкретного сайта, включая его основную папку в файловой системе сервера (root-folder).
Если вы используете VPS без панели управления, то вы как администратор сервера можете сконфигурировать Apache для обслуживания большого количества различных доменных имен, использующих один и тот IP-адрес. Каждое из этих доменных имен соответствует отдельному полнофункциональному web-сайту.
При поступлении http/https-запроса по доменному имени Apache “смотрит”, какому из виртуальных хостов соответствует запрос.
Если в конфигурации найден совпадающий по названию виртуальный хост, то запрос обрабатывается, согласно его конфигурации.
Если совпадения не найдены, то используются настройки по умолчанию (обычно это первый из списка виртуальный хост).
Также настройки по умолчанию применяются в том случае, если был http/https-запрос на IP-адрес сервера без указания конкретного доменного имени.
#Прием запросов на порт 80
Listen 80#Секция настроек виртуального хоста для сайта www.example.com
<VirtualHost 172.20.30.40:80>
ServerName www.example.com
DocumentRoot «/www/example»
</VirtualHost>Секция настроек виртуального хоста для сайта www.example2.com
<VirtualHost 172.20.30.40:80>
ServerName www.example2.com
DocumentRoot «/www/example2»
</VirtualHost>
Пример конфигурации Apache для нескольких сайтов (виртуальных хостов)
Apache и виртуальный хостинг
На сервере провайдера Apache настраивается для одновременного обслуживания сайтов всех пользователей, которые применяют общие глобальные настройки Apache и единый набор его модулей.
Изменение глобальной конфигурации web-сервера недоступно для отдельных пользователей.
Вы можете настроить поведение отдельных web-сайтов или их подразделов при помощи встроенных в Apache механизмов. Для этого нужно разместить в папке с сайтом файл .htaccess с директивами Apache.
Apache на собственном сервере
Пользователи услуг VPS/VDS и выделенных серверов на платформе Linux могут применять Apache для размещения на сервере web-сайтов.
На платформе Linux web-сервер Apache устанавливается из командной строки так же, как и другие программы.
В зависимости от версии Linux команда для установки Apache может иметь вид:
# yum install httpd
или
# apt install apache2
Чтобы упростить настройки серверов, вы также можете использовать панели управления сервером, которые в автоматическом режиме устанавливают Apache, PHP, MySQL и другие программные компоненты.
На основании вводимых данных панель создает нужные для работы конкретного сайта конфигурационные файлы Apache, и web-сайт начинает работать.
Пример: добавление на сервер нового сайта через панель управления хостингом ISPmanager
Безопасность работы Apache
Для безопасной работы web-сайтов под управлением Apache важно контролировать доступ пользователей, что особенно актуально для виртуального хостинга, когда на одном физическом сервере работают разные сайты.
Web-сервер Apache предоставляет различные способы обеспечения безопасного размещения сайтов.
1. Каждый web-сайт на сервере имеет свою собственную основную папку, в которой находятся его файлы. Пользователь по протоколу http/https может получить доступ только к информации, содержащейся внутри этой папки (включая вложенные в нее папки). Соответственно, из соображений безопасности, папки разных сайтов не пересекаются друг с другом.
2. Apache использует систему прав доступа к файлам, которую предоставляет файловая система Linux. Обычно Apache работает на сервере с правами специального служебного пользователя (httpd или apache), но с помощью специальных модулей (например, mpm_itk_module) можно настроить Apache таким образом, чтобы его отдельные процессы, обслуживающие сайты конкретных пользователей, работали строго с их правами.
3. При необходимости в Apache можно закрыть доступ к определенной папке сайта с помощью пароля. Есть возможность настройки доступа для определенных IP-адресов и фильтрации подозрительных запросов по ключевым словам.
Модуль перенаправления Mod_rewrite
В состав Apache входит специальный модуль mod_rewrite, обеспечивающий перенаправление запросов, в зависимости от URL.
С помощью данного модуля вы сможете:
- гибко управлять переадресацией запросов к отдельным страницам сайта;
- перенаправлять пользователей на другие документы сайта или внешние адреса;
- обрабатывать случаи обращения к отсутствующим на сервере файлам и папкам.
Mod_rewrite настраивается с помощью служебного файла .htaccess, который содержит набор конфигурационных директив, используемых для управления работой конкретного сайта.
Поддержка PHP
В индустрии хостинга широко используется совместная работа Apache и языка программирования PHP. Для Apache был разработан специальный модуль mod_php, который обеспечивает для сайтов обработку кода PHP-скриптов.
Apache предоставляет возможность управления настройками PHP для конкретных сайтов с помощью конфигурационных директив, указываемых в служебном файле .htaccess.
Аналогично PHP существуют модули для взаимодействия Apache со скриптами, написанными на языках программирования:
Выводы
Преимущества
1. Apache распространяется бесплатно.
2. Это кроссплатформенное ПО.
3. Наличие обширного функционала и возможность его расширения с помощью модулей.
4. Поддержка модулей для различных языков программирования позволяет Apache обслуживать сложные динамические сайты.
5. Для владельцев web-сайта доступен удобный способ управления конфигурацией web-сервера с помощью служебного файла .htaccess.
Недостатки
1. Относительно высокое использование оперативной памяти сервера, особенно в связке с mod_php.
2. Для изменения конфигурации web-сервера требуется ручное редактирование текстовых файлов.
установка, настройка и способы защиты от атак
Веб-сервер 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 webmaster@localhost
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 2.2.22
Статья описывает процесс установки и первоначальной настройки на локальном компьютере, работающим под операционной системой Windows XP, прекрасно зарекомендовавшей себя связки программ, используемых при создании, как крупных, так и средних веб-проектов: Apache, MySQL, PHP и phpMyAdmin.
Авторы: Виктор Волков, Иван Шумилов
Содержание:
Сайт разработчика: http://www.apache.org/
Дистрибутив (Apache 2.2 Win32 Binary): http://www.apachelounge.com/download/
Прямая ссылка: httpd-2.2.22-win32.zip
Вот он – великий и ужасный. Сгубивший на своём веку множество начинающих веб-разработчиков, сложивших головы на настройке его конфигурационных файлов. 🙂 Но мы с вами люди, крепких нервов и стальных желудков — поэтому, поехали.
Начальная установка и настройка
Распакуйте архив дистрибутива в каталог C:\Apache2.
Откройте в текстовом редакторе файл «C:\Apache2\conf\httpd.conf», являющийся основным конфигурационным файлом сервера Apache.
Ну а теперь держитесь. Женщинам, старикам и детям просьба – дальше не читать. За психическое состояние людей, дочитавших статью до конца – авторы ответственности не несут. 🙂
Правка файла httpd.conf
- Для загрузки модуля mod_rewrite найдите и раскомментируйте (уберите в начале строки символ «#») данную строку:
LoadModule rewrite_module modules/mod_rewrite.so - Для загрузки PHP интерпретатора, в конец блока загрузки модулей необходимо добавить строку:
LoadModule php5_module «C:/php/php5apache2_2.dll» - Определите каталог содержащий конфигурационный файл PHP, добавив ниже следующую строку:
PHPIniDir «C:/php» - Найдите и раскомментируйте строку:
ServerName www.example.com:80
Отредактируйте ее следующим образом установив изначальное имя сервера:
ServerName localhost:80 - Найдите строку:
DocumentRoot «c:/Apache2/htdocs»
Назначьте корневую директорию управления сайтами (немного позже мы ее создадим):
DocumentRoot «C:/apache» - Найдите данный блок:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
И замените его на нижеследующий:
<Directory />
Options Includes Indexes FollowSymLinks
AllowOverride All
Allow from all
</Directory> - Удалите или закомментируйте первоначальный блок управления директориями (он нам не понадобится), который без комментариев выглядит примерно так:
<Directory «c:/Apache2/htdocs»>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory> - Найдите блок:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
Замените его на:
<IfModule dir_module>
DirectoryIndex index.html index.htm index.shtml index.php
</IfModule> - Найдите строку:
ErrorLog «logs/error.log»
Замените на нижеследующую (в этом случае просматривать глобальный файл ошибок сервера будет удобнее):
ErrorLog «C:/apache/error.log» - Найдите строку:
CustomLog «logs/access.log» common
Замените на:
CustomLog «C:/apache/access.log» common - Для работы SSI (включения на стороне сервера) следующие строки, находящийся в блоке <IfModule mime_module>, необходимо найти и раскомментировать:
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml - Добавьте ниже, в тот же блок <IfModule mime_module>, две строки:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps - И, наконец, найдите и раскомментируйте строки:
Include conf/extra/httpd-mpm.conf
Include conf/extra/httpd-autoindex.conf
Include conf/extra/httpd-vhosts.conf
Include conf/extra/httpd-manual.conf
Include conf/extra/httpd-default.conf
Сохраните изменения и закройте файл «httpd.conf»
Теперь откройте файл «C:\Apache2\conf\extra\httpd-vhosts.conf» и произведите в нем следующие изменения.
Существующие блоки примеров виртуальных хостов необходимо удалить, и вставить только нижеследующее:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot «C:/apache/localhost/www»
ServerName localhost
ErrorLog «C:/apache/localhost/error.log»
CustomLog «C:/apache/localhost/access.log» common
</VirtualHost>
Сохраните изменения и закройте файл «httpd-vhosts.conf»
Настройка конфигурационных файлов завершена, теперь необходимо установить сервис Apache2.2.
Установка сервиса Apache2.2 в картинках
Запускаем командную строку и вводим в ней «C:\Apache2\bin\httpd.exe -k install»
Вот что мы должны увидеть при успешной установке сервиса Apache2.2.
Если все прошло успешно, движемся дальше — устанавливаем ручной запуск сервиса Apache2.2 для чего проходим путь: «Start» («Пуск») → «Control Panel» («Панель управления») → «Administrative Tools» («Администрирование») → «Services» («Службы»), в открывшемся окне управления служб выбираем строку «Apache2.2» и делаем на ней двойной щелчок, после чего во вкладке «General» («Общие») выбираем ручной запуск сервиса — «Startup type: Manual» («Тип запуска: вручную»). Это необходимо сделать для того, чтобы лишние службы не загружали систему. Учитывая, что домашний компьютер используется не только для веб-разработок, но и для многих других нужд, ручной запуск и остановка, непостоянно используемых сервисов, является наиболее приемлемым.
Создание структуры каталогов виртуальных хостов
В корне диска необходимо создать каталог «apache» — в нем будут лежать ваши виртуальные хосты (домены), глобальный файл журнала ошибок «error.log» (создается программой при первом запуске, автоматически), глобальный файл доступа «access.log» (создается автоматически). В каталоге «apache» создаем еще одну пустую папку — «localhost», в которой, в свою очередь, создаем папку «www», именно в последней и надо будет держать наше добро в виде локальных скриптов. Такая, казалось бы странная структура каталогов, продиктована схожей схемой построения каталогов в системах Unix, и призвана упростить в дальнейшем ее понимание и использование.
Пример создания виртуального хоста
При необходимости установки собственных виртуальных хостов сделайте следующее:
Откройте файл «httpd-vhosts.conf», и создайте в нём блок, примерно, следующего содержания:
<VirtualHost *:80>
# Папка, в которой будет корень вашего хоста.
DocumentRoot «C:/apache/test.ru/www»
# Домен по которому вы сможете обращаться к виртуальному хосту.
ServerName test.ru
# Алиас (добавочное имя) домена.
ServerAlias www.test.ru
# Файл, в который будут записываться ошибки.
ErrorLog «C:/apache/test.ru/error.log»
# Файл журнала доступа к хосту.
CustomLog «C:/apache/test.ru/access.log» common
</VirtualHost>
Затем в каталоге «apache», создайте папку «test.ru» (прямо так, с точкой), в которой, в свою очередь, создайте папку «www».
Следующий шаг создания виртуального хоста – это изменение файла C:\WINDOWS\system32\drivers\etc\hosts операционной системы. Откройте данный файл и добавьте в него две строки:
127.0.0.1 test.ru
127.0.0.1 www.test.ru
Теперь запустите сервер Apache выполнив в командной строке «C:\Apache2\bin\httpd.exe -k start», откройте браузер, введите в адресной строке «test.ru» или «www.test.ru» и вы окажетесь в своем виртуальном хосте. Только будьте внимательны, теперь вы сможете попасть на оригинальный сайт с именем виртуального хоста («www.test.ru», если таковой существует), только закомментировав либо удалив строку: «127.0.0.1 www.test.ru», в вышеупомянутом файле «hosts».
Документация Apache, при запущенном сервере, доступна по адресу http://localhost/manual/
Остановить работу Apache можно выполнив в командной строке «C:\Apache2\bin\httpd.exe -k stop». При необходимости перезагрузить Apache, выполните в командной строке «C:\Apache2\bin\httpd.exe -k restart».
Установка и настройка веб-сервера Apache – завершена.
Создание пакетных файлов для запуска и остановки сервисов
Согласитесь, что вручную редактировать файл «hosts» при каждом запуске сервисов – это не удобно, поэтому для более удобного, одновременного запуска сервисов Apache, MySQL, и изменения файла «hosts» мы создадим два пакетных файла: на запуск и остановку, которые будут выполнять всю рутинную работу автоматически.
При использовании виртуальных хостов необходимо создать в директории C:\apache два файла: vhosts-off.txt – содержащий изначальное содержимое файла «hosts» и vhosts-on.txt – содержащий все виртуальные хосты. Обратите внимание, что при создании новых виртуальных хостов вам необходимо будет добавлять их в файл vhosts-on.txt, а не в C:\WINDOWS\system32\drivers\etc\hosts. Посмотрите на примеры ниже.
Файл vhosts-off.txt (может содержать одну единственную строку):
127.0.0.1 localhost
Пример файла vhosts-on.txt с виртуальными хостами www.test.ru и test.ru:
127.0.0.1 localhost
127.0.0.1 www.test.ru
127.0.0.1 test.ru
В той же директории C:\apache, создайте два пакетных файла: start-webserver.bat – для запуска сервисов и подмены файла «hosts», и stop-webserver.bat – для остановки сервисов и очистки файла «hosts».
Файл запуска start-webserver.bat:
@echo off
echo.
if not exist C:\apache\vhosts-on.txt goto no_vhosts
echo Create virtual hosts:
copy /v /y C:\apache\vhosts-on.txt C:\WINDOWS\system32\drivers\etc\hosts
echo.
:no_vhosts
NET start Apache2.2
NET start MySQL
Файл остановки stop-webserver.bat:
@echo off
echo.
if not exist C:\apache\vhosts-off.txt goto no_vhosts
echo Restore hosts file:
copy /v /y C:\apache\vhosts-off.txt C:\WINDOWS\system32\drivers\etc\hosts
echo.
:no_vhosts
NET stop Apache2.2
NET stop MySQL
В случае если вы не используете виртуальные хосты или хотите запустить сервисы без подмены файла «hosts», просто уберите из директории C:\apache файлы vhosts-on.txt и vhosts-off.txt.
Одновременно с сервисами удобно запускать программу Apache Monitor, отображающую в системном лотке состояние сервера Apache, для чего можно создать еще один пакетный файл «start-webserver-monitor.bat», содержание которого аналогично файлу «start-webserver.bat» с добавлением в самый конец следующей строки:
start «» «C:\Apache2\bin\ApacheMonitor.exe»
Теперь для запуска всего инструментария вам понадобится запустить файл «start-webserver-monitor.bat», или «start-webserver.bat», а для остановки «stop-webserver.bat». При желании вы можете переименовать эти файлы, переместить их в любое другое место из папки «C:\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 — это популярный кроссплатформенный веб-сервер с открытым исходным кодом, который, по количеству, является самым популярным из существующих веб-серверов.Его активно поддерживает Apache Software Foundation.
Некоторые известные компании, использующие Apache, включают Cisco, IBM, Salesforce, General Electric, Adobe, VMware, Xerox, LinkedIn, Facebook, Hewlett-Packard, AT&T, Siemens, eBay и многие другие (источник).
Помимо популярности, это еще и один из старейших веб-серверов, первый выпуск которого состоялся еще в 1995 году. Многие хосты cPanel сегодня используют Apache. Как и другие веб-серверы, Apache обеспечивает скрытые аспекты обслуживания файлов вашего веб-сайта для посетителей.
Поскольку Apache не так хорошо работает в некоторых тестах, особенно для статических веб-сайтов или веб-сайтов с высоким трафиком, Kinsta использует веб-сервер NGINX вместо Apache. Хотя NGINX не существует так долго, как Apache, его популярность и доля на рынке быстро выросли с момента его запуска в 2004 году.
Как работает Apache? Основные сведения о веб-сервере
Хотя в основе того, как функционирует веб-сервер, лежит много сложностей, основная задача всех веб-серверов состоит в том, чтобы принимать запросы от клиентов (например,грамм. веб-браузер посетителя), а затем отправьте ответ на этот запрос (например, компоненты страницы, которые посетитель хочет видеть).
Веб-сервер Apache имеет модули, которые добавляют дополнительные функции к его программному обеспечению, такие как MPM (для обработки режимов многопроцессорной обработки) или mod_ssl
для включения поддержки SSL v3 и TLS (рекомендуемая литература: TLS vs SSL). Вот некоторые общие особенности Apache:
- .htaccess
- IPv6
- FTP
- HTTP / 2
- Perl, Lua и PHP
- Регулирование полосы пропускания
- WebDAV
- Балансировка нагрузки
- Перезапись URL
- Отслеживание сеанса
- Геолокация на основе IP-адреса
Хотя веб-сервер является неотъемлемой частью любого веб-сайта, важно отметить, что обычные пользователи WordPress вряд ли большую часть времени будут напрямую взаимодействовать со своим веб-сервером.
Статистика использования Apache и Nginx
Если вы посмотрите на каждый веб-сайт в Интернете, Apache — самый популярный веб-сервер. По данным W3Techs, он поддерживает 47% веб-сайтов с известным веб-сервером.
Однако использование Apache значительно снижается, когда вы начинаете смотреть на сайты с наибольшей посещаемостью. Только Apache мощности:
- 27,1% из 100 000 самых популярных сайтов
- 21,5% из 10 000 самых популярных сайтов
- 16,2% из 1000 самых популярных сайтов
Это снижение, вероятно, связано, по крайней мере частично, с более низкими показателями Apache для веб-сайтов с высокой посещаемостью.
И наоборот, NGINX, веб-сервер, который использует Kinsta, используется большинством сайтов с высоким трафиком, включая:
- 56,1% из 100 000 самых популярных сайтов
- 63,2% из 10 000 самых популярных сайтов
- 57% из 1000 самых популярных сайтов
Если вы посмотрите тенденции поиска в Google с 2004 года, то увидите, что эта тенденция проявляется там, где популярность Apache ( как поисковый запрос ) снижается, а популярность NGINX растет.
Apache и NGINX Результаты Google Trends с 2004 г.
Как проверить, какой веб-сервер вы используете
Если вы хотите узнать, используете ли вы Apache или NGINX, вы можете часто (но не всегда) просматривать HTTP-заголовок вашего сайта.
Чтобы просмотреть HTTP-заголовок своего сайта, вы можете:
- Используйте вкладку Сеть Инструментов разработчика Chrome
- Используйте такой инструмент, как Pingdom или GTmetrix
HTTP-заголовок Apache
Однако этот метод может не работать, если вы используете такой сервис, как Cloudflare.
Apache и логотип Apache с пером являются товарными знаками Apache Software Foundation.
Если вам понравилось это руководство, то вам понравится наша поддержка.Все планы хостинга Kinsta включают круглосуточную поддержку наших опытных разработчиков и инженеров WordPress. Общайтесь с той же командой, которая поддерживает наших клиентов из списка Fortune 500. Ознакомьтесь с нашими тарифами
Что такое апач? Углубленный обзор веб-сервера Apache
HTTP-сервер Apache — это бесплатное программное обеспечение с открытым исходным кодом, которое позволяет пользователям размещать свои веб-сайты в Интернете. Это одно из старейших и наиболее надежных программных веб-серверов, поддерживаемых Apache Software Foundation, первая версия которого была выпущена в 1995 году.
На сегодняшний день Apache является одним из популярных веб-серверов для владельцев веб-сайтов, разработчиков и даже хостинг-провайдеров, занимая 33% доли рынка на всех веб-сайтах.
Например, в Hostinger наша хостинговая инфраструктура работает на Apache вместе с Nginx, еще одним популярным веб-сервером. Эта конкретная установка значительно усиливает сильные стороны обоих серверов, позволяя нам обеспечивать оптимальную производительность для наших пользователей.
Прочтите больше, чтобы узнать, что такое Apache, его сравнение с другими веб-серверами, такими как NGINX и Tomcat, а также его плюсы и минусы.
Что такое веб-сервер?Файловые серверы, серверы баз данных, почтовые серверы и веб-серверы используют различное серверное программное обеспечение. Каждое из этих приложений может получать доступ к файлам, хранящимся на физическом сервере, и использовать их для различных целей.
Задача веб-сервера — обслуживать веб-сайты в Интернете. Для достижения этой цели он действует как посредник между сервером и клиентскими машинами. Он извлекает контент с сервера по каждому запросу пользователя и доставляет его в Интернет.
Самая большая проблема веб-сервера — одновременно обслуживать множество разных пользователей сети, каждый из которых запрашивает разные страницы. Веб-серверы обрабатывают файлы, написанные на разных языках программирования, таких как PHP, Python, Java и других.
Они превращают их в статические файлы HTML и обслуживают эти файлы в браузере для пользователей Интернета. Когда вы слышите слово «веб-сервер», думайте о нем как об инструменте, отвечающем за правильную связь между сервером и клиентом.
Как работает веб-сервер Apache?Хотя мы называем Apache веб-сервером, это не физический сервер, а скорее программное обеспечение, работающее на HTTP-сервере.Его задача — установить соединение между сервером и браузерами посетителей веб-сайта (Firefox, Google Chrome, Safari и т. Д.), Одновременно доставляя файлы между ними (структура клиент-сервер). Программное обеспечение Apache также совместимо с любой операционной системой, от Windows до Unix.
Когда посетитель хочет загрузить страницу на вашем веб-сайте, например, домашнюю страницу или страницу «О нас», его браузер отправляет запрос на ваш сервер, а Apache возвращает ответ со всеми запрошенными файлами (текст, изображения, и т.п.).
Сервер и клиент обмениваются данными по протоколу HTTP, а веб-сервер Apache отвечает за бесперебойную и безопасную связь между двумя машинами.
Apache обладает широкими возможностями настройки благодаря своей инфраструктуре с открытым исходным кодом. Благодаря этому веб-разработчики и пользователи могут адаптировать его исходный код в соответствии с типом создаваемого веб-сайта.
Кроме того, Apache предоставляет множество модулей, которые позволяют администраторам серверов включать и выключать дополнительные функции.Веб-сервер Apache имеет модули для обеспечения безопасности, кэширования, перезаписи URL-адресов, аутентификации по паролю и других функций.
Для настройки Apache вам потребуется доступ к .htaccess. Этот файл конфигурации Apache поддерживается всеми планами Hostinger.
HTTP-сервер Apache по сравнению с другими веб-серверамиПомимо веб-сервера Apache, существует множество других популярных вариантов. Каждое приложение веб-сервера было создано для разных целей. Хотя веб-сервер Apache является наиболее широко используемым, у него есть немало альтернатив и конкурентов.
Apache против NGINXNginx, произносится как Engine-X, является бесплатным программным обеспечением с открытым исходным кодом. По сравнению с Apache, это более новое приложение веб-сервера, выпущенное в 2004 году.
Nginx был создан для решения так называемой проблемы c10k, что означает, что веб-сервер, использующий потоки для обработки пользовательских запросов, не может одновременно управлять более чем 10 000 подключений.
- Поскольку Apache использует структуру на основе потоков, владельцы веб-сайтов с высокой посещаемостью могут столкнуться с проблемами производительности.Nginx — один из веб-серверов, решающих проблему c10k, и, вероятно, самый успешный из них.
- Nginx имеет архитектуру, управляемую событиями, которая не создает новый процесс для каждого запроса. Вместо этого он обрабатывает каждый входящий запрос в одном потоке. Этот главный процесс управляет несколькими рабочими процессами, которые выполняют фактическую обработку запросов. Модель Nginx, основанная на событиях, эффективно распределяет пользовательские запросы между рабочими процессами, что обеспечивает лучшую масштабируемость.
- Если вам нужно управлять веб-сайтом с высокой посещаемостью, Nginx — отличный выбор, поскольку он может делать это с минимальными затратами ресурсов. Не может быть совпадением, что его используют многие популярные веб-сайты, такие как Netflix, Hulu, Pinterest и Airbnb.
- Однако для малых и средних игроков Apache имеет ряд преимуществ перед Nginx, таких как простая конфигурация, множество модулей и удобная для новичков среда.
Tomcat — популярный веб-сервер, также разработанный Apache Software Foundation, поэтому его официальное название — Apache Tomcat.Как и Apache, Tomcat — это HTTP-сервер. Тем не менее, его основная функция — поддержка приложений Java вместо статических веб-сайтов. Tomcat может запускать несколько различных спецификаций Java, таких как Java Servlet, JavaServer Pages (JSP), Java EL и WebSocket.
- Tomcat был создан специально для обслуживания динамического веб-контента, который запускается в приложениях Java, в то время как Apache является HTTP-сервером общего назначения. Вы можете использовать Apache вместе с разными языками программирования (PHP, Python, Perl и т. Д.).) с помощью соответствующих модулей Apache (mod_php, mod_python, mod_perl и т. д.).
- Хотя вы можете использовать сервер Tomcat и для обслуживания статических веб-страниц, он менее эффективен для этой цели по сравнению с сервером Apache. Например, Tomcat предварительно загружает виртуальную машину Java и другие библиотеки, связанные с Java, которые вам не понадобятся на большинстве веб-сайтов.
- Tomcat также менее настраиваем по сравнению с другими веб-серверами. Например, для запуска WordPress лучшим выбором будет HTTP-сервер общего назначения, такой как Apache или NGINX.
Веб-сервер Apache может быть отличным выбором для запуска вашего веб-сайта на стабильной и универсальной платформе. Однако у него также есть некоторые недостатки, на которые следует обратить внимание.
Плюсы :
- С открытым исходным кодом и бесплатно, даже для коммерческого использования.
- Надежное, стабильное программное обеспечение.
- Часто обновляемые исправления безопасности.
- Гибкость благодаря модульной структуре.
- Простота настройки, удобство для новичков.
- Кросс-платформенный (работает как на серверах Unix, так и на Windows).
- Оптимальная доставляемость статических файлов и совместимость с любым языком программирования (PHP, Python и т. Д.)
- Работает «из коробки» с сайтами WordPress.
- Огромное сообщество и доступная поддержка в случае возникновения каких-либо проблем.
Минусы :
- Проблемы с производительностью на очень загруженных веб-сайтах.
- Слишком большое количество параметров конфигурации может привести к уязвимостям безопасности.
Хотите узнать больше о хостинге и разработке веб-сайтов? Ознакомьтесь с этими руководствами:
Итак, что такое Apache?Один из самых популярных веб-серверов, Apache позволяет вам запускать безопасный веб-сайт без особой головной боли. Это бесплатное приложение с открытым исходным кодом, поэтому его часто выбирают индивидуальные предприниматели и малые предприятия, желающие присутствовать в Интернете.
Принцип работы HTTP-сервера Apache заключается в том, что он принимает запросы от веб-браузера, такого как Google Chrome и Microsoft Edge, и превращает программные сценарии в веб-страницы, содержимое которых видно посетителям.
Вы можете установить веб-сайт WordPress на веб-сервер Apache без каких-либо настроек. Кроме того, сервер Apache прекрасно работает со многими другими системами управления контентом (Joomla, Drupal и т. Д.), Веб-фреймворками (Django, Laravel и т. Д.) И языками программирования.Это делает его отличным выбором для всех типов платформ веб-хостинга, таких как VPS или виртуальный хостинг.
Надеюсь, эта статья дает все ответы, которые вам нужно знать о том, что такое Apache. Оставляйте комментарии ниже, если у вас все еще есть вопросы об этом веб-сервере!
АвторРичард Бойетт
Ричард — разработчик программного обеспечения WordPress и эксперт по системам управления контентом. Когда Ричард не играет с кодом, он любит хорошее кино и крафтовое пиво.
Как использовать веб-сервер Apache для установки и настройки веб-сайта
Если вы никогда не развертывали веб-сайт с веб-сервером Apache, вы скоро узнаете, как это сделать.
Время от времени я считаю полезным сделать шаг назад и пройтись по основам. Это не только помогает мне стать техническим писателем, но и помогает многим людям, которые только изучают основы той технологии, о которой я говорю.
На этот раз все дело в веб-сервере Apache, программном обеспечении, которое существует уже несколько десятилетий и без проблем обслуживает как большие, так и маленькие веб-сайты. Apache без проблем работает с MySQL, PHP и множеством других пакетов, поэтому вы можете обслуживать простые статические или невероятно динамические веб-сайты.
Как установить и настроить сервер? Где вы размещаете файлы?
Давайте пройдемся по этому, шаг за шагом. Я буду демонстрировать на Ubuntu Server 20.04.
Но сначала немного дополнительной информации.
SEE: Шпаргалка по телефонному собеседованию: Разработчик программного обеспечения (TechRepublic Premium)
Разница между Apache на Ubuntu и дистрибутивами на основе Red Hat
Причина, по которой я должен указывать, в каком дистрибутиве Linux я Использование связано с тем, что варианты Apache на основе Ubuntu и Red Hat по-разному — от установки до конфигурации.
После того, как вы запустите любую из этих команд, у вас будет запущен Apache.Вы также захотите убедиться, что Apache запускается после перезагрузки (или загрузки) сервера. Для этого введите команду:
sudo systemctl enable apache2
Вы можете проверить свою установку, открыв веб-браузер и указав его на http: // SERVER_IP (где SERVER_IP — это IP-адрес сервера, на котором размещен Apache). Вас должна приветствовать страница приветствия Apache (, рис. A, ).
Рисунок A
Официальная страница приветствия Apache, работающая на сервере Ubuntu.
Какую страницу обслуживает Apache? Если вы заглянете в / var / www / html, вы найдете файл index.html — давайте изменим его.
Вернувшись в окно терминала, переименуйте этот файл index.html с помощью команды:
sudo mv /var/www/html/index.html /var/www/html/index.html.bak
Теперь давайте создадим новый файл приветствия. Введите команду:
sudo nano /var/www/html/index.html
В этот файл вставьте следующее:
Здравствуйте, TechRepublic!
Как дела?
Сохраните и закройте файл.Перезагрузите веб-страницу в браузере, и вы должны увидеть изменения (, рис. B, ).
Рисунок B
Наша новая страница index.html обслуживается Apache.
Как создать сайт для Apache
Теперь мы собираемся создать виртуальный хост, который будет обслуживать Apache. Виртуальный хост — это красивое название для веб-сайта, обслуживаемого Apache. Вы можете обслуживать множество виртуальных хостов на одном сервере Apache. Фактически, вы ограничены только мощностью вашего хостинг-сервера и пропускной способностью вашей сети.
Итак, давайте создадим виртуальный хост под названием test .
Первое, что мы собираемся сделать, это создать каталог для размещения теста с помощью команды:
sudo mkdir -p / var / www / html / test
Затем мы дадим новому каталогу право собственности с помощью команды:
sudo chown -R $ USER: $ USER / var / www / html / test
Наконец, мы предоставим соответствующие разрешения с помощью команды:
sudo chmod -R 755 / var / www / html / test
Скопируйте наш новый index.html в тестовый каталог с помощью команды:
sudo cp /var/www/html/index.html / var / www / html / test /
Теперь нам нужно создать конфигурацию виртуального хоста, чтобы Apache знал, где находится тест. Он будет размещен в / etc / apache / sites-available. Для этого мы создадим файл test.conf с помощью команды:
sudo nano /etc/apache2/sites-available/test.conf
В этот файл вставьте следующее:
ServerAdmin admin @ example.ком ServerName example.com ServerAlias www.example.com DocumentRoot / var / www / html / test ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} /access.log объединены
Самая важная строка выше начинается с DocumentRoot , поскольку это указывает Apache, где будут найдены файлы для виртуального хоста. Сохраните и закройте этот файл.
На этом этапе мы создали каталог для размещения файлов, предоставив ему надлежащие права собственности и разрешения, и создали конфигурацию для виртуального хоста.Однако Apache до сих пор не знает о новом сайте. Почему? Поскольку файл конфигурации живет в сайтах, доступно . Что нам нужно сделать, так это создать ссылку из этой конфигурации в каталог / etc / apache2 / sites-enabled . На сервере Apache активны только конфигурации, обнаруженные в с поддержкой сайтов.
На серверах, отличных от Ubuntu, для этого необходимо использовать команду ln (для ссылки ). Однако в Ubuntu есть удобная утилита, которая создаст этот сайт за вас.Утилита a2ensite . Если мы запустим команду:
sudo a2ensite test.conf
После этого будет включен наш тестовый виртуальный хост.
После успешного выполнения этой команды вы должны перезагрузить Apache (который только перезагрузит файлы конфигурации, но не перезапустит веб-сервер) с помощью команды:
sudo systemctl reload apache2
Теперь, если вы укажете в своем браузере http: // SERVER_IP / test (где SERVER_IP — это IP-адрес сервера), вы должны увидеть такое же приветствие Hello, TechRepublic, как и в случае с базовым индексом.html, только он обслуживается нашим вновь созданным виртуальным хостом.
Вы только что установили веб-сервер Apache, отредактировали файл index.html, а затем создали свой собственный виртуальный хост. Вы можете взять это простое руководство и использовать его в качестве основы для развертывания всех необходимых вам веб-сайтов, обслуживаемых Apache.
Подпишитесь на TechRepublic’s How To Make Tech Work on YouTube для получения всех последних технических советов для бизнес-профессионалов от Джека Уоллена.
Еженедельный бюллетень с открытым исходным кодом
Вы не захотите пропустить наши советы, руководства и комментарии по ОС Linux и приложениям с открытым исходным кодом.Доставлено по вторникам
Зарегистрироваться СегодняСм. Также
Изображение: Джек Уоллен
Что такое веб-сервер Apache? (Плюсы и минусы Apache)
Что такое веб-сервер Apache?Большинство веб-серверов по всему миру используют программное обеспечение Apache или Apache HTTP Server.Это довольно быстро, безопасно и может быть легко настроено для различных сред с помощью расширений и модулей. Apache без проблем работает как на веб-серверах Windows, так и на Linux.
Это программное обеспечение с открытым исходным кодом, разработанное и поддерживаемое Apache Software Foundation. HTTP-сервер Apache — это не физический сервер, а скорее программное обеспечение, работающее на сервере.
В этой статье мы обсудим следующее: —
Кто использует веб-сервер Apache? Программное обеспечениеApache в настоящее время используется 43.2% веб-сайтов по всему миру.
Популярные компании, использующие HTTP-сервер Apache:
- IBM
- eBay
- Adobe
- PayPal
- GTMetrix
Узнать больше о Лучшие серверы PHP
Что такое веб-сервер?Основная функция веб-сервера — хранить, обрабатывать и обслуживать веб-страницы для клиентов.Он использует протокол HTTP, чтобы предоставить пользователю веб-страницу, которую он хочет увидеть.
Apache помогает установить соединение между сервером и браузерами посетителей веб-сайтов (Firefox, Google Chrome, Safari и т. Д.), Одновременно доставляя файлы между ними (структура клиент-сервер).
Браузер запрашивает конкретный файл или ресурс и запускает процесс. В ответ веб-сервер читает запрос, захватывает ресурсы и обслуживает их как веб-страницы, чтобы пользователь мог их интерпретировать.
Вся связь происходит через HTTP или HTTPS . Веб-сервер также позволяет веб-браузерам получать файлы от конечных пользователей и передавать их в хранилище.
Это не так просто, как кажется. Следовательно, очень важно понимать структуру веб-сервера. Многие пользователи одновременно запрашивают разные веб-страницы. Веб-сервер должен отвечать на все запросы и предоставлять каждому из них правильные файлы.
Почему выбирают Apache?Apache — это программное обеспечение с открытым исходным кодом, что означает, что исходный код можно просматривать и совместно использовать бесплатно.
Открытый исходный код сделал apache очень популярным среди разработчиков, которые создали и настроили свои модули для применения определенных функций и улучшения своих основных функций.
С 1995 года Apache помогает в развитии Интернета.
Веб-серверыявляются неотъемлемой частью веб-сайтов, но пользовательские интерфейсы обычно не взаимодействуют с типами веб-серверов напрямую.
В основном это серверная часть.
Особенности веб-сервера ApacheApache Software Foundation — американская некоммерческая корпорация, которая поддерживает проекты Apache Software.Этот фонд представляет собой децентрализованное сообщество разработчиков с открытым исходным кодом, работающих вместе над разработкой Apache.
Если вы углубитесь в основы, вы обнаружите, что основная задача веб-серверов — принимать запросы от клиента и затем отправлять ответ приложению.
У сервераApache есть и другие функции:
- Загружаемые динамические модули
- Обработка статических файлов, индексных файлов, автоиндексирование и согласование содержимого
- .Поддержка конфигурации htaccess для каждого каталога
- Apache совместим с IPv6
- Сервер Apache поддерживает HTTP / 2
- gzip сжатие и декомпрессию
- FTP-соединения возможны с правильным модулем
- Perl, PHP и сценарии Lua уже созданы
- Apache с открытым исходным кодом, и любой может получить его бесплатно
- Настраиваемый код может быть адаптирован к потребностям
- Возможность добавления дополнительных функций и модулей для улучшения функций
- Высокая надежность и отличная производительность
- Apache прост в использовании установить
- Немедленная запись изменений
- Может работать в любой операционной системе
- Активно обслуживается и обновляется сообществом
- Очень гибкий веб-сервер
- Впечатляющая документация, довольно обширная и полезная
- Возможность изменения конфигурации предлагала приглашение различным угрозам, когда вы вмешивались в код, незащищенные ворота открываются.
- Опять же, настройка означает новые ошибки и ошибки. Отладка означает потребление времени и ресурсов.
- Необходима строгая политика обновления, которая должна выполняться через регулярные промежутки времени.
- Распознавание и отключение нежелательных служб и модулей
- Проблемы с производительностью на сайтах с очень высоким трафиком.
- Nginx
- Apache Tomcat
- Node.js
- Lighttpd
- Cherokee
- Microsoft IIS
- Appweb
- Hiawatha
Конечно, Apache известен и надежен, но это не единственный веб-сервер на рынке .
На данный момент Nginx является следующим по популярности веб-сервером после Apache HTTP. Nginx решил слабость Apache.
Apache не смог поддерживать одновременный трафик большого объема, в то время как Nginx может управлять сотней тысяч пользователей одновременно.
Большинство сайтов устанавливают оба сервера и используют Nginx в качестве резервного сервера.
В ServerGuy мы предоставляем оба веб-сервера вместе с нашим хостингом.
Узнайте больше о различиях между Apache и Nginx.
Как узнать, какой веб-сервер вы используетеВы можете проверить, какой веб-сервер использует сайт, с помощью Google Chrome. Проверьте версию Apache здесь.
- Откройте сайт в Google Chrome.
- Щелкните страницу правой кнопкой мыши и выберите «Проверить элементы».
- Перейдите на вкладку «Сеть»
- Перезагрузите веб-страницу
- Щелкните адрес сайта
- Проверьте тег заголовка
Альтернативный метод:
Многие онлайн-инструменты могут определить, какой веб-сервер использует сайт.Вы можете использовать Wapplyzer.
Наконец, что такое веб-сервер Apache?Apache Web Server — это зрелый и надежный веб-сервер, который позволяет сайту обслуживать веб-страницы для пользователей.
Вы можете установить сайт WordPress на Apache. Не только WordPress, но и Apache также совместим со всеми популярными CMS, такими как Joomla или Drupal. Совместимость также является важной причиной того, что Apache так популярен среди веб-разработчиков.
Надеюсь, вы знаете, что сейчас такое веб-сервер Apache.
Оставьте свои сомнения в поле для комментариев.
Как настроить веб-сервер 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.d
. Данные для веб-сайтов, которые вы будете запускать с 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 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 install 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 году и была обновлена редактором.
Запуск базового веб-сервера Apache | Документация по Compute Engine
Установите Apache
Используйте диспетчер пакетов Debian для установки пакета
apache2
:sudo apt update && sudo apt -y установить apache2
После установки Apache операционная система автоматически запускает Сервер Apache.
Перезаписать веб-страницу веб-сервера Apache по умолчанию с помощью следующей команды:
echo '
Hello World!
' | sudo tee /var/www/html/index.html
Проверьте свой сервер
Убедитесь, что ваш экземпляр обслуживает трафик по внешнему IP-адресу.
- В консоли Google Cloud перейдите на страницу экземпляров виртуальных машин .
Перейти к инстансам ВМ
- Скопируйте внешний IP-адрес для вашего экземпляра под Внешний IP-адрес столбец.
- В браузере перейдите по адресу
http: // [EXTERNAL_IP]
. Не подключайтесь черезhttps
, поскольку сервер вернет ошибкуConnection Refused
.
Теперь вы должны увидеть «Hello World!» страница.
Убрать
Когда вы закончите экспериментировать, следуйте инструкциям по очистке в Быстрый старт, чтобы избежать расходов для экземпляра виртуальной машины.
Поиск и устранение неисправностей
Получение Соединение отклонено Ошибка
Если вы видите ошибку Connection Refused
, возможно, что:
Ваш экземпляр виртуальной машины не является общедоступным из-за правил вашего брандмауэра или теги неправильно настроены одним из следующих способов:
- Экземпляр виртуальной машины не имеет правильного тега, который позволяет Compute Engine чтобы применить к вашему экземпляру соответствующие правила брандмауэра.
- В вашем проекте нет правила брандмауэра, разрешающего трафик внешний IP-адрес вашего экземпляра.
Вы пытаетесь получить доступ к виртуальной машине, используя адрес
https
. Убедитесь, что ваш URL-адрес —http: // [EXTERNAL_IP]
, а неhttps: // [EXTERNAL_IP]
.
Чтобы убедиться, что ваш экземпляр виртуальной машины имеет правильные теги:
- В консоли Google Cloud перейдите на страницу экземпляров виртуальных машин .
Перейти к инстансам ВМ
- Щелкните имя экземпляра, к которому вы пытаетесь подключиться.
- Нажмите Изменить вверху страницы.
- Прокрутите вниз до Брандмауэры и убедитесь, что Разрешить HTTP-трафик проверено. Если он не отмечен, проверьте его.
- Сохраните изменения. Это гарантирует, что правильные теги будут добавлены в Экземпляр ВМ.
Чтобы убедиться, что существует правильное правило брандмауэра:
- В консоли Google Cloud перейдите на страницу Правила брандмауэра .
Зайдите в Правила межсетевого экрана
- Найдите правило брандмауэра, которое разрешает все диапазоны IP-адресов через tcp: 80. Обычно,
это правило называется правилом
default-allow-http
. - Если правила не существует, создайте его.
- Щелкните Создать правило брандмауэра .
- Введите имя правила, например
default-allow-http
. - Меньше Диапазон IP-адресов источника , введите
0.0.0.0/0
, чтобы разрешить трафик от все источники. - В разделе Протоколы и порты , проверьте Указанные протоколы и порты и введите
tcp: 80
. - Создайте правило брандмауэра.
Проверьте свой сервер еще раз, перейдя на внешний IP-адрес экземпляра:
http: // [EXTERNAL_IP]
Что дальше
Узнайте, как разместить веб-сайт на Google Compute Engine.
Узнайте, как настроить LAMP на Google Compute Engine.
Попробуйте сами
Если вы новичок в Google Cloud, создайте учетную запись, чтобы оценить, как Compute Engine работает в реальном мире сценарии. Новые клиенты также получают 300 долларов в качестве бесплатных кредитов для запуска, тестирования и развертывать рабочие нагрузки.
Попробуйте Compute Engine бесплатно .