Разное

Web сервер apache: 404 — Нет такой страницы…

08.06.2021

Содержание

Курсы и вебинары Apache в Специалисте

Главная > Курсы

Apache HTTP-сервер (сокращение от англ. «свободный веб-сервер») — самая распространенная и популярная программа среди разработчиков веб-сайтов и тех, кто обеспечивает поддержку интернет-ресурсов. По данным независимой исследовательской компании Netcraft, именно Apache установлен на 50% компьютеров пользователей HTTP-серверов.

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

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

 

Расписание по курсам apache

Дата

22.05.2021 — 10%

Другие даты

Продолжительность

24 ак.

ч.

Курс

Веб — сервера Nginx и Apache

Преподаватель

ТарасовАлексей
Владимирович
Читать отзывы

Дата

Звоните по тел.
+7 (495) 232-32-16

Курс

Apache: настройка веб — сервера

Преподаватель

Дата

Звоните по тел.
+7 (495) 232-32-16

Курс

Основы Apache Kafka

Преподаватель

Заказ добавлен в Корзину.
Для завершения оформления, пожалуйста, перейдите в Корзину!

Главная > Курсы

Публикация 1С на веб-сервере Apache 2.2. Удаленный доступ к 1С

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

1. Через сервер с технологией удаленных рабочих столов (RDP).
2. Через публикацию базы данных на веб-сервере.
3. Через обмен данными с помощью технологии встроенного обмена 1С.

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

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

 

ПРЕИМУЩЕСТВА

 

Универсальность

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

Малая нагрузка

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

Фактически нагрузка распределяется между клиентом (пользователем) и сервером (веб-сервером), что позволяет значительно сократить потребность в мощных серверах.
Однако при всех значительных преимуществах данной модели пользования программой у нее есть одна особенность — отсутствие возможности входа через веб-подключение в режим конфигуратора. Это означает, что разработчики и администраторы 1С не смогут через браузер вносить изменения в конфигурацию. Для этих функций нужен полный доступ через ПК (сервер).

 

КАК НАСТРОИТЬ ПОДКЛЮЧЕНИЕ К 1С ЧЕРЕЗ ВЕБ-СЕРВЕР


 

Требование № 1 —  Сервер со статическим IP-адресом

В этой публикации мы не будем рассматривать «любительскую версию», когда из домашнего ПК пытаются сделать веб-сервер 1С, с настройкой роутера, открытием портов, настройкой удаленного подключения к ПК и т.д. Если есть желание пройти весь путь от начала до конца для домашнего пользования, можете ознакомится с этой публикацией по настройе Apache для 1С. В ней подробно описан каждый этап.
Для решения коммерческих задач мы подразумеваем, что у пользователя уже есть компьютер (сервер) с выходом интернет и статическим IP-адресом или есть возможность взять в аренду такой сервер.

Требование № 2 — 1С на управляемых формах

Да, к сожалению, работу через браузер поддерживают не все 1С, а точнее поддерживают только 1С с новым интерфейсом (такси, пред такси), с новыми формами, называемыми управляемые. Т.е. например, 1С Управление торговлей 10.3 не поддерживает работу через браузер, потому что написана на старых формах. А 1С Управление торговлей 11 и выше поддерживает работу через браузер.

Требование № 3 — подготовка сервера к раздаче удаленного доступа к 1С
На этом пункте мы остановимся подробнее всего, так как именно на этом этапе кроются технические нюансы.
Задача такая: нужно установить веб-сервер на ПК, опубликовать через него базу данных 1С. Поехали.

Настройка подключения к 1С через веб-браузер на локальном компьютере (localhost)

В данной публикации рассмотрен полный цикл публикации базы 1С на веб-сервере — от установки веб-сервера до входа пользователя в 1С. В качестве веб-сервера выбран Apache 2.2, а в качестве базы данных 1С — «Управление торговлей 3.0» с поддержкой тонкого и веб-клиента.

1. Устанавливаем Apache. Качаем с любого источника инсталяцию веб-сервера Apache 2.2 для ОС Windows. Все галочки при установке оставляем по умолчанию как их расставила система. В регистрационной карточке веб сервера пишем localhost. Выберите для установки папку с заведомо полными правами доступа: C:\Users\Public\Apache. Папка Public может называтся «Общие». В Windows 7 — такой путь. Для других версий Windows путь может отличатся. Но суть та же.


2. Запускаем Apache. Запускается веб-сервер просто. После установки в панели устройств появится пиктограммка Apache. Кликните по ней левой кнопкой мыши и нажмите Start (перезапуск и остановка производятся также). Скорее всего веб-сервер не запустится. Самая распространенная ошибка «The requested operation failed».



Если такая ошибка возникла, нужно подправить конфигурационный файл веб-сервера httpd. txt. Конфигурационный файл веб-сервера в папке, выбранной для установки Apache. Если вы выбрали для установки место установки из пункта 1 данной инструкции, то файл находится в директории: C:\Users\Public\Apache\conf
Подправьте такие строки в файле httpd.txt
— AllowOverride None, вы должны заменить None на All:
— #LoadModule rewrite_module modules/mod_rewrite.so (нужно раскомментировать эту строку — удалить символ #)

3. Перезагружаем ПК и пробуем запустить сервис. В случае успешного запуска ярлычек Apache 2.2 должен загорется зеленым цветом.
4. Проверяем работает ли веб-сервер. Заходим в браузер, пишем в адресной строке localhost, жмем ввод. Если веб-сервер работает как надо в браузере появится надпись «IT works»


5. Публикуем базу 1С на веб сервере. В режиме конфигуратор меню Сервис — Публикация базы на веб сервере. Далее указываем все как на картинке. Название базы можно дать другое, если хотите. Путь для публикации можно выбрать любой на компьютере, однако рекомендуем выбрать место для публикации как в пункте первом, чтобы не возникло проблем с правами доступа: C:\Users\Public\webbaseut3


6. Добавляем полные права пользователю LOCAL SERVICE. У веб-сервера Apache есть свой пользователь, с помощью которого он обращается к данным. Для того чтобы системный пользователя веб-сервера мог просматривать и записывать данные в базу 1С ему необходимо дать полные права на папку, в которую опубликована база данных 1С. Имя пользователя Apache — LOCAL SERVICE. Именно ему нужно дать полные права на папку с опубликованной базой 1С. В нашем случае на папку C:\Users\Public\webbaseut3

7. Перезапустите веб-сервер Apache 2.2.
8. Заходим в 1С через браузер. Для проверки публикации базы 1С и для входа в 1С набираем в адресной строке браузера: http://localhost/DemoTradeUkr2
Результат должен выглядеть следующим образом:


В данном случае localhost — это наш веб-сервер, а DemoTradeUkr2 — имя нашей опубликованной базы данных, который мы задали в 1С при публикации базы.

После всех проделанных настроек вы должны ввести адрес базы в своем браузере: http://192. 168.0.11/webtest и 1С должна запустится. Результат будет выглядеть сдедующим образом:
 


После всех проделанных работ можно приступать к работе в 1С через браузер.

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

 

Создаем подключение через веб-сервер

Прописываем адрес, по которому опубликована база

 

СТАБИЛЬНОСТЬ РАБОТЫ 1С ЧЕРЕЗ ИНТЕРНЕТ

 

До этого мы говорили о том, как настроить доступ к 1С с любого компьютера, даже домашнего, который подключен в сети Интернет. Но что такое домашний компьютер и домашний интернет? Эта низкая стабильность, это решение для одного пользователя не подразумевающая масштабирование до большого количества одновременно работающих пользователей. Поэтому часто для публикации базы данных 1С и работы через браузер используют арендные сервера. Что это значит? То что вам как пользователю на одном из серверов дата-центра, оказывающего услуги аренды оборудования предоставляют мето для решения задач. Конечно, это дороже, но и стабильность, надежность работы значительно выше. Дата-центры гарантируют доступ к данным в 99,9 %. Стоимость аренды сервера варьируется от 15 у.е. до «бесконечности» в зависимости от числа активных пользователей, размера базы данных и нагрузки. В среднем для компании до 10 человек стоимость аренды сервера составит 60 у.е. в месяц. Более подробно о ценах на аренду можно ознакомится у нас в соответствующем раздедле. В целом аренда компьютерного оборудования сейчас уже не новация, а скрее стандарт ИТ-инфраструктуры компании. Но у каждого свое субъективное мнение на этот счет, мы лишь высказали свои соображения на эту тему.

С помощью технологии публикации базы 1С на веб-сервере реализована технология синхронизации 1С на ПК с мобильным приложением. Если вам интересна эта тема, вы можете почитать о ней в нашем материале, в котором раскрыта тема установки и настройки синхронизации мобильного приложения 1С на базе 1С УНФ.

Публикация базы 1С на веб-сервере Windows и Linux

Публикация базы 1С на веб-сервере используется для работы через браузер или через тонкий клиент 1С. Рассмотрим два типа публикации баз 1С: на операционной системе Windows с использованием веб-сервера IIS, а также на операционной системе Linux — с использованием веб-сервера apache.

Публикация базы 1С на Windows Server 2016

1

Установка роли веб-сервера. Через диспетчер серверов необходимо установить роль веб-сервера IIS.

2

Установка клиента 1С. Скачиваем дистрибутив с официального сайта. Нам нужна «Технологическая платформа 1С:Предприятия для Windows».

3

При установке выбираем компоненты «1С: Предприятие 8» и «Модули расширения веб-сервера».

4

После установки добавляем в список информационных баз нужную нам базу и запускаем в режиме конфигуратора.

5

Выполняем действие — «Администрирование» — «публикация на веб-сервере».

6

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

7

Делаем отдельный пул приложений. Назовем его 1c-32x и разрешим ему запуск 32-х битных приложений.

8

Назначаем сайту пул приложений 1c-32x.

9

Проверяем доступность публикации через веб-браузер.

Публикация базы 1С на сервере Linux

1

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

# yum update

2

Выполняем установку веб-сервера Apache.

# yum install httpd

3

Скачиваем дистрибутивы 1С. Скачать их можно с официального сайта. Нам необходимы файлы:
  • 1C_Enterprise83-ws-8.x.x-xxxx.x86_64.rpm
  • 1C_Enterprise83-common-8.x.x-xxxx.x86_64.rpm
  • Содержаться они в архиве rpm64_8_x_xx_xxxx.tar.gz

На сайте https://releases. 1c.ru/ доступны по пути:

Технологические дистрибутивы −> Технологическая платформа 8.3 −>Версия платформы (например 8.3.14) −>Cервер 1С:Предприятия (64-bit) для RPM-based Linux-систем.

4

Устанавливаем пакеты 1С.

# rpm -i 1C_Enterprise83-common-8.3.14-1630.x86_64.rpm 1C_Enterprise83-ws-8.3.14-1630.x86_64.rpm 1C_Enterprise83-server-8.3.14-1630.x86_64.rpm

Публикуем базу:

# cd /opt/1C/v8.3/x86_64/
# ./webinst -publish -apache24 -wsdir yt-demo -dir /var/www/yt-demo -connstr "File=""/opt/yt-demo"";" -confpath /etc/httpd/conf/httpd.conf

После корректной публикации должно быть следующее сообщение: Публикация выполнена (Publication successful).

Кратко рассмотрим параметры утилиты webinst:

  • publish — Действие, которое планируем выполнить. Возможны варианты публикации базы или удаления публикации базы.
  • apache24 — тип веб-сервера.
    • apache2: публикация веб-клиента для Apache 2.0
    • apache22: публикация веб-клиента для Apache 2.2
    • apache24: публикация веб-клиента для Apache 2.4
  • wsdir— имя алиаса, по которому идет обращение в браузере.
  • dir — путь публикации, директория в папке веб-сервера.
  • connstr — строка соединения, состоит из трех частей «File=» — указывает что база файловая (возможен вариант Srv для серверной базы), «/opt/yt-demo» — путь к каталогу информационной базы 1С , «;» — служебный символ.
  • confpath — путь к файлу конфигурации веб-сервера.

Проверяем, в файле /etc/httpd/conf/httpd.conf должна быть строка:

LoadModule _1cws_module "/opt/1C/v8.3/x86_64/wsap24.so"

А также часть кода для публикации:

# 1c publication
Alias "/yt-demo" "/var/www/yt-demo/"
<Directory "/var/www/yt-demo/">
    AllowOverride All
    Options None
    Require all granted
    SetHandler 1c-application
    ManagedApplicationDescriptor "/var/www/yt-demo/default. vrd"
</Directory>

5

Прописываем права на папку /opt/yt-demo. Так как в данном примере с базой будет работать только веб-сервер — предоставляем права только учетной записи веб-серера.

# chown -R apache:apache /opt/yt-demo/

6

Перезапускаем Apache.

# service httpd restart

7

Проверяем доступность публикации.

как обнаружить, что localhost веб-сайт закрыт, а затем крикнуть apache веб-сервер



мне нужно найти способ остановить / завершить работу веб-сервера apache, работающего на моем локальном компьютере, когда я закрываю сайт, работающий на моем локальном компьютере (например, http://localhost:8080), или когда я закрываю браузер, отображающий/загружающий сайт localhost, на котором работает локальный веб-сервер apache . каков предпочтительный способ ?

apache web detection
Поделиться Источник user63898     04 ноября 2009 в 14:57

2 ответа


  • Веб-служба отображается как веб-сайт, а не веб-сервер разработчика

    Недавно я переосмыслил свой PC и перерисовал один из наших проектов из Source Safe. В нашем решении у нас есть веб-сервис, который обычно работает на сервере, однако мы также можем построить веб-сервис на нашем localhost для отладки. Однако теперь всякий раз, когда я беру проект из source safe, он…

  • Apache TomCat как веб-сервер и контейнер

    У меня есть Apache tomcat 7, где я создаю свое веб-приложение, а также Apache веб-сервер, на котором существует мой веб-сайт, написанный на Css и HTML. Я хочу внедрить свое веб-приложение на веб-сайт. Как я могу сделать свой Tomcat в качестве веб-сервера и контейнера и перенести веб-сайт с Apache…



1

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

Поделиться Thorsten Dittmar     04 ноября 2009 в 15:52



0

есть javascript «onbeforeunload» … у вас может быть сценарий cgi, работающий как root terminate apache, когда «onbeforeunload» запускает его через ajax.

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

Поделиться lixlpixel     05 ноября 2009 в 15:15


Похожие вопросы:


как переместить веб-сайт apache localhost в интернет (т. е. удаленный сервер)

у меня есть несколько концептуальных запросов о перемещении сайта locahost на сервер для того, чтобы сделать его доступным в интернете… …как сервер распознает изменения в моих apache и php…


как настроить веб-сервер apache в netbeans 6.8?

Я хотел бы отладить PHP приложений, но я хочу настроить Apache веб-сервер (httpd.exe). Я щелкнул Правой Кнопкой Мыши SERVERS, Добавить сервер…, а затем заметил, что нет никакой опции для…


C# веб-сайт с Apache сервером

У меня есть такой сценарий: я хочу создать сайт для друга, чтобы он мог управлять своим бизнесом. Я хочу сделать это так, как будто это будет онлайн, используя C# MVC. Дело в том, что только мой…


Веб-служба отображается как веб-сайт, а не веб-сервер разработчика

Недавно я переосмыслил свой PC и перерисовал один из наших проектов из Source Safe. В нашем решении у нас есть веб-сервис, который обычно работает на сервере, однако мы также можем построить…


Apache TomCat как веб-сервер и контейнер

У меня есть Apache tomcat 7, где я создаю свое веб-приложение, а также Apache веб-сервер, на котором существует мой веб-сайт, написанный на Css и HTML. Я хочу внедрить свое веб-приложение на…


Веб-сайт или сервер по адресу localhost

Можно ли разместить веб-сайт по адресу localhost( 127.0.0.1 )? Или, может быть, создать сервер, который отображает содержимое папки в моей системе.


Обнаружить Apache веб-сервер sturtup программно

Есть ли какой-либо способ узнать программно, когда Apache веб-сервер и / или развернутое приложение started/restarted?


Apache веб-сервер с tomcat

У нас есть веб-приложение java с конфигурацией сборки gradle, которая содержит 2 модуля, как показано ниже: проект-web.war-содержит все сгсэ-единица заряда файлов, JS, jsp, и т. д. Также он содержит…


Веб-сервер для Rust, как если бы от Apache до PHP

В PHP у нас есть Apache (или Nginx) в качестве сервера HTTP. Они также являются де-факто стандартом, установленным для веб-разработки PHP. В Rust почти все примеры в интернете состоят в том, чтобы…


Как развернуть веб-сайт на сервере Apache?

В прошлом семестре в моем университете я связался с WebDev. Мы создаем наш собственный веб-сайт, работающий на основе фреймворка node.js. У нас были собственные маршруты, контролер, помощники и так…

Курсы Apache Web Server

Местные учебные курсы Apache (также известные как Apache Web Server) демонстрируют интерактивную практическую практику фундаментальных и продвинутых тем Apache Обучение Apache доступно как «живое обучение на месте» или «дистанционное живое обучение» На месте живое обучение может проводиться локально в помещениях клиента в Russia или в корпоративных учебных центрах NobleProg Russia , Дистанционное обучение в реальном времени осуществляется с помощью интерактивного удаленного рабочего стола NobleProg Ваш местный провайдер обучения.

Machine Translated

Dariusz Pidek

Курсы: Apache Web Server Administration

Machine Translated

Apache Web Server Содержание курса

28 часов

Обзор

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

28 часов

Обзор

Созданные Linux / Unix-администраторы и разработчики, которые заинтересованы в участии в серверах LInux / Unix Даже новички, обладающие базовыми навыками и знаниями в Linux, могут догнать этот курс, только если вы подробно расскажете о лаборатории преподавателя и объясните ее Этот курс предназначен для того, чтобы достаточно практиковать Управление серверами Linux и показать, что очень легко понять Linux / Unix-серверы Этот курс будет доводиться до аудитории с 40% лекций, 50% лабораторий и 10% вопросов и ответов В этом курсе, посвященном fiveday, особое внимание уделяется деятельности, проводимой в лаборатории Вы узнаете, как развернуть и управлять Top 4 Linux-серверами, которые предоставляют очень полезные сетевые службы для критически важной корпоративной среды Он может поставляться на любом дистрибутиве (обычно используются Fedora, CentOS) ,.

Другие регионы

выбрать регион

другие страны

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

Аутентификация по OTP на Web-сервере Apache

Интернет-портал Habr.com, октябрь, 2019

Статья с упоминанием компании «Аладдин Р.Д.»

В этом посте мы расскажем о том, как настроить аутентификацию по одноразовому паролю на Apache при помощи JAS и Radius. JAS (JaCarta Authentication Server) – автономный высокопроизводительный сервер аутентификации с поддержкой OTP- и U2F-токенов, а также программных токенов для мобильных устройств. В процессе настройки использовалось следующее ПО — JAS 1.x, Linux Debian, Apache2, а также токены JaCarta WebPass, JaCarta U2F, любые OTP-токены по событию, программные Google Authenticator, Яндекс-ключ и т.д.

Для решения данной задачи можно использовать подключаемый модуль аутентификации radius для сервера apache2. Все действия на Web-сервере выполняются для дистрибутива Linux Debian stretch.

Настройка Web-сервера

  1. Устанавливаем модуль radius для apache2:
  2. sudo apt install libapache2-mod-auth-radius
    sudo a2enmod auth_radius
  3. Выбираем нужный сайт и в его конфигурации делаем изменения:
  4. ServerName web1.test2.ru
    ServerAdmin [email protected]
    DocumentRoot /var/www/html
    # Указываем параметры нашего сервера radius (адрес, секрет, количество попыток соединения) AddRadiusAuth 127.0.0.1 [email protected] 5
    AddRadiusCookieValid 60

    В секции «Directory» также указываем:

    AuthType Basic
    AuthName «Radius Authentication»
    AuthBasicAuthoritative Off
    AuthBasicProvider radius
    AuthRadiusAuthoritative on
    AuthRadiusActive On
    Require valid-user
  5. Перезагружаем демон Web-сервера:
  6. sudo apache2ctl restart

Web-сервер готов.

Настройка сервера Radius (NPS)

Запускаем консоль управления NPS.

1. Добавим наш Web-сервер в качестве клиента:

2. В политиках запроса соединения создаём правило, согласно политике безопасности предприятия:

Добавление пользователя с правами сетевого доступа

Создаём пользователя и на вкладке Dial-in предоставляем права сетевого доступа:

Настройка сервера JAS

В консоли управления JAS добавляем любой из указанных выше OTP-аутентификаторов.

В свойствах указываем имя пользователя:

Более подробно о настройке сервера JAS написано в документации по продукту, а также в Базе знаний.

Проверка работы

В браузере переходим на наш сайт. Должен быть запрошен логин и пароль. Вводим логин и одноразовый пароль:

Если всё выполнено верно, получаем доступ на наш сайт, защищённый паролем:

44 Практические вопросы интервью с веб-сервером Apache с ответами

Apache является самым популярным веб-сервером, и если вы собираетесь работать в качестве администратора промежуточного программного обеспечения / системы / веб-администратора, вы должны с ним ознакомиться. Apache HTTP – веб-сервер с открытым исходным кодом для Windows & UNIX.

Несколько дней назад я писал о WebSphere Interview Questions, и многие из вас просили написать об Apache Web Server, так что вы идете.

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

Давайте начнем с вопросы интервью в режиме реального времени & ответы

Contents

  • 1 1. Как остановить / запустить веб-сервер Apache?
  • 2 2. Какой порт по умолчанию для HTTP и HTTPS?
  • 3 3. Можете ли вы сказать мне имя важного файла конфигурации?
  • 4 4. Как проверить версию запущенного веб-сервера Apache?
  • 5 5. Как узнать, работает ли веб-сервер?
  • 6 6. Как установить Apache HTTP?
  • 7 7. Как обеспечить, чтобы Apache слушал только один IP-адрес на сервере?
  • 8 8. Как обеспечить работу Apache с пользователем без полномочий root / nobody?
  • 9 9. Как отключить индексацию каталогов?
  • 10 10. Какой модуль должен иметь возможность перенаправления?
  • 11 11. Можете ли вы изменить порт прослушивания со стандартного на другое??
  • 12 12. Как обезопасить веб-сайт, размещенный на веб-сервере Apache?
  • 13 13. Какие файлы журнала генерируются Apache?
  • 14 14. Как создать CSR?
  • 15 15. Что такое виртуальный хостинг?
  • 16 16. Какой модуль необходим для подключения к WebSphere?
  • 17 17. Как перевести уровень логирования в режим отладки?
  • 18 18. Какой модуль необходим для включения SSL?
  • 19 19. Как называется модуль WebLogic??
  • 20 20. Какой уровень журнала доступен в Apache?
  • 21 21. Что такое DocumentRoot?
  • 22 22. Как развернуть приложения war или JAVA в Apache?
  • 23 23. В чем разница между веб-сервером Apache и Tomcat Apache?
  • 24 24. Как Apache может выступать в качестве прокси-сервера?
  • 25 25. Как настроить журнал Apache, чтобы он фиксировал время, необходимое для обработки запроса?
  • 26 26. Какой инструмент вы используете для анализа журнала?
  • 27 27. На каких веб-серверах вы работали вместе с Apache?
  • 28 28. Как проверить файл httpd.conf, чтобы убедиться в отсутствии ошибки синтаксиса конфигурации?
  • 29 29. Как выполнить тест производительности Apache?
  • 30 30. Как получить поддержку веб-сервера Apache, если что-то не так?
  • 31 31. Как обеспечить запуск веб-сервера после перезагрузки сервера?
  • 32 32. в чем разница между Apache и Nginx веб-сервером?
  • 33 33. Как бы вы убили Apache, если не работает grace-stop??
  • 34 34. Как найти файл httpd.conf, если вы не знаете место установки?
  • 35 35. Какие разновидности веб-сервера Apache вы знаете??
  • 36 36. Где находится Apache в центре обработки данных??
  • 37 37. Как скрыть сведения о версии сервера в заголовке ответа HTTP?
  • 38 38. Что значит 200, 403 & 503 HTTP коды ошибок означают?
  • 39 39. Как отключить трассировку HTTP-запросов?
  • 40 40. Как устранить проблему конфликта портов?
  • 41 41. Как установить сторонний модуль?
  • 42 42. Как назначить несколько имен виртуальным хостам?
  • 43 43. Как ограничить размер загрузки?

1. Как остановить / запустить веб-сервер Apache?

Вы можете перезагрузить, перейдя в расположение экземпляра Apache >> папку bin и выполнить скрипт apachectl.

./ apachectl stop
./ apachectl начало

Вы также можете использовать скрипт, расположенный в /etc/init.d/. В основном он будет называться «apache» или «httpd»

/etc/init.d/apache stop
/etc/init.d/apache start

Другая процедура будет использовать услуги

httpd stop
служба httpd start

2. Какой порт по умолчанию для HTTP и HTTPS?

Порт по умолчанию для HTTP – 80, а HTTPS – 443. Извлекайте порты по умолчанию для других приложений, перечисленных здесь..

3. Можете ли вы сказать мне имя важного файла конфигурации?

httpd.conf – это основной файл конфигурации, используемый в Apache.

4. Как проверить версию запущенного веб-сервера Apache?

Есть несколько способов найти это, но точнее было бы;

  • Вход на веб-сервер
  • Перейти к экземпляру Apache и папке bin
  • Выполнен httpd с -v, чтобы получить информацию о версии.

[[Электронная почта защищена] sbin] # ./httpd -v
Версия сервера: Apache / 2.2.15 (Unix)
Построен сервер: 18 июля 2016 15:24:00
[[Электронная почта защищена] SBIN] #

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

[[Электронная почта защищена] ~] # rpm -qa | grep httpd
HTTPD-2.2.15-54.el6.centos.x86_64
HTTPD-инструменты-2.2.15-54.el6.centos.x86_64
[[Электронная почта защищена] ~] #

5. Как узнать, работает ли веб-сервер?

Есть несколько способов найти это.

  1. Войдите на веб-сервер и выполните grep для процесса httpd

ps -ef | grep httpd

  1. Проверьте наличие любых предупреждений на панели мониторинга..
  2. Проверьте, доступен ли ваш apache IP: порт в браузере

Пример: http://yourapacheserver.com

  1. Проверьте, настроен ли IP-адрес и порт на сервере при помощи netstat

netstat -anlp | grep 80

6. Как установить Apache HTTP?

Есть три возможных способа установить это.

С помощью исходный код – вы можете скачать исходный код и скомпилировать его.

  • Загрузите последнюю версию с http://httpd.apache.org/download.cgi
  • Распакуйте исходный код с помощью утилиты tar или утилиты gzip в зависимости от типа файла: .tar или .tar.gz.

tar xvf httpd-1.2.3.tar
gzip -d httpd-1.2.4.tar.gz

  •  Перейдите туда, куда вы извлекли источник, с помощью команды cd и настройте его с помощью команды ./configure на терминале.
  • Затем скомпилируйте его с помощью команды make.
  • Наконец, используйте команду make install для установки.

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

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

ням установить httpd

RPM – Вы можете скачать необходимый пакет RPM и использовать команду rpm.

rpm -ivh packagename.rpm

7. Как обеспечить, чтобы Apache слушал только один IP-адрес на сервере?

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

Пример:

Слушайте 10.10.10.10:80

8. Как обеспечить работу Apache с пользователем без полномочий root / nobody?

Это можно сделать, добавив пользователя & Групповая директива в файле httpd.conf

Пользователь apache
Группа apache

Приведенный выше пример конфигурации гарантирует, что он запускается пользователем «apache». Вы должны убедиться, что пользователи существуют на сервере перед его настройкой.

9. Как отключить индексацию каталогов?

Вы можете использовать «Options -Indexes» в соответствующей директиве каталога.

Пример:

Опции -Индексы

10. Какой модуль должен иметь возможность перенаправления?

mod_rewrite отвечает за перенаправление, и это должно быть раскомментировано в файле httpd.conf.

LoadModule rewrite_module modules / mod_rewrite.so

11. Можете ли вы изменить порт прослушивания со стандартного на другое??

Да, это возможно, указав номер порта в Слушать директива.

Пример: заставить Apache прослушивать порт 9000 по IP-адресу 10.10.10.10.

Слушай 10.10.10.10:9000

12. Как обезопасить веб-сайт, размещенный на веб-сервере Apache?

Существует несколько способов защиты веб-сервера Apache, включая следующие..

  • Реализация SSL
  • Интеграция с WAF (брандмауэром веб-приложений), таким как ModSecurity и т. Д..
  • Использование облачного провайдера безопасности

13. Какие файлы журнала генерируются Apache?

Созданы два популярных файла журнала;

  • access.log – все детали запроса с кодом статуса
  • error.log – захватить все ошибки в apache или подключиться к бэкэнду

14. Как создать CSR?

Вы можете использовать следующую команду OpenSSL или генерировать CSR онлайн.

Создать новый CSR с закрытым ключом

openssl req -out geekflare.csr -newkey rsa: 2048 -nodes -keyout geekflare.key

Проверьте шпаргалку OpenSSL для получения дополнительных команд.

15. Что такое виртуальный хостинг?

Виртуальный хостинг в Apache позволяет размещать несколько сайтов на одном экземпляре. Вы можете создать На основе IP или Имя основано на виртуальном хостинге.

16. Какой модуль необходим для подключения к WebSphere?

Файл mod_was_ap22_http.so должен быть добавлен в файл httpd.conf для интеграции с IBM WAS.

17. Как перевести уровень логирования в режим отладки?

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

LogLevel отладка

18. Какой модуль необходим для включения SSL?

Модуль mod_ssl должен быть раскомментирован перед реализацией SSL.

LoadModule auth_basic_module modules / mod_ssl.so

19. Как называется модуль WebLogic??

mod_wl_22.so

20. Какой уровень журнала доступен в Apache?

Конфигурация по умолчанию установлена ​​на «предупреждатьОднако возможно и следующее.

  • отлаживать
  • Информация
  • предупреждать
  • уведомление
  • критика
  • аварийная сигнализация
  • АВАРИЙНАЯ
  • ошибка

21. Что такое DocumentRoot?

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

Расположение DocumentRoot по умолчанию: / var / www / html

22. Как развернуть приложения war или JAVA в Apache?

Боюсь, Apache – это веб-сервер, и развертывание приложений на основе Java невозможно с ним. Однако вы можете интегрировать серверы приложений Java, такие как WebLogic, WebSphere, JBoss, где вы можете развертывать файлы war, ear..

23. В чем разница между веб-сервером Apache и Tomcat Apache?

Apache Web – это HTTP-сервер для обслуживания статического содержимого, где Tomcat – это контейнер сервлетов для развертывания файлов JSP..

Однако вы всегда можете интегрировать Apache HTTP с Tomcat, исходя из требований, которые вам необходимо выбрать. Если вам нужен правильный веб-сервер, то Apache HTTP еще Tomcat для JSP-Servlet Container.

24. Как Apache может выступать в качестве прокси-сервера?

Вы можете использовать модуль mod_proxy для использования в качестве прокси-сервера. Модуль mod_proxy можно использовать для подключения к внутреннему серверу, например Tomcat, WebLogic, WebSphere и т. Д..

25. Как настроить журнал Apache, чтобы он фиксировал время, необходимое для обработки запроса?

Можете добавить “% D”В файле httpd.conf под директивой LogFormat, чтобы зафиксировать время ответа, необходимое для обработки запроса. Это покажет время в микросекундах.

LogFormat «% h% l% u% t \»%р\» %>s% b \»% {Referer} я \» \»% {User-Agent} я \» % D» комбинированный

Перезапустите веб-сервер Apache, и вы увидите результаты.

182.19.197.23 – – [02 октября 2016: 10: 32: 25 +0000] «GET / HTTP / 1.1» 403 4961 «-» «Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 53.0.2785.116 Safari / 537.36» 1515
182.19.197.23 – – [02 октября 2016: 10: 32: 25 +0000] «GET /icons/apache_pb.gif HTTP / 1.1» 304 – «http://lab.geekflare.com/» «Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 53.0.2785.116 Safari / 537.36» 424
182.19.197.23 – – [02 октября 2016: 10: 32: 25 +0000] «GET /icons/poweredby.png HTTP / 1.1» 304 – «http://lab.geekflare.com/» «Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 53.0.2785.116 Safari / 537.36» 472

26. Какой инструмент вы используете для анализа журнала?

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

27. На каких веб-серверах вы работали вместе с Apache?

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

  • Nginx
  • Microsoft IIS
  • LiteSpeed
  • GWS

28. Как проверить файл httpd.conf, чтобы убедиться в отсутствии ошибки синтаксиса конфигурации?

httpd –t поможет вам проверить синтаксис.

[[Электронная почта защищена] httpd] # / usr / sbin / httpd -t
Синтаксис ОК
[[Электронная почта защищена] HTTPD] #

В качестве альтернативы, вы также можете использовать команду apachectl.

[[Электронная почта защищена] ~] # / usr / sbin / apachectl configtest
Синтаксис ОК
[[Электронная почта защищена] ~] #

29. Как выполнить тест производительности Apache?

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

30. Как получить поддержку веб-сервера Apache, если что-то не так?

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

31. Как обеспечить запуск веб-сервера после перезагрузки сервера?

Если вы работаете в Linux, вы можете поместить скрипт в /etc/init.d/ и включить запуск при загрузке с помощью команды chkconfig

Допустим, вы создаете файл с именем апаш и поместите в /etc/init.d

chkconfig – добавить apache
chkconfig apache on

если в Windows, то убедитесь, что выбран тип запуска «Автоматически».

32. в чем разница между Apache и Nginx веб-сервером?

Оба относятся к категории веб-серверов, и вот некоторые из основных отличий.

  • Nginx – это веб-сервер на основе событий, где Apache основан на процессах.
  • Nginx известен лучшей производительностью, чем Apache
  • Apache поддерживает широкий спектр ОС, где Nginx не поддерживает OpenVMS и IBMi.
  • Apache имеет большое количество модулей интеграции с внутренним сервером приложений, где Nginx все еще догоняет
  • Nginx легок и быстро захватывает долю рынка. Если вы новичок в Nginx, то вам может быть интересно ознакомиться с моими статьями о Nginx.

33. Как бы вы убили Apache, если не работает grace-stop??

Если работает на Linux, то можете использовать команду kill.

Узнайте PID Apache, используя ps -ef | grep http

Тогда убей это

убить $ PIDNUMBER

если обычное kill не работает, попробуйте kill -9

убить -9 $ PIDNUMBER

Если на Windows, то завершите задачу Apache из диспетчера задач.

34. Как найти файл httpd.conf, если вы не знаете место установки?

В Linux вы можете использовать команду find.

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

find / apps -name httpd.conf

Но если вы не уверены в том, какую файловую систему вы можете найти в / file system, но имейте это в виду, это может занять много времени в зависимости от общего размера файловой системы..

найти / -name httpd.conf

35. Какие разновидности веб-сервера Apache вы знаете??

  • IBM HTTP Server – известный как IHS и часто используемый с IBM WebSphere Application Server
  • Oracle HTTP Server – известный как OHS, часто используемый с сервером Oracle Weblogic.

36. Где находится Apache в центре обработки данных??

Вы можете объяснить, основываясь на своем опыте, однако, как правило, для приложений с выходом в Интернет это будет происходить в сети DMZ Интернет и для внутренней сети интрасети..

Но опять же это будет отличаться в зависимости от приложения / организации.

37. Как скрыть сведения о версии сервера в заголовке ответа HTTP?

Добавьте следующее в файл httpd.conf и перезапустите веб-сервер.

ServerTokens Prod
ServerSignature Off

Это скроет версию и покажет Сервер как «апаш” Только.

38. Что значит 200, 403 & 503 HTTP коды ошибок означают?

  • 200 – контент найден и обслуживается нормально
  • 403 – попытался получить доступ к ограниченному файлу / папке
  • 503 – сервер слишком занят для обслуживания запроса, иными словами – служба недоступна.
  • См. HTTP код ответа инфографики для получения дополнительной информации..

39. Как отключить трассировку HTTP-запросов?

Добавьте следующее в файл httpd.conf и перезапустите экземпляр

TraceEnable off

40. Как устранить проблему конфликта портов?

netstat будет полезен для устранения проблемы конфликта портов. Если на одном сервере запущено несколько экземпляров, рекомендуется использовать абсолютный IP: порт, настроенный для директивы Listen.

41. Как установить сторонний модуль?

Вы можете использовать Apache Toolbox. После загрузки распакуйте его с помощью утилиты tar.

tar -xf Apachetoolbox-1.5.72.tar.gz

Перейдите в папку Apachetoolbox-1.5.72 с помощью команды cd и выполните команду ниже, чтобы выбрать модули для вашего сервера Apache..

./install.sh

Он предоставляет такие модули, как mod_ip_forwarding, mod_auth_mysql и mod_auth_samba для компиляции с веб-сервером Apache. Хотя вы можете включить эти модули вручную, это проще с Apache Toolbox.

42. Как назначить несколько имен виртуальным хостам?

Вы можете использовать директиву ServerAlias, как показано ниже.

ServerName example.com
ServerAlias ​​awesome.com fantastic.com

43. Как ограничить размер загрузки?

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

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

LimitRequestBody 9000

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

44. Как ограничить доступ по IP?

Вы можете захотеть, чтобы часть корневого контекста была доступна по разрешенным IP-адресам. Для этого вы можете использовать mod_authz_core или mod_authz_host модули для ограничения доступа с использованием директивы Require.

Требуется 10.0.0.2 10.0.0.4 192.168.34.23 192.168.34.23

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

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

Вывод

Я надеюсь, что приведенные выше вопросы и ответы помогут вам подготовиться к администратору веб-сервера интервью.

Sorry! The Author has not filled his profile.

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

Не используете CentOS 8?

Выберите другую версию или дистрибутив. CentOS 8

Введение

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

В этом руководстве вы установите веб-сервер Apache с виртуальными хостами на свой сервер CentOS 8.

Предварительные требования

Для выполнения этого руководства вам понадобится следующее:

Шаг 1 — Установка Apache

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

Как пользователь sudo без полномочий root, настроенный в предварительных условиях, установите пакет Apache:

  

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

Выполнив шаг 4 руководства «Начальная установка сервера с CentOS 8», упомянутый в разделе предварительных требований, вы уже установили firewalld на свой сервер для обслуживания запросов по HTTP.

Если вы также планируете настроить Apache для обслуживания контента через HTTPS, вы также захотите открыть порт 443 , включив службу https :

  
  • sudo firewall-cmd --permanent --add-service = https

Затем перезагрузите брандмауэр, чтобы новые правила вступили в силу:

  
  • sudo firewall-cmd --reload

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

Шаг 2 — Проверка вашего веб-сервера

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

  
  • sudo systemctl start httpd

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

  
  • sudo systemctl статус httpd

Вы получите активный статус , когда служба запущена:

  

Выход

● httpd.service - HTTP-сервер Apache Загружено: загружено (/usr/lib/systemd/system/httpd.service; отключено; предустановка поставщика: disa> Активен: активен (работает) с Чт 2020-04-23 22:25:33 UTC; 11с назад Документы: мужчина: httpd.service (8) Основной PID: 14219 (httpd) Статус: «Работает, прослушивает: порт 80» Задач: 213 (лимит: 5059) Память: 24,9 МБ CGroup: /system.slice/httpd.service ├─14219 / usr / sbin / httpd -DFOREGROUND ├─14220 / usr / sbin / httpd -DFOREGROUND ├─14221 / usr / sbin / httpd -DFOREGROUND ├─14222 / usr / sbin / httpd -DFOREGROUND └─14223 / usr / sbin / httpd -DFOREGROUND ...

Как видно из этих выходных данных, служба запущена успешно. Однако лучший способ проверить это — запросить страницу у Apache.

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

Введите q , чтобы вернуться в командную строку, а затем введите:

  

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

В качестве альтернативы вы можете использовать curl для запроса вашего IP-адреса с icanhazip.com , который предоставит вам ваш общедоступный IPv4-адрес, прочитанный из другого места в Интернете:

  

Когда у вас есть IP-адрес вашего сервера, введите его в адресную строку браузера:

  http: // ваш_сервер_ip
  

Вы увидите веб-страницу CentOS 8 Apache по умолчанию:

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

Шаг 3. Управление процессом Apache

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

Чтобы остановить ваш веб-сервер, введите:

  
  • sudo systemctl stop httpd

Чтобы запустить веб-сервер, когда он остановлен, введите:

  
  • sudo systemctl start httpd

Чтобы остановить, а затем снова запустить службу, введите:

  
  • sudo systemctl перезапустить httpd

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

  
  • sudo systemctl перезагрузить httpd

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

  
  • sudo systemctl отключить httpd

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

  
  • sudo systemctl включить httpd

Apache теперь запускается автоматически при повторной загрузке сервера.

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

Шаг 4 — Настройка виртуальных хостов (рекомендуется)

При использовании веб-сервера Apache вы можете использовать виртуальных хостов (если вы более знакомы с Nginx, они похожи на серверные блоки), чтобы инкапсулировать детали конфигурации и разместить более одного домена с одного сервера.На этом этапе вы создадите домен с именем example.com , но вам следует заменить его своим собственным доменным именем. Если вы настраиваете доменное имя в DigitalOcean, обратитесь к нашей сетевой документации.

Apache на CentOS 8 имеет один виртуальный хост, включенный по умолчанию, который настроен для обслуживания документов из каталога / var / www / html . Хотя это хорошо работает для одного сайта, это может стать громоздким, если вы размещаете несколько сайтов. Вместо изменения / var / www / html вы создадите структуру каталогов в / var / www для примера .com , оставив / var / www / html в качестве каталога по умолчанию, который будет обслуживаться, если запрос клиента не соответствует другим сайтам.

Создайте каталог html для example.com следующим образом, используя флаг -p для создания любых необходимых родительских каталогов:

  
  • судо mkdir -p /var/www/example.com/html

Создайте дополнительный каталог для хранения файлов журнала для сайта:

  
  • sudo mkdir -p / var / www / example.com / log

Затем назначьте владельца каталога html с помощью переменной среды $ USER :

  
  • sudo chown -R $ ПОЛЬЗОВАТЕЛЬ: $ ПОЛЬЗОВАТЕЛЬ /var/www/example.com/html

Убедитесь, что для вашего корневого веб-сайта установлены разрешения по умолчанию:

  
  • судо chmod -R 755 / var / www

Затем создайте образец страницы index.html с помощью vi или вашего любимого редактора:

  
  • sudo vi / var / www / example.ru / html / index.html

Нажмите i , чтобы переключиться в режим INSERT и добавьте в файл следующий образец HTML:

/var/www/example.com/html/index.html

  
  
     Добро пожаловать на Example.com! 
  
  
    

Успех! Виртуальный хост example.com работает!

Сохраните и закройте файл, нажав ESC , набрав : wq и нажав ENTER .

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

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

  
  • sudo mkdir / etc / httpd / sites-available / etc / httpd / sites-enabled

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

  
  • sudo vi / etc / httpd / conf / httpd.конф

Нажмите заглавную G , чтобы перейти к концу файла. Затем нажмите i , чтобы переключиться в режим INSERT и добавьте следующую строку в самый конец файла:

/etc/httpd/conf/httpd.conf

  ...
# Дополнительная конфигурация
#
# Загрузить файлы конфигурации в каталог "/etc/httpd/conf.d", если они есть.
IncludeOptional conf.d / *. Conf
IncludeOptional sites-enabled / *. Conf
  

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

Начните с создания нового файла в каталоге sites-available :

  
  • sudo vi /etc/httpd/sites-available/example.com.conf

Добавьте следующий блок конфигурации и измените домен example.com на свое доменное имя:

/etc/httpd/sites-available/example.com.conf

  
    Имя сервера www.example.com
    ServerAlias ​​example.com
    DocumentRoot /var/www/example.com/html
    ErrorLog /var/www/example.com/log/error.log
    CustomLog /var/www/example.com/log/requests.log вместе

  

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

Сохраните и закройте файл, когда закончите.

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

  
  • sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf

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

Шаг 5 — Настройка разрешений SELinux для виртуальных хостов (рекомендуется)

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

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

Универсальная настройка политик Apache

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

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

  
  • sudo setsebool -P httpd_unified 1

Команда setsebool изменяет логические значения SELinux. Флаг -P обновит значение времени загрузки, сохраняя это изменение при перезагрузках. httpd_unified — это логическое значение, которое сообщает SELinux обрабатывать все процессы Apache как один и тот же тип, поэтому вы включили его со значением 1 .

Настройка политик Apache в каталоге

Индивидуальная установка разрешений SELinux для каталога /var/www/example.com/log даст вам больше контроля над политиками Apache, но также может потребовать дополнительного обслуживания. Поскольку этот параметр не является универсальной настройкой политик, вам нужно будет вручную установить тип контекста для любых новых каталогов журналов, указанных в конфигурациях вашего виртуального хоста.

Сначала проверьте тип контекста, который SELinux дал / var / www / example.com / log , каталог:

  
  • sudo ls -dlZ /var/www/example.com/log/

Эта команда выводит список и выводит на печать контекст SELinux каталога. Вы получите следующий результат:

  

Выход

drwxr-xr-x. 2 root root unlimited_u: object_r: httpd_sys_content_t: s0 6 апр 23 23:51 /var/www/example.com/log/

Текущий контекст — httpd_sys_content_t , который сообщает SELinux, что процесс Apache может читать только файлы, созданные в этом каталоге.В этом руководстве вы измените тип контекста каталога /var/www/example.com/log на httpd_log_t . Этот тип позволит Apache создавать и добавлять в файлы журналов веб-приложений:

  
  • sudo semanage fcontext -a -t httpd_log_t "/var/www/example.com/log(/.*)?"

Затем используйте команду restorecon , чтобы применить эти изменения и сохранить их при перезагрузках:

  
  • sudo restorecon -R -v / var / www / example.com / log

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

  

Вывод

Перемаркированный /var/www/example.com/log с неограниченного_u: object_r: httpd_sys_content_t: s0 на unlimited_u: object_r: httpd_log_t: s0

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

  
  • sudo ls -dlZ / var / www / example.com / log /

Вывод отражает обновленный тип контекста:

  

Выход

drwxr-xr-x. 2 root root unlimited_u: object_r: httpd_log_t: s0 6 апр 23 23:51 /var/www/example.com/log/

Теперь, когда в каталоге /var/www/example.com/log используется тип httpd_log_t , вы готовы протестировать конфигурацию виртуального хоста.

Шаг 6 — Тестирование виртуального хоста (рекомендуется)

После обновления контекста SELinux любым методом Apache сможет писать в / var / www / example.com / log каталог. Теперь вы можете успешно перезапустить службу Apache:

  
  • sudo systemctl перезапустить httpd

Перечислите содержимое каталога /var/www/example.com/log , чтобы узнать, создал ли Apache файлы журнала:

  
  • ls -lZ /var/www/example.com/log

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

  

Выход

-rw-r - r--. 1 корневая корневая система_u: object_r: httpd_log_t: s0 0 24 апреля 00:06 error.log -rw-r - r--. 1 корневая корневая система_u: object_r: httpd_log_t: s0 0 24 апреля 00:06 requests.log

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

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

Заключение

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

Если вы хотите создать более полный стек приложений, вы можете прочитать эту статью о том, как настроить стек LAMP в CentOS 8.

Пошаговое руководство

: настройка веб-сервера Apache и обслуживание файлов Amazon EFS

У вас могут быть экземпляры EC2, на которых запущен веб-сервер Apache, обслуживающий файлы, хранящиеся на вашем Amazon EFS файловая система. Это может быть один экземпляр EC2, или, если требуется вашему приложению, вы можете иметь несколько EC2 экземпляры, обслуживающие файлы из файловой системы Amazon EFS.Следующие процедуры находятся описано.

Для обеих процедур вы создаете все ресурсы в регионе Запад США (Орегон). ( us-west-2 ).

Файлы обслуживания одного экземпляра EC2

Следуйте инструкциям по настройке веб-сервера Apache на одном экземпляре EC2 для обслуживания файлов. ты создать в файловой системе Amazon EFS.

  1. Следуйте инструкциям в упражнении «Начало работы», чтобы конфигурация, состоящая из следующего:

    Инструкции см. В разделе Начало работы с Amazon Elastic File System.Следуя инструкциям, запишите следующий:

    • Общедоступное DNS-имя экземпляра EC2.

    • Общедоступное DNS-имя цели монтирования, созданной в той же зоне доступности, где вы запустили экземпляр EC2.

  2. (Необязательно) Вы можете отключить файловую систему от созданной вами точки монтирования. в упражнении «Начало работы».

      $ sudo umount ~ / efs-точка монтирования  

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

  3. На вашем экземпляре EC2 установите веб-сервер Apache и настройте его как следует:

    1. Подключитесь к вашему экземпляру EC2 и установите веб-сервер Apache.

         $  sudo yum -y установить httpd  
    2. Запустить службу.

         $  Служба sudo httpd start  
    3. Создайте точку монтирования.

      Сначала обратите внимание, что DocumentRoot в /etc/httpd/conf/httpd.conf файл указывает на / var / www / html ( DocumentRoot "/ var / www / html" ).

      Вы смонтируете файловую систему Amazon EFS в подкаталоге в корне документа.

      1. Создайте подкаталог efs-mount-point в / var / www / html.

           $  sudo mkdir / var / www / html / efs-mount-point  
      2. Смонтируйте файловую систему Amazon EFS.Вам необходимо обновить следующую команду монтирования с помощью вспомогательной утилиты монтирования EFS предоставление идентификатора вашей файловой системы.

           $  sudo mount -t efs  fs-12345678 : / / var / www / html / efs-mount-point  
  4. Протестируйте настройку.

    1. Добавьте правило в группу безопасности экземпляра EC2, которую вы создали в разделе «Получение». Начато упражнение, чтобы разрешить HTTP-трафик на TCP-порт 80 из любого места.

      После добавления правила группа безопасности экземпляра EC2 будет иметь следующий входящие правила.

      Инструкции см. В разделе Создание групп безопасности с помощью Консоль управления AWS.

    2. Создайте образец файла HTML.

      1. Сменить каталог.

          $ cd / var / www / html / efs-точка монтирования  
      2. Создайте подкаталог для sampledir и измените владение.И измените каталог, чтобы вы могли создавать файлы в sampledir подкаталог.

          $ sudo mkdir sampledir
        $ sudo chown ec2-user sampledir
        $ sudo chmod -R o + r sampledir
        $ cd sampledir  
      3. Создайте образец привет.html файл.

          $ echo " 

        Hello from Amazon EFS

        "> hello.html
    3. Откройте окно браузера и введите URL-адрес для доступа к файлу (это общедоступный DNS-сервер). имя экземпляра EC2, за которым следует имя файла).Например:

        http: //  EC2-instance-public-DNS  /efs-mount-point/sampledir/hello.html  

    Теперь вы обслуживаете веб-страницы, хранящиеся в файловой системе Amazon EFS.

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

Обслуживание нескольких экземпляров EC2 Файлы

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

  1. Выполните шаги из упражнения «Начало работы», чтобы получить файловую систему Amazon EFS. создан и протестирован.

    В этом пошаговом руководстве вы не используете экземпляр EC2, созданный в разделе «Получение». Начались упражнения.Вместо этого вы запускаете новые инстансы EC2.

  2. Создайте балансировщик нагрузки в VPC, выполнив следующие действия.

    1. Определите балансировщик нагрузки

      В разделе Basic Configuration выберите VPC, в котором вы также создайте экземпляры EC2, на которых вы монтируете файловую систему.

      В разделе Select Subnets выберите все доступные подсети . Подробнее см. Сценарий cloud-config в следующем разделе.

    2. Назначить группы безопасности

      Создайте новую группу безопасности для балансировщика нагрузки, чтобы разрешить доступ HTTP через порт 80 из любого места, как показано ниже:

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

    3. Настроить проверку работоспособности

      Установите для параметра Ping Path значение / efs-точка монтирования / тест.html . efs-mount-point — это подкаталог, в котором смонтирована файловая система. Вы добавляете test.html страницу в нем позже в этой процедуре.

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

    Инструкции по созданию балансировщика нагрузки см. В разделе «Приступая к работе с эластичной нагрузкой». Балансировка в Руководстве пользователя Elastic Load Balancing .

  3. Создайте группу Auto Scaling с двумя экземплярами EC2. Сначала вы создаете запуск конфигурация, описывающая экземпляры. Затем вы создаете группу Auto Scaling с помощью указание конфигурации запуска.Следующие шаги предоставляют информацию о конфигурации , который вы указываете для создания группы Auto Scaling из консоли Amazon EC2.

    1. Выберите Launch Configurations под AUTO МАСШТАБ из левой навигации.

    2. Выберите Создать группу автоматического масштабирования , чтобы запустить мастер.

    3. Выберите Создать конфигурацию запуска .

    4. Из Quick Start выберите последнюю версию Amazon Linux (HVM) AMI. Это тот же AMI, который вы использовали на шаге 2. Создайте ресурсы EC2 и запустите свой экземпляр EC2 Приступая к работе упражнение.

    5. В разделе Advanced выполните следующие действия:

      • Для типа IP-адреса выберите Назначить общедоступный IP-адрес. обращайтесь к каждому экземпляру .

      • Скопируйте / вставьте следующий сценарий в поле Пользовательские данные .

        Вы должны обновить сценарий, указав значения для идентификатор файловой системы и aws-region (если вы следовали инструкциям по началу работы упражнение, вы создали файловую систему в регионе us-west-2).

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

        • Сценарий устанавливает клиент NFS и веб-сервер Apache.

        • Команда echo записывает следующую запись в / etc / fstab файл, определяющий DNS-имя файловой системы. и подкаталог, в который его нужно смонтировать.Эта запись гарантирует, что файл получит монтируется после каждой перезагрузки системы. Обратите внимание, что DNS-имя файловой системы — динамически построенный. Дополнительные сведения см. В разделе «Монтирование на Amazon EC2 с DNS-именем».

             идентификатор файловой системы .efs.  aws-region  .amazonaws.com: / / var / www / html / efs-mount-point nfs4 по умолчанию  
        • Создает подкаталог efs-mount-point и монтирует файловую систему на Это.

        • Создает страницу test.html, чтобы проверка работоспособности ELB могла найти файл (когда создавая балансировщик нагрузки, вы указали этот файл как точку проверки связи).

        Дополнительные сведения о сценариях пользовательских данных см. В разделе Добавление Пользовательские данные в Руководстве пользователя Amazon EC2 для экземпляров Linux .

          # облако-конфигурация
        package_upgrade: правда
        пакеты:
        - nfs-utils
        - httpd
        runcmd:
        - echo "$ (curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone).  file-system-id  .efs.  aws-region  .amazonaws.com: / / var / www / html / efs-mount-point nfs4 defaults ">> / etc / fstab
        - mkdir / var / www / html / efs-mount-point
        - крепление -a
        - коснитесь / var / www / html / efs-mount-point / test.html
        - запуск службы httpd
        - chkconfig httpd на  
    6. Для Назначьте группу безопасности , выберите Выберите существующая группа безопасности , а затем выберите группу безопасности, которую вы создали для экземпляра EC2.

    При настройке деталей группы Auto Scaling используйте следующую информацию:

    1. Для Размер группы выберите Начать с 2 экземпляры .Вы создадите два экземпляра EC2.

    2. Выберите свой VPC из списка Сеть .

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

    4. В разделе «Дополнительные сведения»

      1. Для балансировки нагрузки выберите Получать трафик от Elastic Load Balancer , а затем выберите балансировщик нагрузки, который вы создан для этого упражнения.

      2. Для типа проверки работоспособности выберите ELB .

    Следуйте инструкциям по созданию группы автоматического масштабирования в разделе Настройка масштабируемой и сбалансированной нагрузки. Приложение в Руководстве пользователя Amazon EC2 Auto Scaling .Используйте информацию в предыдущие таблицы, где это применимо.

  4. После успешного создания группы Auto Scaling у вас будет два экземпляра EC2 с nfs-utils и установлен веб-сервер Apache.В каждом случае проверьте что у вас есть подкаталог / var / www / html / efs-mount-point с вашим Amazon EFS файловая система смонтирована на нем. Инструкции по подключению к экземпляру EC2 см. В разделе Подключение к экземпляру Linux. в Руководстве пользователя Amazon EC2 для экземпляров Linux .

    Если вы выберете Amazon Linux AMI 2016.03.0 AMI Amazon Linux при запуске инстанса Amazon EC2 вам не нужно устанавливать nfs-utils потому что по умолчанию он уже включен в AMI.

  5. Создайте образец страницы (index.html).

    1. Сменить каталог.

        $ cd / var / www / html / efs-точка монтирования  
    2. Создайте подкаталог для sampledir и измените владельца.И смените каталог, чтобы вы могли создавать файлы в sampledir подкаталог. Если вы следовали предыдущим файлам обслуживания одного экземпляра EC2, вы уже создали sampledir подкаталог, поэтому этот шаг можно пропустить.

        $ sudo mkdir sampledir
      $ sudo chown ec2-user sampledir
      $ sudo chmod -R o + r sampledir
      $ cd sampledir  
    3. Создайте образец индекса .html файл.

        $ echo " 

      Hello from Amazon EFS

      "> index.html
  6. Теперь вы можете протестировать настройку.Используя общедоступное DNS-имя балансировщика нагрузки, перейдите к index.html.

      http: //  общедоступное DNS-имя балансировщика нагрузки  /efs-mount-point/sampledir/index.html  

    Балансировщик нагрузки отправляет запрос одному из экземпляров EC2, на котором запущен веб-сервер Apache. сервер.Затем веб-сервер обслуживает файл, который хранится в вашем файле Amazon EFS. система.

Мониторинг производительности веб-сервера Apache

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

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

Проект HTTP-сервера Apache основан на работе Роба Маккула над веб-сервером HTTPd для Национального центра суперкомпьютерных приложений (NCSA). После того, как МакКул покинул NCSA, группа пользователей (которая стала известна как первоначальная группа Apache) продолжила с того места, где остановился МакКул, объединив свои вклады или «патчи» в проект и выпустив его для публичного использования. Название Apache указывает на его происхождение как «неоднородный веб-сервер», но также отдает дань уважения одноименному индейскому племени.HTTPd был первым проектом, разработанным Apache Software Foundation, организацией, управляемой волонтерами, которая теперь поддерживает более 300 проектов с открытым исходным кодом, включая Cassandra, Kafka и Hadoop.

С момента официального выпуска в 1995 году Apache стал самым популярным используемым сегодня веб-сервером. Согласно опросу, проведенному Netcraft в декабре 2016 года, примерно 45 процентов активных сайтов работают на Apache. Многие организации полагаются на Apache, включая PayPal, Cisco, Apple и, конечно же, Apache Software Foundation.

Обратите внимание, что в этой серии статей мы будем использовать термин «Apache» для обозначения веб-сервера Apache, а не Apache Software Foundation. Некоторые концепции и показатели относятся к Apache версии 2.4; однако многие из этих концепций применимы ко всем версиям, и любые изменения в названиях показателей в разных версиях будут указываться по ходу.

Apache против NGINX против IIS

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

Одним из таких веб-серверов является NGINX , который был разработан для решения проблемы C10k: как веб-серверы могут обрабатывать 10 000 клиентов одновременно? При каждом новом входящем соединении NGINX создает файловый дескриптор, который потребляет меньше памяти, чем весь поток или процесс. Поскольку его архитектура управляется событиями, а не процессами, NGINX также снижает потребность в переключении контекста, которое происходит на веб-серверах «процесс-соединение».

Microsoft Internet Information Services (IIS) похож на Apache в том, что его функциональность может быть расширена за счет дополнительных модулей.Однако, хотя IIS был разработан специально для Windows, Apache работает на многих Unix-подобных платформах, а также на некоторых версиях Windows. Поскольку он был разработан Microsoft (и был включен в каждую версию Windows, начиная с NT), IIS может очень эффективно оптимизировать сетевые ресурсы собственного ядра. Это сделало его естественным выбором для сред Windows, особенно для пользователей, которым необходимо обслуживать динамический контент, такой как приложения ASP.NET.

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

В общем, есть несколько типов показателей, которые вы захотите отслеживать:

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

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

Показатели пропускной способности и задержки

Доступ к журналу 70 метрика отражает количество байтов, которые должно быть обслужено , что не обязательно равно байтам , фактически обслуженным (успешно).
Имя Описание Тип показателя Доступность
Время обработки запроса Микросекунды, необходимые для обработки запроса клиента Производительность
Частота запросов Среднее количество клиентских запросов в секунду Работа: Пропускная способность mod_status
Байт Всего обслуженных байт * Другое mod_status

1

Метрика, о которой следует предупреждать: Время обработки запроса Если Apache обрабатывает запросы медленно, это может быть связано с другими компонентами вашего стека, такими как длительные запросы в MySQL или медленное выполнение кода PHP. Мониторинг всех ваших систем таким образом, чтобы вы могли соотносить данные о производительности между компонентами, помогает выявлять такие проблемы. Однако если ваши показатели показывают, что задержка связана с самим Apache, вы можете поэкспериментировать с уменьшением KeepAliveTimeout , чтобы рабочие потоки не блокировались дольше, чем необходимо.Если вы еще не используете MPM событий, переключение на него (если возможно) позволит вам более эффективно обрабатывать соединения keep-alive, что также может помочь уменьшить задержку запроса. Более подробно о мероприятии MPM мы расскажем ниже.

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

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

Метрика, о которой следует предупреждать: Частота запросов Если ExtendedStatus включен, на странице Apache mod_status будет отображаться дополнительная информация, включая скорость запросов, загрузку процессора и время безотказной работы. Во второй части этой серии статей мы расскажем подробнее о сборе этой информации.

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

Как показано на скриншоте выше, модуль Apache mod_status предоставляет метрику, называемую запросов / сек , но обратите внимание, что имя немного неоднозначно — это значение представляет собой среднее количество запросов в секунду, рассчитанное за весь период времени. сервер работает под управлением .

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

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

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

Apache включает несколько типов многопроцессорных модулей (MPM), которые определяют, как сервер использует ресурсы (потоки / процессы, порты и т. Д.) Для обработки запросов. Некоторые операционные системы совместимы только с MPM, специфичным для этой ОС (например, mpm_winnt для Windows).

Apache может одновременно запускать только один MPM; если вы не укажете MPM при компиляции сервера (с помощью параметра --with-mpm = ), Apache выберет один для вас в зависимости от вашей системы / среды.Если вы запускаете Apache на Unix-подобной платформе, которая совместима с несколькими MPM, важно понимать различия между каждым MPM, чтобы вы знали, когда следует придерживаться значения по умолчанию, а когда другой MPM может лучше соответствовать вашим потребностям. В следующем разделе мы выделим различия между тремя типами MPM, доступными для Unix-подобных систем.

Прежде чем мы перейдем к более подробному рассмотрению каждого MPM, вот несколько параметров конфигурации, общих для всех MPM, с некоторыми отличиями, как указано ниже.На эти параметры будут ссылаться в следующих разделах, и их можно изменить, обновив параметры MPM либо в основном файле конфигурации ( apache2.conf или httpd.conf ), либо, на платформах Debian, в конфигурации для конкретного модуля. файл, расположенный в каталоге с поддержкой модов : / mods-enabled / .conf .

  • StartServers — количество дочерних процессов, созданных при запуске Apache.
  • MaxRequestWorkers (или MaxClients в версиях до 2.4) — максимальное количество подключений, которые могут быть открыты одновременно. По достижении этого предела любые дополнительные входящие соединения ставятся в очередь. Максимальный размер очереди определяется параметром ListenBacklog (по умолчанию 511, хотя он может быть меньше в зависимости от вашей ОС; в Linux длина очереди ограничена net.core.somaxconn ).
  • MinSpareServers / MinSpareThreads и MaxSpareServers / MaxSpareThreads относятся к минимальному и максимальному количеству дочерних процессов (в предварительном MPM) или рабочих потоков (в рабочих MPM и событиях), которые должны быть простаивающими в любой момент. один раз.Если количество незанятых процессов / потоков не попадает в эти границы, родительский процесс соответственно убивает или порождает новые процессы / потоки.
  • MaxConnectionsPerChild (известный как MaxRequestsPerChild до версии 2.4) определяет общее количество подключений, которые каждый дочерний процесс может обслуживать до его перезапуска, что может быть важно для защиты от утечек памяти при использовании определенных модулей, таких как mod_php.
MPM для Unix-подобных систем

Три основных MPM для Unix-подобных систем — это prefork, worker и event.Начиная с версии 2.4, Apache использует информацию о вашей операционной системе, чтобы определить, какой MPM запускать. В Unix-подобных системах MPM по умолчанию зависит от способности каждой системы поддерживать потоки и потокобезопасный опрос, но большинство современных платформ по умолчанию запускают MPM событий.

Prefork MPM

Хотя prefork MPM когда-то был наиболее распространенным вариантом по умолчанию, сегодня он рекомендуется только для пользователей, которым необходимо запускать небезопасную библиотеку (например, mod_php). В prefork MPM родительский процесс использует fork () для предварительного разветвления пула дочерних процессов во время запуска (определяется StartServers в основном файле конфигурации).

Каждый бездействующий дочерний процесс присоединяется к очереди для прослушивания входящих запросов. Этот MPM использует метод под названием accept mutex , чтобы гарантировать, что только один процесс прослушивает и принимает следующий запрос TCP (mutex означает механизм взаимного исключения). Первый бездействующий рабочий процесс в очереди получает мьютекс и ожидает следующего входящего соединения. После получения соединения он освобождает мьютекс принятия, передавая его следующему незанятому процессу в очереди, и обрабатывает запрос (в течение которого он считается занятым исполнителем).После завершения обработки запроса он снова присоединяется к очереди.

Поскольку этому MPM требуется большее количество процессов для обработки любого заданного количества запросов, он обычно требует больше памяти, чем многопоточные MPM, такие как worker и event. По этой причине, если вы используете mod_php, вам следует подумать о переходе на PHP-FPM, чтобы вместо этого вы могли использовать MPM worker или event.

Worker MPM

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

Как и MPM prefork, рабочий MPM использует accept mutex , чтобы указать, какой поток будет обрабатывать следующий входящий запрос. Поток слушателя каждого дочернего процесса присоединяется к очереди ожидания (что указывает на то, что он имеет право на получение мьютекса принятия), только если он обнаруживает, что хотя бы один рабочий поток в дочернем процессе в настоящее время простаивает. Следовательно, для каждого процесса, у которого есть хотя бы один незанятый рабочий поток, поток слушателя присоединится к очереди, чтобы подать заявку на принятие мьютекса.

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

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

Event MPM

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

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

Основным преимуществом событийного MPM является то, что он более эффективно обрабатывает соединения keep-alive за счет использования таких методов ввода-вывода ядра, как epoll (в Linux) и kqueue (в системах BSD).

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

Если KeepAliveTimeout достигается до того, как в сокете произойдут какие-либо действия, поток слушателя закроет соединение. Кроме того, если какой-либо поток-слушатель обнаруживает, что все рабочие потоки в его процессе заняты, он закроет поддерживающие соединения, вынуждая клиентов создавать новые соединения, которые могут быть обработаны более быстро рабочими потоками других процессов (хотя, ради простоты, мы не показываем это в примере ниже). Поскольку выделенный поток слушателя помогает отслеживать время жизни каждого соединения keep-alive, рабочие потоки, которые в противном случае были бы заблокированы (ожидая дальнейших действий), вместо этого могут обращаться к другим активным запросам.

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

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

Метрики ресурсов рабочих, за которыми нужно следить

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

Название Описание Тип метрики Доступность
Занятые рабочие Общее количество загруженных рабочих потоков / процессов Ресурс: Udletilization 0 mod_st Общее количество незанятых рабочих потоков / процессов Ресурс: использование mod_status
Асинхронные соединения: запись Количество асинхронных соединений в состоянии записи (применимо только к событию MPM) Ресурс: использование 910 mod_status
Асинхронные соединения: keep-alive Число асинхронных соединений в состоянии keep-alive (применимо только к MPM событий) Ресурс: использование mod_status
Асинхронные соединения: закрытие Число закрывающихся асинхронных соединений состояние (только заявка может событие MPM) Ресурс: Использование mod_status

Использование рабочего : Рабочий считается «занятым», если он находится в любом из следующих состояний: чтение, запись, сохранение активности, ведение журнала, закрытие или изящное завершение.«Простаивающий» работник не находится ни в одном из состояний занятости; количество простаивающих рабочих отображается на странице Apache mod_status. Модуль состояния

Apache, mod_status, отображает в реальном времени количество неработающих рабочих.

Если вы постоянно видите большое количество незанятых рабочих, вы можете уменьшить значение MinSpareServers (для MPM предварительной обработки) или MinSpareThreads (для MPM рабочих и событий), чтобы не поддерживать большее количество процессы или потоки, чем это необходимо для обработки вашей скорости трафика.Поддержание большего количества процессов или потоков, чем вам действительно нужно, будет излишне истощать системные ресурсы.

Если, с другой стороны, у вас всегда очень мало простаивающих рабочих, вы можете увидеть более медленное время обработки запросов, потому что вашему серверу постоянно требуется создавать новые процессы или потоки для обработки новых запросов, а не использовать простаивающие потоки или уже имеющиеся процессы. Если вы видите, что общее количество рабочих процессов (занятых + простаивающих) приближается к вашему пределу MaxRequestWorkers , любые дополнительные входящие запросы попадут в TCP ListenBacklog (который имеет максимальный размер ListenBacklog ) до следующего рабочий поток становится доступным.

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

Keep-alive соединения : если вы видите много соединений в состоянии keep-alive (обозначено K на табло mod_status), вы можете получать много запросов от клиентов, которые не делают последующих запросов. (и, следовательно, не помогут вам воспользоваться предполагаемыми преимуществами поддерживающих подключений).Если вы еще не используете MPM событий, попробуйте переключиться на него, если это возможно, потому что этот MPM был разработан для более эффективной обработки соединений keep-alive.

Если вы , используя событие MPM, Apache покажет счетчик поддерживающих асинхронных подключений (любые подключения, которые ожидают дальнейших событий, чтобы сигнализировать о том, что они готовы к передаче обратно рабочим потокам). Если вы видите большое количество поддерживающих асинхронных подключений в сочетании с высокой загрузкой ЦП и памяти, вы можете уменьшить максимальное количество одновременных подключений к серверу ( MaxRequestWorkers ) и / или уменьшить KeepAliveTimeout до избегайте держать соединения открытыми дольше, чем необходимо.

Метрики ресурсов на уровне хоста

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

Метрика, о которой следует предупреждать: использование памяти Память — один из наиболее важных ресурсов, за которым нужно следить при использовании Apache. Если Apache исчерпает память, он начнет переключаться на диск, что значительно снизит производительность.Чтобы защититься от утечки памяти (что особенно важно, если вы используете mod_php), вы можете установить MaxConnectionsPerChild на высокое значение (например, 1000), а не оставлять его неограниченным (установив его на 0). По умолчанию эта директива не ограничена, что означает, что процессы никогда не будут принудительно перезапущены. Если вы все же решили установить эту директиву, убедитесь, что она не установлена ​​слишком низко, потому что перезапуск процессов сопряжен с некоторыми накладными расходами.

Как упоминалось выше, на использование памяти также влияет параметр MaxRequestWorkers , который контролирует максимальное количество процессов или потоков, выполняемых одновременно.Значение MaxRequestWorkers (известное как MaxClients до версии 2.4) следует рассчитывать на основе максимального объема памяти, который вы можете зарезервировать для процессов Apache. Использование такого инструмента, как htop, должно дать вам приблизительное представление о фактическом использовании виртуальной и кэшированной памяти каждым процессом Apache. Вы можете использовать это, чтобы рассчитать примерное значение вашего MaxRequestWorkers .

Например, если вы заметите, что каждый процесс Apache использует примерно 50 МБ, а ваш сервер имеет 4 ГБ ОЗУ, вы должны вычислить MaxRequestWorkers по грубой формуле: ((4000 - ) / 50)

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

Если Apache использует слишком много памяти, вы должны попытаться переключиться с prefork на worker или event MPM, если ваша система позволяет это, и если вам не нужно использовать библиотеки, не поддерживающие потоки. Вы также можете отключить любые ненужные модули Apache (чтобы проверить, какие из них в настоящее время загружены, запустите httpd -D DUMP_MODULES в системах на основе RPM или apache2ctl -M в других системах на основе Unix).

Уменьшение количества процессов, создаваемых при запуске (StartServers), и / или уменьшение MaxSpareThreads (максимально допустимое количество незанятых рабочих потоков) также может помочь уменьшить объем памяти.В качестве альтернативы вы можете добавить больше памяти к своим серверам или масштабировать по горизонтали, чтобы распределить нагрузку между большим количеством серверов.

Метрика, о которой следует предупреждать: загрузка ЦП Если вы видите, что загрузка ЦП на ваших серверах Apache постоянно растет, это может указывать на то, что у вас недостаточно ресурсов для обслуживания текущей скорости запросов. Если вы используете базу данных и / или сервер приложений на том же хосте, что и Apache, вам следует подумать о перемещении их на разные машины. Это дает вам больше гибкости для масштабирования каждого уровня вашей среды (базы данных, приложения и веб-серверов) по мере необходимости.Чем больше соединений должен обслуживать Apache, тем больше создается потоков или процессов (в зависимости от используемого MPM), для каждого из которых требуется дополнительный процессор.

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

Ошибки

Имя Описание Тип метрики Доступность
Частота ошибок клиента Частота клиентских ошибок 4xx (например, 403 Запрещено, 4041070 ) в секунду Ошибки Журнал доступа Apache
Частота ошибок сервера Частота ошибок сервера 5xx (например, 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable) в секунду Work: Errors Apache access log

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

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

Журнал доступа Apache содержит подробную информацию о каждом запросе, включая IP-адрес клиента, время запроса, метод HTTP-запроса (GET, POST и т. Д.), Конечную точку / ресурс, а также код состояния и размер HTTP-ответа ( в байтах).Вы также можете получить доступ к журналу ошибок Apache, чтобы узнать, можете ли вы почерпнуть более полезные сведения.

Apache обычно генерирует код состояния 503 Service Unavailable при перегрузке. Проверьте журнал ошибок, чтобы узнать, что вызвало ошибку; он может сказать вам, что у вас недостаточно рабочих процессов для обработки нагрузки запроса, или что параметр в вашем файле конфигурации ограничивал количество подключений, которые могли получить доступ к определенному ресурсу / странице. Вы можете проанализировать свои журналы доступа на наличие ошибок 5xx и переслать их на платформу мониторинга; подробнее читайте в третьей части этой серии.

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

Спасибо Даниэлю Груно, члену комитета по управлению проектами HTTP-сервера Apache, за просмотр этой статьи перед публикацией.

Source Markdown для этого сообщения доступен на GitHub. Вопросы, исправления, дополнения и т.д.? Пожалуйста, дайте нам знать.

Полезные команды для управления веб-сервером Apache в Linux

В этом руководстве мы опишем некоторые из наиболее часто используемых команд управления службами Apache (HTTPD) , которые вы должны знать как разработчик или системный администратор, и вы должны держать эти команды под рукой. Мы покажем команды для Systemd и SysVinit .

Прочтите также : 10 наиболее часто используемых команд Nginx, которые должен знать каждый пользователь Linux

Убедитесь, что следующие команды должны выполняться от имени пользователя root или sudo и должны работать в любом дистрибутиве Linux, таком как CentOS , RHEL , Fedora Debian и Ubuntu .

Установите Apache Server

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

 $ sudo apt install apache2 [В Debian / Ubuntu]
$ sudo yum install httpd [В RHEL / CentOS]
$ sudo dnf install httpd [в Fedora 22+]
$ sudo zypper install apache2 [В openSUSE]
 

Проверить версию Apache

Чтобы проверить установленную версию вашего веб-сервера Apache в вашей системе Linux, выполните следующую команду.

 $ sudo httpd -v
ИЛИ ЖЕ
$ sudo apache2 -v
 
Пример вывода
 Версия сервера: Apache / 2.4.6 (CentOS)
Сервер построен: 5 ноября 2018 01:47:09
 

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

 $ sudo httpd -V
ИЛИ ЖЕ
$ sudo apache2 -V
 
Пример вывода
 Версия сервера: Apache / 2.4.6 (CentOS)
Сервер построен: 5 ноября 2018 г. 01:47:09
Магический номер серверного модуля: 20120211: 24
Сервер загружен: 1 апреля.4.8, АПР-УТИЛ 1.5.2
Скомпилировано с использованием: APR 1.4.8, APR-UTIL 1.5.2
Архитектура: 64-битная
Сервер MPM: prefork
  резьбовой: нет
    разветвленный: да (переменное количество процессов)
Сервер скомпилирован с помощью ....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-сопоставленные адреса включены)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT = 256
 -D HTTPD_ROOT = "/ etc / httpd"
 -D SUEXEC_BIN = "/ usr / sbin / suexec"
 -D DEFAULT_PIDLOG = "/ запустить / httpd / httpd.пид "
 -D DEFAULT_SCOREBOARD = "журналы / apache_runtime_status"
 -D DEFAULT_ERRORLOG = "журналы / журнал_ошибок"
 -D AP_TYPES_CONFIG_FILE = "conf / mime.types"
 -D SERVER_CONFIG_FILE = "conf / httpd.conf"
 

Проверка синтаксических ошибок конфигурации Apache

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

 $ sudo httpd -t
ИЛИ ЖЕ
$ sudo apache2ctl -t
 
Пример вывода
 AH00558: httpd: Не удалось надежно определить полное доменное имя сервера с помощью tecmint.com.
Установите глобальную директиву ServerName, чтобы подавить это сообщение.
Синтаксис ОК
 

Запустить службу Apache

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

  ------------ В CentOS / RHEL ------------ 
$ sudo systemctl start httpd [в системе]
$ sudo service httpd start [в SysVInit]

  ------------ В Ubunt / Debian ------------ 
$ sudo systemctl start apache2 [в системе]
$ sudo service apache2 start [в SysVInit]
 

Включить службу Apache

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

  ------------ В CentOS / RHEL ------------ 
$ sudo systemctl enable httpd [в системе]
$ sudo chkconfig httpd на [в SysVInit]

  ------------ В Ubunt / Debian ------------ 
$ sudo systemctl enable apache2 [В Systemd]
$ sudo chkconfig apache2 на [On SysVInit]
 

Перезапустить службу Apache

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

  ------------ В CentOS / RHEL ------------ 
$ sudo systemctl restart httpd [в системе]
$ sudo service httpd restart [В SysVInit]

  ------------ В Ubunt / Debian ------------ 
$ sudo systemctl restart apache2 [В Systemd]
$ sudo service apache2 restart [В SysVInit]
 

Просмотр статуса службы Apache

Чтобы проверить информацию о состоянии времени выполнения службы Apache, выполните следующую команду.

  ------------ В CentOS / RHEL ------------ 
$ sudo systemctl status httpd [в системе]
Статус httpd службы $ sudo [On SysVInit]

  ------------ В Ubunt / Debian ------------ 
$ sudo systemctl status apache2 [в системе]
$ sudo service apache2 status [On SysVInit]
 

Перезагрузить службу Apache

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

  ------------ В CentOS / RHEL ------------ 
$ sudo systemctl reload httpd [в системе]
$ sudo service httpd reload [в SysVInit]

  ------------ В Ubunt / Debian ------------ 
$ sudo systemctl reload apache2 [в системе]
$ sudo service apache2 reload [On SysVInit]
 

Остановить службу Apache

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

  ------------ В CentOS / RHEL ------------ 
$ sudo systemctl stop httpd [в системе]
$ sudo service httpd stop [В SysVInit]

  ------------ В Ubunt / Debian ------------ 
$ sudo systemctl stop apache2 [в Systemd]
$ sudo service apache2 stop [On SysVInit]
 

Показать справку по командам Apache

И последнее, но не менее важное: вы можете получить справку по служебным командам Apache в systemd, выполнив следующую команду.

 $ sudo httpd -h
ИЛИ ЖЕ
$ sudo apache2 -h
ИЛИ ЖЕ
$ systemctl -h apache2
 
Пример вывода
 Использование: httpd [-D имя] [-d каталог] [-f файл]
             [-C "директива"] [-c "директива"]
             [-k start | restart | graceful | graceful-stop | stop]
             [-v] [-V] [-h] [-l] [-L] [-t] [-T] [-S] [-X]
Параметры:
  -D имя: определить имя для использования в директивах
  -d каталог: указать альтернативный начальный ServerRoot
  -f file: указать альтернативный ServerConfigFile
  -C "directive": директива process перед чтением файлов конфигурации
  -c "директива": директива процесса после чтения файлов конфигурации
  -e level: показать ошибки запуска уровня (см. LogLevel)
  -E файл: записывать ошибки запуска в файл
  -v: показать номер версии
  -V: показать настройки компиляции
  -h: список доступных параметров командной строки (эта страница)
  -l: список скомпилирован в модулях
  -L: перечислить доступные директивы конфигурации
  -t -D DUMP_VHOSTS: показать проанализированные настройки виртуального хоста
  -t -D DUMP_RUN_CFG: показать параметры проанализированного запуска
  -S: синоним -t -D DUMP_VHOSTS -D DUMP_RUN_CFG
  -t -D DUMP_MODULES: показать все загруженные модули
  -M: синоним -t -D DUMP_MODULES
  -t: запустить проверку синтаксиса для файлов конфигурации
  -T: запуск без проверки DocumentRoot (s)
  -X: режим отладки (только один рабочий, не отключаемся)
 

Дополнительную информацию о systemctl можно найти, обратившись к: Как управлять службами и модулями «Systemd» с помощью «Systemctl» в Linux.

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

  1. 5 советов по повышению производительности вашего веб-сервера Apache
  2. Как отслеживать загрузку веб-сервера Apache и статистику страниц
  3. Как администрировать веб-сервер Apache с помощью инструмента «Apache GUI»
  4. Как изменить порт HTTP Apache в Linux
  5. 13 советов по безопасности и усилению защиты веб-сервера Apache
  6. Защитите Apache от грубой силы или DDoS-атак с помощью модулей Mod_Security и Mod_evasive

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

Если вы цените то, что мы делаем здесь, на TecMint, вам следует принять во внимание:

TecMint — это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей доступны БЕСПЛАТНО для всех.

Если вам нравится то, что вы читаете, пожалуйста, купите нам кофе (или 2) в знак признательности.

Мы благодарны за вашу бесконечную поддержку.

Учебники по

LayerStack — LayerStack — Установка веб-сервера Apache на облачных серверах Linux

Веб-сервер Apache — это HTTP-сервер с открытым исходным кодом для современных операционных систем, включая Linux и Windows. Это самый популярный веб-сервер в Интернете. Файл конфигурации Apache и метод установки различаются в зависимости от дистрибутива Linux. Но корень документа по умолчанию — / var / www / html во всех дистрибутивах.

Дистрибутивы Debian и Ubuntu

называют Apache «Apache2», а файл конфигурации Apache2 — /etc/apache2/apache2.conf .

CentOS обозначает Apache как httpd , а файл конфигурации httpd — /etc/httpd/httpd.conf .

После завершения установки вы можете проверить, установлен ли Apache, введя IP-адрес сервера в адресную строку браузера:

http: // ваш_сервер_ip

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

См. Инструкции по установке, настройке и тестированию сервера Apache на CentOS, Debian и Ubuntu ниже.

CentOS 7/8

Установить сервер Apache

  1. Выполните следующую команду, чтобы установить Apache.

      # yum install httpd
      
  2. Apache не запускается автоматически даже после завершения установки. Выполните следующую команду, чтобы запустить процесс Apache.

      # systemctl start httpd
      
  3. Убедитесь, что служба запущена, выполнив следующую команду.

      # статус systemctl httpd
      
  4. Выполните следующую команду, чтобы перезапустить Apache.

      # systemctl перезапуск httpd
      

Настроить сервер Apache

Следующим шагом является добавление и обновление VirtualHost для нового домена в Apache. Каждому домену нужен свой файл конфигурации.Файлы конфигурации имеют расширение .conf и должны быть сохранены в каталоге /etc/httpd/conf.d/ .

В приведенном ниже примере yourdomain.com необходимо заменить фактическим именем веб-сайта.

  1. Создайте файл /etc/httpd/conf.d/yourdomain.com.conf и добавьте в него следующие строки.

      # vi /etc/httpd/conf.d/yourdomain.com.conf
    
    
    <виртуальный хост *: 80 = "">
    ServerAdmin [адрес электронной почты защищен]
    ServerName yourdomain.ком
    ServerAlias ​​www.yourdomain.com
    DocumentRoot /var/www/html/yourdomain.com/
    ErrorLog /var/log/httpd/yourdomain.com/error.log
    CustomLog /var/log/httpd/yourdomain.com/access.log в сочетании
    
      
  2. Создайте каталог для веб-сайта, а затем создайте файл index.html для веб-сайта.

      # mkdir /var/www/html/yourdomain.com
      
  3. Добавьте контент в index.html .

      # vi / var / www / html / yourdomain.ru / index.html
      
  4. Перезапустите службу Apache, чтобы изменения вступили в силу.

      # systemctl перезапуск httpd
      
  5. Откройте любой браузер и введите URL-адрес веб-сайта.

      http://yourdomain.com
      

Тестовый сервер Apache

Веб-сервер Apache можно протестировать, введя IP-адрес сервера в адресную строку браузера:

http: // ваш_сервер_ip

CentOS 6

Установить сервер Apache

  1. Выполните следующую команду, чтобы установить Apache.

      # yum install httpd
      
  2. Выполните следующую команду, чтобы запустить процесс Apache.

      # запуск службы httpd
      
  3. Убедитесь, что служба запущена, выполнив следующую команду.

      # статус службы httpd
      
  4. Выполните следующую команду, чтобы перезапустить Apache.

      # перезапуск службы httpd
      

Настроить сервер Apache

Следующим шагом является настройка конфигурации веб-сервера для домена.Имя файла конфигурации — httpd.conf , а расположение каталога конфигурации Apache — / etc / httpd / .

  1. Откройте файл конфигурации apache /etc/httpd/conf/httpd.conf и добавьте следующие строки в конец файла.

      # vi /etc/httpd/conf/httpd.conf
    
    <виртуальный хост *: 80 = "">
    ServerAdmin [адрес электронной почты защищен]
    ServerName yourdomain.com
    DocumentRoot /var/www/html/yourdomain.com/
    Журнал ошибок / var / log / httpd / yourdomain.com / error.log
    CustomLog /var/log/httpd/yourdomain.com/access.log в сочетании
    
      
  2. Создайте каталог для веб-сайта, а затем создайте файл index.html для веб-сайта.

      # mkdir /var/www/html/yourdomain.com
      
  3. Теперь добавьте контент в index.html .

      # vi /var/www/html/yourdomain.com/index.html
      
  4. Перезапустите службу Apache, чтобы изменения вступили в силу.

      # перезапуск службы httpd
      
  5. Откройте любой браузер и введите URL-адрес веб-сайта.

      http://yourdomain.com
      

Тестовый сервер Apache

Веб-сервер Apache можно протестировать, введя IP-адрес сервера в адресную строку браузера:

http: // ваш_сервер_ip

Ubuntu и Debian

Установить сервер Apache

  1. Выполните следующую команду, чтобы установить Apache.

      # apt-get install apache2
      
  2. Выполните следующую команду, чтобы запустить процесс Apache.

      # /etc/init.d/apache2 start
      
  3. Убедитесь, что служба запущена, выполнив следующую команду.

      # /etc/init.d/apache2 status
      
  4. Выполните следующую команду, чтобы перезапустить Apache.

      # /etc/init.d/apache2 перезапуск
      

Настроить сервер Apache

Следующим шагом является настройка конфигурации веб-сервера для домена.Каталог конфигурации Apache — это / etc / apache2 , а apache2.conf — это главный файл конфигурации Apache. Каждому домену нужен собственный файл конфигурации виртуального хоста.

Файлы конфигурации имеют расширение .conf и должны быть сохранены в каталоге / etc / apache2 / sites-available / .

  1. Создайте файл /etc/apache2/sites-available/yourdomain.com.conf и добавьте в него следующие строки.

      # нано / etc / apache2 / sites-available / yourdomain.com.conf
    
    <виртуальный хост *: 80 = "">
    ServerAdmin [адрес электронной почты защищен]
    ServerName yourdomain.com
    ServerAlias ​​www.yourdomain.com
    DocumentRoot /var/www/yourdomain.com
    ErrorLog $ {APACHE_LOG_DIR} /error.log
    CustomLog $ {APACHE_LOG_DIR} /access.log объединены
    
      
  2. Создайте каталог для веб-сайта, а затем создайте файл index.html для веб-сайта.

      # mkdir /var/www/yourdomain.com
      
  3. Добавьте контент в индекс .html .

      # vi /var/www/yourdomain.com/index.html
      
  4. Перезапустите службу Apache, чтобы изменения вступили в силу.

      # /etc/init.d/apache2 перезапуск
    или же
    # sudo systemctl restart apache2
      
  5. Откройте любой браузер и введите URL-адрес веб-сайта.

      http://yourdomain.com
      

Тестовый сервер Apache

Веб-сервер Apache можно протестировать, введя IP-адрес сервера в адресную строку браузера:

http: // ваш_сервер_ip

Связанные руководства

Ошибка веб-сервера Apache предоставляет root-доступ в средах общего хостинга

Логотип: Apache Software Foundation // Состав: ZDNet

На этой неделе Apache Software Foundation устранила серьезную уязвимость в проекте веб-сервера Apache (httpd), которая может — при определенных обстоятельствах — позволить сценариям несанкционированного сервера выполнить код с правами root и захватить основной сервер.

Уязвимость, отслеживаемая как CVE-2019-0211, затрагивает выпуски веб-сервера Apache только для систем Unix, с 2.4.17 по 2.4.38, и была исправлена ​​на этой неделе в выпуске версии 2.4.39.

Согласно команде Apache, менее привилегированные дочерние процессы Apache (такие как сценарии CGI) могут выполнять вредоносный код с привилегиями родительского процесса.

Поскольку в большинстве систем Unix Apache httpd работает от имени пользователя root, любой злоумышленник, внедривший вредоносный сценарий CGI на сервер Apache, может использовать CVE-2019-0211, чтобы захватить базовую систему, на которой запущен процесс Apache httpd, и, по сути, контролировать всю машину.

CVE-2019-0211 — большая проблема для компаний, предоставляющих общий хостинг.

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

Недостаток в Apache HTTP Server 2.4.17 — 2.4.38 позволяет любому, кому вы позволите написать сценарий (PHP, CGI, ..) для получения root. Получите 2.4.39 * сейчас *, особенно если у вас есть ненадежные авторы скриптов или вы используете общий хостинг (или используете mod_auth_digest, из-за отдельной ошибки) https: // t.co / s08XhOzKKW

— Mark J Cox (@iamamoose) 2 апреля 2019 г.

«Прежде всего, это ЛОКАЛЬНАЯ уязвимость, а это значит, что вам нужен какой-то доступ к серверу», — сказал вчера в интервью ZDNet Чарльз Фол, исследователь безопасности, обнаруживший эту уязвимость.

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

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

«Веб-хостер имеет полный доступ к серверу через учетную запись« root ». Если один из пользователей успешно воспользуется уязвимостью, о которой я сообщил, он / она получит полный доступ к серверу, как и веб-хостер», — сказал Фол. .«Это подразумевает чтение / запись / удаление любого файла / базы данных других клиентов».

Необщие серверы Apache также в опасности

Но Фол также сообщил ZDNet , что CVE-2019-0211, просто своим присутствием, автоматически увеличивает любую другую проблему безопасности сервера — даже для веб-серверов Apache, не являющихся частью разделяемого — среды хостинга.

«Злоумышленники или пентестеры после компрометации HTTP-сервера Apache [они] обычно получают учетную запись с низкими привилегиями (обычно www-data)», — сказал Фол.

Но любой недостаток обхода каталога или удаленного выполнения кода, который позволяет злоумышленнику загрузить сценарий CGI, теперь также означает автоматический root-доступ в результате CVE-2019-0211, по словам Фол.

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

Больше отчетов об уязвимостях:

Настройка веб-сервера Apache (httpd) на CentOS / RHEL 7 — CodingBee

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

Объявление Вы можете найти все мои последние сообщения на medium .

Вы можете следить за этим проектом Apache Vagrant. Этот бродячий проект состоит из 2 ящиков CentOS7, один ящик будет действовать как наш веб-сервер (webserver.local — 10.0.5.10), а другой будет действовать как наш клиент (box1.local — 10.0.5.11).

Мы также обеспечим:

  1. firewalld запущен и не блокирует трафик веб-сервера
  2. SELinux находится в целевом режиме

Но для этого пошагового руководства мы сначала оставим их выключенными:

[root @ webserver ~] # systemctl остановить firewalld
[root @ webserver ~] # setenforce Permissive
 

Установка программного обеспечения Apache

Это делается с помощью yum для установки httpd:

[root @ webserver ~] # ням установить httpd
 

Устанавливает httpd с минимальным набором зависимых rpms.Эта установка установит минимальный набор программного обеспечения, чтобы предоставить вам самое необходимое программное обеспечение веб-сервера. Однако вы можете столкнуться с проблемами, когда попытаетесь использовать некоторые менее распространенные варианты использования, поэтому лучший подход — установить httpd как часть набора пакетов, связанных с веб-сервером, выполнив yum groupinstall:

[root @ webserver ~] # список групп yum | grep -i 'сеть'
Нет файла установленных групп.
Может быть, запустить: yum groups mark convert (см. Man yum)
     Базовый веб-сервер 
   Управление предприятием через Интернет
 

Теперь для его установки мы:

[root @ webserver ~] # yum group install 'Basic Web Server'
 

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

На клиентском компьютере Мы установим некоторые дополнительные инструменты, которые используются для тестирования и устранения неполадок. Сначала мы установим пару веб-браузеров на базе терминала:

[root @ box1 ~] # yum install elinks lynx
 

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

[root @ box1 ~] # yum install nc
 

Запуск демона веб-сервера

На данный момент мы сохраним конфигурацию apache по умолчанию, и мы просто запустим службу веб-сервера.Вы можете сделать это с помощью systemctl или apachectl (они оба делают то же самое за кулисами):

$ systemctl start httpd

# или же

$ apachectl start

 

Мы рассмотрим команду apachectl более подробно позже, а пока мы будем использовать systemctl. Затем мы делаем httpd deamon постоянным:

$ systemctl включить httpd
Создана символическая ссылка из /etc/systemd/system/multi-user.target.wants/httpd.service на /usr/lib/systemd/system/httpd.service.
 

Теперь проверим статус httpd:

[root @ target ~] # статус systemctl httpd
● httpd.service - HTTP-сервер Apache
   Загружено: загружено (/usr/lib/systemd/system/httpd.service; включено; предустановка поставщика: отключено)
   Активен: активен (работает) с Сб 2018-03-03 12:31:04 UTC; 12мин назад
     Документы: мужчина: httpd (8)
           мужчина: apachectl (8)
  Процесс: 6332 ExecStop = / bin / kill -WINCH $ {MAINPID} (код = завершено, статус = 0 / УСПЕХ)
 Основной PID: 6347 (httpd)
   Статус: «Всего запросов: 0; Текущих запросов / сек: 0; Текущего трафика: 0 Б / сек»
   CGroup: /system.slice/httpd.service
           ├─6347 / usr / sbin / httpd -DFOREGROUND
           ├─6348 / usr / sbin / httpd -DFOREGROUND
           ├─6349 / usr / sbin / httpd -DFOREGROUND
           ├─6350 / usr / sbin / httpd -DFOREGROUND
           ├─6351 / usr / sbin / httpd -DFOREGROUND
           ├─6352 / usr / sbin / httpd -DFOREGROUND
           └─6353 / usr / sbin / httpd -DFOREGROUND

03 марта 12:31:04 цель.cb.net systemd [1]: Запуск HTTP-сервера Apache ...
03 марта 12:31:04 target.cb.net systemd [1]: запущен HTTP-сервер Apache.
 

Пока все хорошо.

Теперь давайте проверим, какие порты прослушивает этот демон:

$ ss -nutlp | grep -i http
tcp LISTEN 0 128 ::: 80 ::: * users: (("httpd", pid = 26598, fd = 4), ("httpd", pid = 26590, fd = 4), ("httpd", pid = 6353, fd = 4), ("httpd", pid = 6352, fd = 4), ("httpd", pid = 6351, fd = 4), ("httpd", pid = 6350, fd = 4), ( "httpd", pid = 6349, fd = 4), ("httpd", pid = 6348, fd = 4), ("httpd", pid = 6347, fd = 4))
tcp LISTEN 0 128 ::: 443 ::: * users: (("httpd", pid = 26598, fd = 6), ("httpd", pid = 26590, fd = 6), ("httpd", pid = 6353, fd = 6), ("httpd", pid = 6352, fd = 6), ("httpd", pid = 6351, fd = 6), ("httpd", pid = 6350, fd = 6), ( "httpd", pid = 6349, fd = 6), ("httpd", pid = 6348, fd = 6), ("httpd", pid = 6347, fd = 6))
 

Здесь показано, что демон нашего веб-сервера прослушивает порты 80 и 443.Еще одна проверка, которую вы можете сделать, это:

[root @ webserver httpd] # fuser -v -n tcp 80
                     КОМАНДА ДОСТУПА К PID ПОЛЬЗОВАТЕЛЯ
80 / tcp: корень 5683 F .... httpd
                     Apache 5684 F .... httpd
                     Apache 5685 F .... httpd
                     Apache 5686 F .... httpd
                     Apache 5687 F .... httpd
                     Apache 5688 F .... httpd
                     Apache 5689 F .... httpd
[root @ webserver httpd] # fuser -v -n tcp 443
                     КОМАНДА ДОСТУПА К PID ПОЛЬЗОВАТЕЛЯ
443 / tcp: корень 5683 F.... httpd
                     Apache 5684 F .... httpd
                     Apache 5685 F .... httpd
                     Apache 5686 F .... httpd
                     Apache 5687 F .... httpd
                     Apache 5688 F .... httpd
                     Apache 5689 F .... httpd
 

Теперь подтвердим, что наш клиент может подключаться к этим портам:

[корень @ box1 ~] # nc -v 10.0.5.10 80
Ncat: версия 6.40 (http://nmap.org/ncat)
Ncat: подключен к 10.0.5.10:80.C
 

Теперь мы можем попытаться получить доступ к домашней странице:

[root @ webserver httpd] # curl http://10.0.5.10 | глава
  % Всего% Получено% Xferd Средняя скорость Время Время Время Текущее
                                 Dload Загрузить Общее затраченное количество оборотов влево
100 4897 100 4897 0 0 801k 0 -: -: - -: -: - -: -: - 956k

Тестовая страница HTTP-сервера Apache на базе CentOS 

По сути, это общая домашняя страница с html-кодом, которая поставляется с новой установкой пакета httpd.Для лучшего просмотра этого кода используйте либо elinks, либо lynx:

[root @ box1 ~] # ссылки http://10.0.5.10
 

Обратите внимание: elinks не поддерживает https. Итак, проверьте соединение через порт 443, вам нужно сделать это с помощью curl или lynx:

[root @ box1 ~] # curl -k https://10.0.5.10 | глава

# или же

[root @ box1 ~] # рысь https://10.0.5.10
 

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

[root @ webserver ~] # echo 'Hello CodingBee'> / var / www / html / index.html
 

Теперь давайте проверим это:

[корень @ box1 ~] # curl -k http://10.0.5.10
Привет CodingBee
[корень @ box1 ~] # curl -k https://10.0.5.10
Привет CodingBee
 

Настройте Firewalld для разрешения HTTP-трафика

А теперь активируем firewalld:

$ systemctl запустить firewalld
$ systemctl включить firewalld
 

Теперь посмотрим, какой трафик разрешен:

$ firewall-cmd список-все
использование: см. справочную страницу firewall-cmd
firewall-cmd: ошибка: нераспознанные аргументы: список-все
[root @ target ~] # firewall-cmd --list-all
публичный (активный)
  цель: по умолчанию
  icmp-block-инверсия: нет
  интерфейсы: enp0s3 enp0s8
  источники:
  услуги: ssh dhcpv6-client 
  порты: 3260 / TCP
  протоколы:
  маскарад: нет
  форвард-порты:
  исходные порты:
  icmp-блоки:
  богатые правила:
 

На данный момент только ssh и dhcpv6-client включены в белый список для сетевых адаптеров enp0s3 и enp0s8.enp0s8 — это адаптер, который наш клиент использует для подключения к веб-серверу:

[root @ webserver ~] # ip addr show enp0s8
3: enp0s8: mtu 1500 qdisc pfifo_fast состояние НЕИЗВЕСТНО qlen 1000
    ссылка / эфир 08: 00: 27: 51: 10: c7 brd ff: ff: ff: ff: ff: ff
    inet 10.0.5.10/24 brd 10.0.5.255 глобальная область enp0s8
       valid_lft навсегда предпочтительный_lft навсегда
    inet6 fe80 :: a00: 27ff: fe51: 10c7 / 64 ссылка на область видимости
       valid_lft навсегда предпочтительный_lft навсегда

 

Это означает, что наш клиент потерял доступ к портам 80 и 443:

[корень @ box1 ~] # nc -v 10.0.5.10 80
Ncat: версия 6.40 (http://nmap.org/ncat)
Ncat: Нет пути к хосту.
[корень @ box1 ~] # nc -v 10.0.5.10 443
Ncat: версия 6.40 (http://nmap.org/ncat)
Ncat: Нет пути к хосту.


# следовательно, это означает, что скручивание также не сработает:

[корень @ box1 ~] # curl -k http://10.0.5.10
curl: (7) Не удалось подключиться к 10.0.5.10:80; Нет маршрута к хосту
[корень @ box1 ~] # curl -k https://10.0.5.10
curl: (7) Не удалось подключиться к 10.0.5.10:443; Нет маршрута к хосту
 

Итак, давайте теперь добавим http (порт 80) и https (443) в белый список:

[root @ webserver ~] # firewall-cmd --add-service = http
успех
[root @ webserver ~] # firewall-cmd --add-service = https
успех

[root @ webserver ~] # firewall-cmd --list-all
публичный (активный)
  цель: по умолчанию
  icmp-block-инверсия: нет
  интерфейсы: enp0s3 enp0s8
  источники:
  службы: ssh dhcpv6-client  http https 
  порты: 3260 / TCP
  протоколы:
  маскарад: нет
  форвард-порты:
  исходные порты:
  icmp-блоки:
  богатые правила:
 

Теперь мы можем подтвердить, что у нашего клиента снова есть доступ:

[корень @ box1 ~] # nc -v 10.C
 

Это означает, что мы можем снова получить доступ к домашней странице, используя curl / elinks / lynx, например:

[корень @ box1 ~] # curl -k http://10.0.5.10
Привет CodingBee
 

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

[root @ webserver ~] # firewall-cmd --runtime-to-постоянный
успех
 

Настройка SELinux

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

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

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