Установка веб-сервера Apache в CentOS 7
Введение
HTTP-сервер Apache — самый широко используемый веб-сервер в мире. Он имеет множество мощных функций, включая динамически загружаемые модули, надежную поддержку различных медиаформатов и интеграцию с другим популярным программным обеспечением.
В этом руководства вы установите веб-сервер Apache с виртуальными хостами на сервер на базе CentOS 7.
Предварительные требования
Для выполнения данного руководства вам потребуется следующее:
Шаг 1 — Установка Apache
Apache доступен в используемых по умолчанию репозиториях программного обеспечения CentOS, т. е. вы можете установить его с помощью менеджера пакетов yum
.
С помощью пользователя sudo без прав root, настроенного согласно предварительным требованиям, обновите локальный индекс пакета Apache httpd
, чтобы отразить последние изменения:
После обновления пакетов установите пакет Apache:
После подтверждения установки
yum
выполнит установку Apache и всех требуемых зависимостей.Если вы выполнили указания руководства Дополнительные рекомендуемые шаги для новых серверов CentOS 7, указанные в разделе предварительных требований, на вашем сервере установлен брандмауэр firewalld
, и вам нужно открыть порт 80
, чтобы дать Apache возможность обслуживать запросы через HTTP. Если вы еще не сделали этого, вы можете активировать в брандмауэре firewalld
службу http
с помощью следующей команды:
- sudo firewall-cmd --permanent --add-service=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 status httpd
Если служба запущена, вы увидите значение active
(активна) в статусе:
Output
Redirecting to /bin/systemctl status httpd.service
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2019-02-20 01:29:08 UTC; 5s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 1290 (httpd)
Status: "Processing requests..."
CGroup: /system.slice/httpd.service
├─1290 /usr/sbin/httpd -DFOREGROUND
├─1291 /usr/sbin/httpd -DFOREGROUND
├─1292 /usr/sbin/httpd -DFOREGROUND
├─1293 /usr/sbin/httpd -DFOREGROUND
├─1294 /usr/sbin/httpd -DFOREGROUND
└─1295 /usr/sbin/httpd -DFOREGROUND
...
Как видно из результатов, служба успешно запущена. Однако лучше всего протестировать ее запуск посредством запроса страницы из Apache.
Откройте страницу Apache по умолчанию, чтобы подтвердить работу программного обеспечения через ваш IP-адрес: Если вы не знаете IP-адрес вашего сервера, есть несколько способов узнать его с помощью командной строки.
Введите следующие данные в командной строке сервера:
Эта команда отобразит все сетевые адреса хоста, и вы получите несколько IP-адресов, разделенных пробелами. Вы можете попробовать каждый из них в браузере, чтобы убедиться в их работоспособности.
Также в качестве альтернативы вы можете использовать curl
для запроса IP-адреса icanhazip.com
, который предоставит вам ваш публичный IPv4-адрес, видимый в другом месте в Интернете:
Когда вы узнаете IP-адрес вашего сервера, введите его в адресную строку браузера:
http://your_server_ip
Вы увидите стандартную веб-страницу Apache в CentOS 7:
Эта страница показывает, что Apache работает корректно.
Также на ней содержится информация о важных файлах Apache и расположении директорий. Теперь, когда служба установлена и запущена, вы можете использовать различные команды systemctl
для управления службой.Шаг 3 — Управление процессом Apache
Теперь ваш веб-сервер запущен и работает, и настало время изучить некоторые простые команды управления.
Чтобы остановить веб-сервер, введите:
- sudo systemctl stop httpd
Чтобы запустить остановленный веб-сервер, введите:
- sudo systemctl start httpd
Чтобы остановить и снова запустить службу, введите:
- sudo systemctl restart httpd
Если вы просто вносите изменения в конфигурацию, во многих случаях Apache может перезагружаться без отключения соединений. Для этого нужно использовать следующую команду:
- sudo systemctl reload httpd
По умолчанию Apache настроен на автоматический запуск при загрузке сервера. Если вы не хотите этого, отключите такое поведение с помощью следующей команды:
- sudo systemctl disable httpd
Чтобы перезагрузить службу для запуска во время загрузки, введите:
- sudo systemctl enable httpd
Apache должен будет запуститься автоматически при следующей загрузке сервера.
Конфигурация по умолчанию для Apache позволит вашему серверу размещать один веб-сайт. Если вы планируете разместить несколько доменов на сервере, вам нужно будет настроить виртуальные хосты на веб-сервере Apache.
Шаг 4 — Настройка виртуальных хостов (рекомендуется)
При использовании веб-сервера Apache вы можете использовать виртуальные хосты (аналогичные серверным блокам в Nginx) для инкапсуляции данных конфигурации и размещения на одном сервере нескольких доменов.
На этом шаге мы будем настраивать домен с именем example.com
, но вы должны будете заменить его собственным доменным именем. Чтобы узнать больше о настройке доменного имени с помощью DigitalOcean, пройдите наше обучающее руководство Введение в DigitalOcean DNS.В Apache в CentOS 7 по умолчанию включен один серверный блок, настроенный на обслуживание документов из директории /var/www/html
. Хотя это хорошо работает для отдельного сайта, при хостинге нескольких сайтов это неудобно. Вместо изменения /var/www/html
вы создадите структуру директорий внутри /var/www
для сайта
example.com
, оставив /var/www/html
на месте в качестве директории по умолчанию, которая будет обслуживаться, если запрос клиента не будет соответствовать каким-либо другим сайтам.Создайте директорию html
для example.com
, используя флаг -p
для создания необходимых родительских директорий:
- sudo mkdir -p /var/www/example.com/html
Создайте дополнительную директорию для хранения файлов журнала для сайта:
- sudo mkdir -p /var/www/example.com/log
Затем назначьте права владения для директории html
с помощью переменной среды
$USER
:- sudo chown -R $USER:$USER /var/www/example.com/html
Убедитесь, что ваша корневая директория имеет набор разрешений по умолчанию:
- sudo chmod -R 755 /var/www
Затем создайте в качестве примера страницу index.html
, используя vi
или свой любимый редактор:
- sudo vi /var/www/example.com/html/index.html
Нажмите i
для переключения в режим INSERT
(ВСТАВКА) и добавьте в файл следующий пример HTML-контента:
/var/www/example.
com/html/index.html<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h2>Success! The example.com virtual host is working!</h2>
</body>
</html>
Сохраните и закройте файл, нажмите ESC
, введите :wq
и нажмите ENTER
.
Создав директорию сайта и пример файла index, вы уже почти готовы к созданию файлов виртуального хоста. Файлы виртуального хоста определяют конфигурацию отдельных сайтов и указывают веб-серверу Apache, как отвечать на различные запросы доменов.
Перед созданием ваших виртуальных хостов вам нужно будет создать директорию
sites-available
, чтобы хранить их в этой директории. Также вы должны будете создать директорию sites-enabled
, которая указывает Apache, что виртуальный хост готов к обслуживанию посетителей. Директория sites-enabled
будет хранить символьные ссылки на виртуальные хосты, которые мы хотим опубликовать. Создайте обе директории с помощью следующей команды:- sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled
Затем вы должны попросить Apache выполнить поиск виртуальных хостов в директории sites-enabled
. Для этого необходимо изменить главный файл конфигурации Apache и добавить строку, объявляющую опциональную директорию для дополнительных файлов конфигурации:
- sudo vi /etc/httpd/conf/httpd.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
<VirtualHost *:80>
ServerName 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 combined
</VirtualHost>
Так вы сможете показать, где Apache нужно искать корневую директорию, которая хранит общедоступные веб-документы. Также это указывает, где Apache будет хранить ошибки и журналы запросов для этого сайта.
Сохраните файл и закройте его после завершения.
Теперь, когда вы создали файлы виртуального хоста, вы должны будете активировать их, чтобы Apache смог предоставлять их посетителям. Для этого нужно создать символьную ссылку для каждого виртуального хоста в директории sites-enabled
:
- sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf
Теперь ваш виртуальный хост настроен и готов к предоставлению контента. Прежде чем перезапускать службу Apache, давайте убедимся, что SELinux располагает правильными политиками для ваших виртуальных хостов.
Шаг 5 — Настройка разрешений SELinux для виртуальных хостов (рекомендуется)
SELinux настраивается для работы с конфигурацией Apache по умолчанию. Поскольку вы настроили пользовательскую директорию журналов в файле конфигурации виртуальных хостов, вы получите ошибку при попытке запуска службы Apache. Для устранения данной проблемы вам нужно обновить политики SELinux, чтобы разрешить Apache записывать данные в нужные файлы. SELinux обеспечивает повышенную безопасность для вашей среды CentOS 7, поэтому мы не рекомендуем полностью отключать модуль ядра.
Существуют различные способы настройки политики с учетом потребностей вашей среды, поскольку SELinux позволяет вам настраивать уровень безопасности.
На этом шаге мы обсудим два метода внесения изменений в политики Apache: универсально и в конкретной директории. Изменение политики в директориях является более безопасным, поэтому мы рекомендуем использовать этот подход.
Универсальное изменение политик Apache
Универсальная настройка политики Apache позволит SELinux одинаковым образом использовать все процессы Apache, используя для этого булеву переменную httpd_unified
. Хотя этот подход более удобен, он не обеспечивает аналогичный уровень контроля, что и подход, который подразумевает внимание к политике для отдельных файлов и директорий.
Запустите следующую команду для установки универсальной политики 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 -dZ /var/www/example.com/log/
Эта команда формирует список и выводит контекст SELinux из директории. Вы увидите примерно следующий результат:
Output
drwxr-xr-x. root root unconfined_u:object_r:httpd_sys_content_t:s0 /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
будет распечатывать изменения контекста, внесенные командой. Вы увидите следующий вывод, подтверждающий изменения:
Output
restorecon reset /var/www/example.com/log context unconfined_u:object_r:httpd_sys_content_t:s0->unconfined_u:object_r:httpd_log_t:s0
Вы можете вывести список контекста еще раз, чтобы посмотреть изменения:
- sudo ls -dZ /var/www/example.com/log/
Результат отражает обновленный тип контекста:
Output
drwxr-xr-x. root root unconfined_u:object_r:httpd_log_t:s0 /var/www/example.com/log
Теперь, когда директория /var/www/example.com/log
использует тип httpd_log_t
, вы готовы протестировать вашу конфигурацию виртуального хоста.
Шаг 6 — Тестирование виртуального хоста (рекомендуется)
После обновления контекста SELinux с помощью любого метода Apache сможет осуществлять запись в директорию /var/www/example.com/log
.
Теперь вы можете перезапустить службу Apache:
- sudo systemctl restart httpd
Сформируйте список содержимого директории /var/www/example.com/log
, чтобы убедиться, что Apache создал файлы журнала:
- ls -lZ /var/www/example.com/log
Вы увидите, что Apache удалось создать файлы errors.log
и requests.log
, которые указаны в конфигурации виртуального хоста:
Output
-rw-r--r--. 1 root root 0 Feb 26 22:54 error.log
-rw-r--r--. 1 root root 0 Feb 26 22:54 requests.log
Теперь, когда вы настроили ваш виртуальный хост и обновили разрешения SELinux, Apache будет обслуживать ваше доменное имя. Вы можете проверить это, открыв в браузере адрес http://example.com
, после чего должны увидеть примерно следующее:
Это подтверждает, что ваш виртуальный хост успешно настроен и обслуживает контент. Повторите шаги 4 и 5 для создания новых виртуальных хостов с разрешениями SELinux для дополнительных доменов.
Заключение
В ходе данного руководства вы установили и управляли веб-сервером Apache. Теперь вы установили веб-сервер и у вас есть богатые возможности выбора типа обслуживаемого контента и технологий для расширения возможностей пользователя.
Если вы хотите развернуть более полный комплекс приложений, ознакомьтесь с этой статьей Настройка набора LAMP в CentOS 7.
Apache настройка и установка httpd
Установка и компиляция сервера Apache на машине Ubuntu
шаг 1:Install Java JDK
sudo apt install openjdk-11-jdk
sudo gedit /etc/environment
JAVA_HOME="/usr/lib/jvm/openjdk-11"
source /etc/environment
echo $JAVA_HOME
проверьте версию java
javac --version
**** установите другие необходимые пакеты:**
sudo apt-get install apache2-dev -y
sudo apt-get install libpcre3 libpcre3-dev
Шаг 2: Установка Сервера Apache HTTP
#1 для ubuntu установите средства разработки, включая компилятор C:
sudo apt-get install build-essential checkinstall
#2 Загрузите и извлеките необходимые файлы
предположим, что все файлы были загружены в каталог ~/Downloads
Скачать Apache HTTP сервер httpd-2.
4.41.tar.gz со страницы загрузки Apache ( https:/ / httpd.apache.org / download. cgi )
и следующие необходимые библиотеки для компиляции сервера apache HTTP:
Раздел ****Read требования( http://httpd.apache.org/документы/2.4/установить.html )***
#3 извлеките файлы tar
- tar-xvf httpd-2.4.41.tar.gz
- tar-xvf apr-1.7.0.tar.gz
- tar-xvf apr-util-1.6.1.tar.gz
- tar-xvf pcre2-10.34.tar.gz
после извлечения вы должны увидеть следующий список каталогов в ~/Downloads
- httpd-2.4.41
- апрель-1.7.0
- апреля-утиль-1.6.1
- pcre2-10.34
#4 создайте каталог для сервера apache HTTP
*make обязательно предоставьте все права на этот каталог, чтобы во время компиляции файлы можно было читать/писать
sudo mkdir /home{your username here}/apache
Чтобы предоставить все разрешения каталогу apache :
sudo chmod -R 777 /home{your username here}/apache
#5 скопируйте каталог arp и arp-util в ~ / Downloads/httpd-2.4.41/srclib/
cd ~/Downloads
mv apr-util-1.6.1 ~/Downloads/httpd-2.4.41/srclib/apr-util
mv apr-1.7.0 ~/Downloads/httpd-2.4.41/srclib/apr
#6 настройка источников для компиляции. Параметр —prefix можно использовать для установки веб-сервера в место, где можно записывать файлы.
cd ~/Downloads/httpd-2.4.41/
./configure --prefix=/home/{username here}/apache --with-pcre=~/Downloads/pcre2-10.34
NOTE: если у вас возникли некоторые проблемы во время выполнения вышеуказанной команды,вы также можете попробовать
insallting pcre in /usr/local/pcre, используя
. / configure —prefix=/usr/local/pcre
делать
sudo сделать установить
команды, а затем путем выполнения следующих команд:
cd ~/Downloads/httpd-2.
4.41/
./настроить —prefix=/home/{username здесь}/apache —с-pcre=/usr/local/pcre
делать
sudo make install
Если вы все еще сталкиваетесь с некоторыми проблемами ,убедитесь, что ~/apache и его вложенный каталог имеют права на чтение/запись. если нет, то выполните команду **sudo chmod -R 777 /home{your username here}/apache**
еще раз.
#7 Компилировать Apache HTTP Сервер.
cd ~/Downloads/httpd-2.2.25
sudo make
#8 Установите Сервер Apache HTTP.
cd ~/Downloads/httpd-2.2.25
sudo make install
Необязательно #9 Для Подготовки Файла Hosts
sudo gedit /etc/hosts
27.0.0.1 localhost www.example.com
sudo gedit /home/{your username here}/apache/conf/httpd.conf
и копия:
Listen 8000
ServerName www.example.com:8000
#10 Проверьте установку, чтобы убедиться, что сервер Apache HTTP работает.
/home/{your username here}//apache/bin/apachectl -k start
Русский файл «httpd.conf» — Для себя
В принципе можно заменить целиком весь текст.В переводе применяются следующие соглашения и сокращения
- конфиг, конфиг-файл — конфигурационный файл
- errlog, error-файл — файл, содержащий сообщения об ошибках
- log, лог, — лог-файл файл, в котором ведется журнал системы (или какой-то ее компоненты)
- default, дефолт (дефолтное, и т.д.) — что-либо (значение, действие, компонента), действующее «по умолчанию» — т.е. «автоматически», если явно ничего не задано
- инстанция (процесса, программы) — одна отдельная копия программы (или процесса) из множества параллельно запущенных копий одной и той же программы (процесса)
- (sic) — примечание переводчика о том, что в этом месте в оригинале возможно допущена ошибка, или неточная/неудачная/неясная формулировка.
Поскольку это перевод, а не статья, то исправление последних не входит в компетенцию переводчика. Следует обратиться к документации для полной ясности в этих случаях - пп — примечание переводчика (некоторые пояснения по тексту)
- тайм-аут — истекание срока какого-либо ожидаемого события или действия, просроченность
- content-negotiation — динамическое определение содержимого — выбор одного из многих существующих на сервере вариантов документа, подлежащего выдаче, исходя из разных параметров запроса (или диалога с клиентом)
- agent, агент — браузер, или другая программа-клиент, пославшая запрос серверу
- referer — документ (или его URL), по ссылке из которого сделан тот запрос, к которому это значение относится
- персистентное соединение (persistent connection, keep-alive) — тип виртуального соединения между сервером и клиентом, при котором сервер может обслуживать более одного запроса от одного и того же клиента в рамках одного и того же соединения; т.е. которое не завершается сразу, как только сервер обслужил тот первый запрос клиента, ради которого данное соединение было установлено, а ждет поступления дальнейших запросов по тому же каналу.
Непосредственно перевод
# Основан на конфигурационных файлах сервера NCSA,
# написанных Rob McCool.
#
# Это главный конфиг-файл сервера Apache,
# содержащий директивы, управляющие
# работой сервера. За более подробной информацией об этих директивах,
# обращайтесь по адресу <URL:http://httpd.apache.org/docs-2.0/>
#
# Не стоит читать приведенные здесь команды, не вникая в их суть. Здесь
# они служат лишь в качестве примера или шпаргалки. Если вы не
# уверены - обращайтесь к онлайновой документации. Вы предупреждены.
#
# Конфигурационные директивы сгруппированы в три основные разделы :
#
# 1. Директивы, управляющие серверным процессом Apache в целом
# ("глобальная среда").
#
# 2. Директивы, определяющие параметры "главного"
# или дефолтного сервера,
# который отвечает на запросы, не обрабатываемые каким-либо
# виртуальным хостом.
Эти директивы также задают дефолтные
# установки для всех виртуальных хостов.
#
# 3. Установки для виртуальных хостов, позволяющие единым серверным
# процессом Apache обрабатывать веб-запросы, на самом деле
# адресованные различным хостам (по имени хоста или по IP).
#
# Наименования конфиг- и лог-файлов : Если имя файла начинается с "/" (или c
# "диск:/" под Win32) - сервер использует явно указанный путь. Если же имя
# НЕ начинается с "/", то к нему префиксируется значение ServerRoot.
# Т.о., если ServerRoot="/usr/local/apache", то "logs/foo.log" сервер
# интерпретирует как "/usr/local/apache/logs/foo.log"
#
#
# ПРИМЕЧАНИЕ: При определении имен файлов необходимо использовать прямые
# слэши вместо обратных (т.е. "c:/apache" вместо "c:apache").
# Если диск не указан, по умолчанию используется тот, на котором размещен
# Apache.exe. Для однозначности, все же, рекомендуется в абсолютных путях
# всегда четко указывать диск.
#
#
#
### Раздел 1: Глобальная среда
#
# Директивы в этом разделе задают общие параметры работы Apache, такие, как,
# например, максимальное число одновременных запросов или
# месторасположение конфиг файлов.
#
# ServerRoot: Вершина дерева директорий, в которых содержатся конфиг-, лог- и
# error-файлы.
#
# ПРИМЕЧАНИЕ : Если это дерево будет располагаться на томе монтируемой
# файловой системы NFS (или на другом сетевом ресурсе),
# просьба прочесть описание директивы LockFile
# (по адресу <URL:http://httpd.apache.org/docs-2.0/mod/core.html#lockfile>)
# - во избежание массы проблем.
#
# В конце строки добавлять слэш НЕ следует.
#
ServerRoot "E:/Apache2"
#
# ScoreBoardFile: Файл для хранения информации внутреннего процесса сервера.
# Если не указан (по дефолту не указан), то эта информация хранится в
# неименованном разделе общей памяти, и не доступна посторонним программам.
# Если же файл указан, то он должен быть уникальным для каждой отдельной
# инстанции Apache. Этот файл должен располагаться на МЕСТНОМ диске.
#
#ScoreBoardFile logs/apache_runtime_status
#
# Файл записи идентификационного номера процесса (PID) сервера при запуске.
#
PidFile logs/httpd.pid
#
# Timeout: Время ожидания в секундах, прежде чем попытки приема или отправления
# выдают сообщение о тайм-ауте.
#
Timeout 300
#
# KeepAlive: Допускаются ли персистентные соединения (см. примечания).
# Для запрета укажите "Off".
#
KeepAlive On
#
#
# MaxKeepAliveRequests: Максимальное количество запросов при одном
# персистентном соединении. Значение 0 снимает ограничения. Для максимального
# быстродействия рекомендуем высокое значение.
#
MaxKeepAliveRequests 100
#
# KeepAliveTimeout: Время ожидания (в секундах) следующего запроса от того же
# клиента в рамках одного персистентного соединения
#
KeepAliveTimeout 15
#
#
# Server-Pool Size Regulation (MPM specific)
#
# Установка размеров серверного пула. Параметры данного подраздела
# меняются в зависимости от конкретного модуля мультизадачного режима
# (MPM - Multi-Processing Module), который, в свою очередь, меняется в
# зависимости от конкретной базовой ОС.
#
# WinNT MPM
# ThreadsPerChild: constant number of worker threads in the server process
# MaxRequestsPerChild: maximum number of requests a server process serves
#
# WinNT MPM : Мультизадачный модуль для Win32
# ThreadsPerChild: Постоянное число рабочих нитей (тредов) в серверном(sic)
# процессе
# MaxRequestsPerChild: Максимальное количество запросов, обслуживаемых
# серверным(sic) процессом
#
# (В обоих случаях, речь, на самом деле, идет о дочерних процессах сервера,
# а не о самом серверном процессе. Дело в том, что в случае Win32, который
# как раз здесь рассматривается, запускается один лишь единственный дочерний
# процесс, поэтому для WinNT_MPM эти понятия, в некоторой степени,
# совпадают -пп)
#
<IfModule mpm_winnt.
c>
ThreadsPerChild 250
MaxRequestsPerChild 0
</IfModule>
#
# Listen: Позволяет привязать Apache к конкретным адресам IP и/или портам,
# помимо(sic) дефолтных. См. также директиву <VirtualHost>.
#
# Следует поменять это на конкретные адреса IP (как показано ниже), чтобы
# Apache не "прилипал" ко всем привязанным адресам (0.0.0.0)
#
# (Автор здесь немного противоречит себе. Возможно, правильнее второй абзац,
# а первый просто остался по наследству от предыдущих версий. Следует
# отметить, что в отличии от предыдущих версий, директива Listen теперь
# является обязательной - без нее Apache стартовать не будет -пп).
#
#Listen 12.34.56.78:80
Listen 80
#
#
# Поддержка динамических, разделяемых объектов (DSO, Dynamic Shared Object)
#
# Для того, чтобы использовать модули, созданные как DSO, следует поместить
# здесь соответствующие строки с директивой "LoadModule", чтобы команды этого
# модуля были доступны ДО обращения к ним. Статически скомпилированные модули
# (выявляемые по команде "httpd -l") в этом не нуждаются.
#
# Пример:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule access_module modules/mod_access.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_module modules/mod_auth.so
#LoadModule auth_anon_module modules/mod_auth_anon.so
#LoadModule auth_dbm_module modules/mod_auth_dbm.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule cgi_module modules/mod_cgi.so
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.
so
#LoadModule expires_module modules/mod_expires.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule headers_module modules/mod_headers.so
LoadModule imap_module modules/mod_imap.so
LoadModule include_module modules/mod_include.so
#LoadModule info_module modules/mod_info.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule negotiation_module modules/mod_negotiation.so
#LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule status_module modules/mod_status.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule userdir_module modules/mod_userdir.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule ssl_module modules/mod_ssl.so
#
# Директива ExtendedStatus определяет, будет ли Apache выдавать подробную
# информацию о состоянии (ExtendedStatus On), или только общую справку
# (ExtendedStatus Off), при обращении к функции "server-status". Значение по
# умолчанию - Off.
#
#ExtendedStatus On
#
#
#
### Раздел 2: Конфигурация "главного" (дефолтного) сервера
#
# Директивы этого раздела устанавливают значения, используемые "главным
# сервером", который отвечает на запросы, не обрабатываемые виртуальными
# хостами. Эти значения также задают дефолты для любых последующих
# контейнеров <VirtualHost> в этом файле.
#
# Любые из этих директив могут быть включены в контейнер <VirtualHost>; в таком
# случае дефолтные установки будут переопределены для этого виртуального хоста.
#
# ServerAdmin: Ваш адрес, по которому следует направлять сообщения о проблемах
# с сервером. Этот адрес появится на некоторых сгенерированных сервером
# страницах, таких, как сообщения об ошибках. Пример: admin@your-domain.com
#
ServerAdmin admin@admin.com
#
# Директива ServerName задает имя и порт, которыми сервер представляется.
# Это часто может быть определено автоматически, но рекомендуется явно задавать
# эти параметры, во избежание проблем при запуске.
#
# Если Servername не указывает на действительное DNS-имя вашего хоста,
# переадресация, сгенерированная сервером, не будет работать. См. также
# директиву UseCanonicalName
#
# Если ваш хост не имеет зарегистрированного DNS-имени, укажите здесь его IP.
# В любом случае вам придется обращаться к нему по адресу, при этом
# переадресация станет разумней.
#
ServerName server:80
#
# UseCanonicalName: Определяет как Apache строит внутренние URL-ссылки и
# значения переменных SERVER_NAME и SERVER_PORT. Когда задано "Off", Apache
# использует имя и порт, данные клиентом. Если же задано "On", то Apache
# использует значение директивы ServerName.
#
UseCanonicalName Off
#
# DocumentRoot: Директория, из которой будут выдаваться ваши документы.
# По умолчанию, все запросы обслуживаются из этой директории, но могут быть
# использованы символические линки (пересылки) и алиасы (псевдонимы) для
# указания других мест.
#
DocumentRoot "E:/Apache2/htdocs"
#
#
# Каждая доступная для Apache директория может быть сконфигурирована в
# отношении действий и сервисов, которые разрешены и/или запрещены в
# этой директории (и ее суб-директориях).
#
# Для начала, мы определяем "дефолт", как весьма ограниченный набор разрешений.
#
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
#
# Заметьте, что в дальнейшем вы должны явно разрешать конкретные действия так
# что, если что-то не работает так, как вы ожидаете, убедитесь, что вы явно
# разрешили это ниже.
#
# Здесь должна быть указана директория, которую вы установили как DocumentRoot.
#
<Directory "E:/Apache2/htdocs">
#
# Опции могут иметь значения "None", "All" или любую комбинацию из :
# "Indexes", "Includes", "FollowSymLinks", "SymLinksifOwnerMatch", "ExecCGI",
# и "Multiviews".
#
# Заметьте, что опция "MultiViews" должна быть ЯВНО указана - т.к.
# "Options All" ее НЕ включает.
#
# Директива Options является и сложной и важной. Для дополнительной информации
# см. "http://httpd.apache.org/docs-2.0/mod/core.html#options"
#
Options Indexes FollowSymLinks
#
# AllowOverride определяет какие директивы могут быть использованы в файлах
# .htaccess. Она может принимать значения "All", "None", или любую
# комбинацию из : "Options", "FileInfo", "AuthConfig", и "Limit"
#
AllowOverride None
#
# Эти директивы определяют, кто может получать материал с этого сервера.
#
Order allow,deny
Allow from all
</Directory>
#
#
# UserDir: Имя директории, которое постфиксируется к имени домашней директории
# пользователя при получении запроса ~user. Будьте особенно внимательны - здесь
# используются прямые слеши.
#
UserDir "My Documents/My Website"
#
# Управляет доступом к директориям UserDir. Приведен пример сайта, где эти
# директории имеют ограничение "read-only" (только чтение).
#
# Исправьте (в следующем) корневой путь, чтобы он соответствовал
# местонахождению директории пользователя в вашей системе, например,
# "C:/WinNT/profiles/*/My Documents/My Website".
#
#<Directory "C:/Documents and Settings/*/My Documents/My Website">
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
# <Limit GET POST OPTIONS PROPFIND>
# Order allow,deny
# Allow from all
# </Limit>
# <LimitExcept GET POST OPTIONS PROPFIND>
# Order deny,allow
# Deny from all
# </LimitExcept>
#</Directory>
#
#
# DirectoryIndex: Имя файла, выдаваемого Apache в ответ на запрос директории.
.ht">
Order allow,deny
Deny from all
</Files>
#
# TypesConfig опеределяет местонахождение файла «mime.type» (или ему
# эквивалентного).
#
TypesConfig conf/mime.types
#
#
# Директива DefaultType — это дефолтный MIME-тип, используемый сервером для
# документов, тип которых не определяем по иным признакам, таким, как
# расширение имени файла. Если ваш сервер содержит в основном текстовые или
# HTML-документы, «text/plain» является подходящим значением. Если большая
# часть представляет собой бинарные файлы, такие, как программы или
# изображения, возможно использование «application/octet-stream», чтобы
# предотвратить попытки браузеров показывать содержимое двоичных файлов как
# текст.
#
DefaultType text/plain
#
#
# Модуль «mod_mime_magic» позволяет серверу использовать различные приемы для
# определения типа файла по его содержанию. Директива MIMEMagicFile указывает
# этому модулю месторасположение (файла с описаниями) этих приемов.
#
<IfModule mod_mime_magic.c>
MIMEMagicFile conf/magic
</IfModule>
#
#
# HostnameLookups определяет, записывать ли имена клиентов, или только их
# IP-адреса, например, «www.apache.org» («On») или «204.62.129.132»(«Off»).
# По дефолту «Off», поскольку в целом для Интернета было бы лучше, если бы
# эта опция включалась сознательно, т.к. ее включение означает, что каждый
# клиентский запрос влечет за собой КАК МИНИМУМ еще один обратный запрос к
# серверу имен.
#
HostnameLookups Off
#
# ErrorLog: Расположение error-файла. Если вы не задаете директиву ErrorLog
# внутри контейнера какого-либо <VirtualHost>, его сообщения об ошибках
# будут записаны здесь. Если же вы определите error-файл для какого-либо
# <VirtualHost>, то его сообщения об ошибках будут записываться там, а не здесь.
#
ErrorLog logs/error.
log
#
#
# LogLevel: Control the number of messages logged to the error.log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
#
# LogLevel: Определение количества(sic) ошибок, которые записываются в
# error.log. Возможные значения :
# «debug», «info», «notice», «warn», «error», «crit», «alert», и «emerg».
#
LogLevel warn
#
# Следующие директивы присваивают имена некоторым определениям
# форматов записей, для использования в директиве
# CustomLog (см. ниже).
#
LogFormat «%h %l %u %t \»%r\» %>s %b \»%{Referer}i\» \»%{User-Agent}i\»» combined
LogFormat «%h %l %u %t \»%r\» %>s %b» common
LogFormat «%{Referer}i -> %U» referer
LogFormat «%{User-agent}i» agent
# (слово access — здесь как запрос о доступе, а не как доступ — пп)
#
# Расположение и формат лог-файла запросов (в общем формате лог-файлов —
# Common Logfile Format). Если вы не определяете никаких лог-файлов запросов
# внутри контейнера какого-либо <VirtualHost>, сведения будут записываться
# здесь. Если же вы определяете отдельные лог-файлы запросов для каждого(sic)
# <VirtualHost>, то транзакции будут отслеживаться там, а не здесь.
#
# (Наверное, здесь имеется в виду «для отдельных» <VirtualHost>, а не
# «для каждого» -пп)
#
CustomLog logs/access.log common
#
#
# Если вы хотите иметь лог-файлы для отслеживания значений agent и referrer
# (из соответствующих полей поступающих запросов -пп), раскомментируйте
# следующие директивы.
#
#CustomLog logs/referer.log referer
#CustomLog logs/agent.log agent
#
# Если вы предпочитаете единый лог-файл с информацией о запросе, агенте и
# referrer (комбинированный формат лог-файла — Combined Logfile Format),
# вы можете использовать следующую директиву.
#
#CustomLog logs/access.log combined
#
#
# Добавить дополнительную строчку, содержащую версию сервера и имя виртуального
# хоста на страницах, сгенерированных сервером (таких, как сообщения об
# ошибках, FTP листинги директорий, выдачи модулей «mod_status» и «mod_info»
# и т.
п.; документы, сгенерированные скриптами CGI, к ним не относятся).
# Установите «EMail», чтобы включить еще и линк «mailto:», направленный
# на ServerAdmin.
# Допустимые значения: On | Off | Email
#
ServerSignature On
#
#
# Алиасы (Псевдонимы): Можно добавлять любое количество алиасов (без
# ограничений). Формат: Alias псевдоним действительное_имя
#
# Обратите внимание, что если вы включаете завершающий слэш в псевдониме, то
# сервер потребует его наличия и в URL. Так, псевдоним «/icons» не определен в
# данном примере, только «/icons/». Если псевдоним закначивается на слеш,
# действительное_имя также должно заканчиваться на слеш, а если псевдоним его
# опускает, то и действительное_имя его должно опустить.
#
# Мы используем алиас «/icons/» для листингов директорий типа FancyIndexed.
# Можно закомментировать эту часть, если вы не используете FancyIndexing.
#
Alias /icons/ «E:/Apache2/icons/»
<Directory «E:/Apache2/icons»>
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
#
# Следует поменять это значение на (ваш) ServerRoot/manual/. Данный алиас
# обеспечивает доступ к документации, даже если вы передвините свой
# DocumentRoot. Можно эту часть закомментировать, если документация не нужна.
#
Alias /manual «E:/Apache2/manual»
#
<Directory «E:/Apache2/manual»>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
#
#
# ScriptAlias: Указывает директории, которые содержат серверные скрипты.
# Свойства ScriptAlias-ов в основном такие же, как и у простых Alias-ов,
# кроме того, что при запросе, документы в каталоге «действительное_имя»
# считаются приложениями и выполняются на сервере, а не отправляются
# клиенту. К директиве ScriptAlias применяются те же правила в отношении
# завершающего «/», что и к Alias.
#
ScriptAlias /cgi-bin/ «E:/Apache2/cgi-bin/»
#
# Значение «E:/Apache2/cgi-bin» следует поменять на существующую директорию
# CGI, указанную в ScriptAlias.
#
<Directory «E:/Apache2/cgi-bin»>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
#
# Директива Redirect позволяет сообщить клиенту о документах, ранее
# существовавших в именном пространстве сервера, но теперь не существующих.
# Она позволяет сообщить клиенту новый адрес перемещенного документа.
# Пример:
# «Redirect permanent /foo http://www.example.com/bar»
#
#
# Директивы, управляющие внешним видом листингов директории,
# генерируемых сервером.
#
#
# FancyIndexing задает, хотите ли вы стилизованные листинги директорий или
# же стандартные. VersionSort определяет, будут ли файлы с номерами версий
# сравниваться «естественно», т.е. так, чтобы в листинге файл
# «apache-1.3.9.tar» предшествовал файлу «apache-1.3.12.tar».
#
IndexOptions FancyIndexing VersionSort
#
#
# Директивы AddIcon* указывают серверу, какие иконы показывать для
# различных файлов, или расширений имен файлов. Они показываются только
# для директорий с FancyIndexing.
#
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.
#
# DefaultIcon показывает какую икону показывать для файлов, не имеющих
# явно определенных икон.
#
DefaultIcon /icons/unknown.gif
#
#
# Директива AddDescription позволяет поместить краткое описание после имени
# файла в листингах, сгенерированных сервером. Они показываются только для
# директорий с FancyIndexing.
#
# Формат: AddDescription «описание» имя_файла
#
#AddDescription «GZIP compressed document» .gz
#AddDescription «tar archive» .tar
#AddDescription «GZIP compressed tar archive» .tgz
#
#
# ReadmeName — это дефолтное имя README-файла, который сервер будет искать по
# умолчанию и добавит в конце листингов директорий.
#
# HeaderName — имя файла, который будет добавлен в начале листингов директорий.
#
ReadmeName README.html
HeaderName HEADER.html
#
#
# IndexIgnore — это список файлов, которые должны быть исключены из
# листингов. В именах файлов допускается использование метасимволов замены в
# стиле shell.
#
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
#
#
# AddEncoding позволяет некоторым браузерам (Mosaic/X 2.1+) на ходу
# распаковывать информацию. Замечание: не все браузеры поддерживают это.
# Несмотря на сходство имен, следующие директивы Add* не имеют ничего общего
# с директивами форматирования FancyIndexing, указанными выше.
#
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
#
#
# DefaultLanguage и AddLanguage позволяют указать языки документов. Вы можете
# в последствие использовать динамическое определение содержимого (content
# negotiation) для выдачи браузеру файла на языке понятном пользователю.
#
#
# Установка языка default. Это означает, что вся информация, идущая без
# конкретного языкового тэга (см. ниже), будет идти на дефолтном языке.
# Вероятно, не стоит задавать эту директиву, не будучи твердо уверенным в том,
# что она подходит для всех случаев.
#
#
# * В общем, лучше не указывать определенный язык
# * для страницы, чем задать неправильный язык.
#
# DefaultLanguage nl
#
# Примечание 1: Суффикс не обязательно должен совпадать с
# кодом-идентификатором языка. Те, у кого есть документы
# на польском языке (стандартный буквенный
# код Интернета pl), могут воспользоваться директивой
# «AddLanguage pl .po» во избежание конфликта с распространенным
# суффиксом скриптов на языке Perl.
#
# Примечание 2: Нижеследующие примеры показывают, что в некоторых
# случаях двухбуквенный код языка не совпадает с двухбуквенным
# кодом соответствующей страны.
# Например, Датский (da) и Дания (dk).
#
# Примечание 3: В случае «ltz» мы нарушаем требования RFC, используя
# трехбуквенный код. Ведется работа по устранению несоответствий и
# усовершенствованию «rfc1766».
#
# Danish, датский (da)
# Dutch, голландский, (nl)
# English, английский (en)
# Estonian, эстонский (et)
# French, французский (fr)
# German, немецкий (de)
# Greek-Modern, новогреческий (el)
# Italian, итальянский (it)
# Norwegian, норвежский (no)
# Norwegian Nynorsk (nn)
# Korean, корейский (kr)
# Portugese, португальский (pt)
# Luxembourgeois*, люксембургский (ltz)
# Spanish, испанский (es)
# Swedish, шведский (sv)
# Catalan, каталанский (ca)
# Czech, чешский(cz)
# Polish, польский (pl)
# Brazilian Portuguese, бразильско-португальский (pt-br)
# Japanese, японскский (ja)
# Russian, русский (ru)
# Croatian, хорватский (hr)
#
AddLanguage da .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .et
AddLanguage fr .fr
AddLanguage de .de
AddLanguage he .he
AddLanguage el .el
AddLanguage it .it
AddLanguage ja .ja
AddLanguage pl .po
AddLanguage kr .kr
AddLanguage pt .pt
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pt-br .pt-br
AddLanguage ltz .ltz
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .se
AddLanguage cz .cz
AddLanguage ru .ru
AddLanguage tw .tw
AddLanguage zh-tw .tw
AddLanguage hr .hr
#
# LanguagePriority позволяет задать порядок выбора некоторых языков (в случае
# неоднозначности) при динамическом определении содержания (content
# negotiation).
#
# Просто перечислите языки в порядке убывания приоритета. Здесь они даны в
# более-менее алфавитном порядке. Вероятно, вы захотите изменить этот порядок.
#
LanguagePriority en da nl et fr de el it ja kr no pl pt pt-br ltz ca es sv tw
#
# ForceLanguagePriority позволяет вам (серверу) выдать конкретную страницу,
# вместо сообщения MULTIPLE CHOICES (задается Prefer), [в случае неоднозначного
# выбора], или сообщения NOT ACCEPTABLE (задается Fallback)[в случае, если
# не один язык не подошел]
#
ForceLanguagePriority Prefer Fallback
#
#
# AddDefaultCharset задает дефолтную таблицу символов (кодировку) для всех
# выдаваемых страниц. Это всегда полезно, и открывает возможность будущей
# мультилингвизации вашего веб сайта. Ее обозначение как дефолтной не
# наносит вреда, т.к. стандарт, в любом случае, определяет, что страница
# использует кодировку iso-8859-1 (latin1), если не указано иначе, т.е. вы
# просто подтверждаете очевидное. Существуют так же соображения о безопасности
# для браузеров, относящиеся к обработке javascript и URL, по которым всегда
# стоит указывать дефолтную кодировку.
#
AddDefaultCharset WINDOWS-1251
#
#
# Часто используемые расширения для обозначения кодировок. Вы, вероятно,
# захотите избежать столкновений с языковыми расширениями, если вы не
# специалист по тщательному тестированию установок после каждого изменения.
# См. «ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets» для
# официального списка кодировок и соответствующих им документов RFC.
#
AddCharset ISO-8859-1 .iso8859-1 .latin1
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen
AddCharset ISO-8859-3 .iso8859-3 .latin3
AddCharset ISO-8859-4 .iso8859-4 .latin4
AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru
AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb
AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk
AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb
AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk
AddCharset ISO-2022-JP .iso2022-jp .jis
AddCharset ISO-2022-KR .iso2022-kr .kis
AddCharset ISO-2022-CN .iso2022-cn .cis
AddCharset Big5 .Big5 .big5
#
#
# Для русского языка используется более, чем одна кодировка (в основном,
# зависит от клиента):
#
AddCharset WINDOWS-1251 .cp-1251 .win-1251
AddCharset CP866 .cp866
AddCharset KOI8-r .koi8-r .koi8-ru
AddCharset KOI8-ru .koi8-uk .ua
AddCharset ISO-10646-UCS-2 .ucs2
AddCharset ISO-10646-UCS-4 .ucs4
AddCharset UTF-8 .utf8
#
#
# Ниже приведенный список не соответствует конкретному (iso) стандарту, но
# работает с довольно широким списком браузеров. Заметьте, что верхний регистр,
# на самом деле, имеет значение (этого не должно происходить, но с некоторыми
# браузерами, тем не менее, происходит).
#
# См. «ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets» для своего
# рода списка (кодировок). Но браузеры поддерживают только некоторые из них.
#
AddCharset GB2312 .gb2312 .gb
AddCharset utf-7 .utf7
AddCharset utf-8 .utf8
AddCharset big5 .big5 .b5
AddCharset EUC-TW .euc-tw
AddCharset EUC-JP .euc-jp
AddCharset EUC-KR .euc-kr
AddCharset shift_jis .sjis
#
# AddType позволяет добавить новые MIME-типы (или переопределить старые из
# конфигурационного файла «mime.types») для определенных типов файлов.
#
AddType application/x-tar .tgz
#
# AddHandler позволяет связать определенные расширения имен файлов с
# обработчиками (handlers), вне зависимости от типа файла.
# Обработчики могут быть либо встроены в сервер, либо добавлены директивой
# Action (см. ниже).
#
# Для использования скриптов CGI вне директорий типа ScriptAliased :
# (Кроме того, вам придется добавить «ExecCGI» к директиве «Options»)
#
#AddHandler cgi-script .cgi
#
# Для файлов, которые включают свои HTTP заголовки:
#
#AddHandler send-as-is asis
#
# Для imagemap файлов, обрабатываемых сервером:
#
#AddHandler imap-file map
#
# Для type-maps (динамически определяемых ресурсов):
# Включено по умолчанию, чтобы допустить распространение страницы
# Apache «It Worked» («Сработало!») на различных языках.
#
AddHandler type-map var
#
#
# Фильтры позволяют обработать содержание до отправки клиенту.
#
# Для обработки .shtml файлов на предмет вставок, производимых сервером
# (server-side includes — SSI):
# (Кроме того, вам придется добавить «Includes» к директиве «Options»)
#
#AddOutputFilter INCLUDES .shtml
#
#
# Action позволяет определить MIME или другие типы (для которых задан
# какой-нибудь handler), при запросе которых выполняется соответствующий
# скрипт. Это устраняет необходимость многократного упоминания URL путей
# часто используемых скриптов CGI.
#
# Format: Action media/type /cgi-script/location
# Format: Action handler-name /cgi-script/location
#
# Формат: Action название_MIME_типа путь/скрипт
# Action назавние_типа_или_обработчика(handler) путь/скрипт
#
#
# Существует три типа настроек для конфигурируемых сообщений об ошибках:
# 1) простой текст 2) местные ссылки 3) внешние пересылки
#
# Некоторые примеры:
#
#ErrorDocument 500 «The server made a boo boo.»
#ErrorDocument 404 /missing.html
#ErrorDocument 404 «/cgi-bin/missing_handler.pl»
#ErrorDocument 402 http://www.example.com/subscription_info.html
#
# Собрав все это воедино, мы можем мультилингвизировать сообщения об ошибках.
#
# Мы используем Alias чтобы перенаправлять сообщения
# «/error/HTTP_<error>.html.var» на наборы сообщений на разных языках
# (собранных по типу ошибки). Мы используем «includes» для вставления
# необходимого текста.
#
# Alias /error/include/ «/your/include/path/»
#
#
# Можно изменить вид сообщения, не меняя никаких дефолтных
# «HTTP_<error>.html.var» файлов, добавив строку;
#
# Alias /error/include/ «/your/include/path/»
#
# которая позволяет вам создать свой набор файлов, начав с файлов
# «E:/Apache2/error/include/» и копируя их в «/your/include/path/»,
# в том числе и для отдельных VirtualHost.
#
#
<IfModule mod_negotiation.c>
<IfModule mod_include.c>
Alias /error/ «E:/Apache2/error/»
<Directory «E:/Apache2/error»>
AllowOverride None
Options IncludesNoExec
AddOutputFilter Includes html
AddHandler type-map var
Order allow,deny
Allow from all
LanguagePriority en es de fr
ForceLanguagePriority Prefer Fallback
</Directory>
ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
ErrorDocument 410 /error/HTTP_GONE.html.var
ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
ErrorDocument 415 /error/HTTP_SERVICE_UNAVAILABLE.html.var
ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.WebDrive» redirect-carefully
#
# Разрешить выдачу сообщений-отчетов о состоянии сервера по запросу на URL
# «http://servername/server-status» . Замените «.admin.admin.com» на имя
# своего домена для включения.
#
#<Location /server-status>
# SetHandler server-status
# Order deny,allow
# Deny from all
# Allow from .admin.admin.com
#</Location>
#
#
# Разрешить выдачу сообщений-отчетов о конфигурации удаленного сервера по
# запросу на URL «http://servername/server-info» . Замените «.your-domain.com»
# на имя своего домена для включения.
#
#<Location /server-info>
# SetHandler server-info
# Order deny,allow
# Deny from all
# Allow from .admin.admin.com
#</Location>
#
# Директивы прокси-сервера. Раскомментируйте следующие строки, чтобы включить
# прокси-сервер.
#
#<IfModule mod_proxy.c>
#ProxyRequests On
#
#<Proxy *>
# Order deny,allow
# Deny from all
# Allow from .your-domain.com
#</Proxy>
#
#
# Включить/выключить обработку заголовков «HTTP/1.1» типа «Via:» (через)
# (Опция «Full» добавляет номер версии сервера, «Block» отменяет все исходящие
# заголовки типа «Via:».
# Возможные варианты: Off | On | Full | Block
#
#ProxyVia On
#
# Чтобы включить еще и кэширование, откорректируйте и раскомментируйте
# следующие строки
#
#CacheRoot «E:/Apache2/proxy»
#CacheSize 5
#CacheGcInterval 4
#CacheMaxExpire 24
#CacheLastModifiedFactor 0.1
#CacheDefaultExpire 1
#NoCache a-domain.com another-domain.edu joes.garage-sale.com
#</IfModule>
#
# Конец директив прокси сервера.
#
#
# Включить дополнительные конфиг-файлы для отдельных модулей
#
<IfModule mod_ssl.c>
Include conf/ssl.conf
</IfModule>
#
#
#
###Раздел 3: Виртуальные хосты
#
#
# VirtualHost: Если вы хотите держать множество доменов/хостов на своей машине,
# то задайте для них контейнеры VirtualHost. Большинство конфигураций задает
# только имена виртуальных хостов, с тем, чтобы серверу не требовались
# IP адреса. Данное обстоятельство обозначено звездочками (*) в следующих
# директивах.
#
# См. документацию по адресу <URL:http://httpd.apache.org/docs-2.0/vhosts/>
# для дополнительной информации, прежде чем создавать виртуальные хосты.
#
# Вы можете воспользоваться ключом «-S» для командной строки, чтобы выявить
# конфигурацию ваших виртуальных хостов.
#
#
#
# Использовать виртуальные хосты по их именам.
#
#NameVirtualHost *
#
#
# Пример виртуального хоста.
# Почти любые директивы Apache могут входить в контейнер VirtualHost.
# Первый VirtualHost используется для запросов, направленных на
# неизвестное имя сервера
#<VirtualHost *>
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>
Спасибо автору
Установка SSL-сертификата: Apache + Mod SSL + OpenSSL
В письме с уведомлением о выпуске SSL-сертификата содержится zip-архив. В архиве содержится 2 файла «domainname.crt» и «domainname.ca-bundle». Первый является сертификатом для вашего домена, а второй содержит корневой и промежуточные сертификаты.
Шаг 1. Скопируйте файлы domainname.crt и domainname.ca-bundle на сервер в ту же директорию, в которой содержится Private Key (приватный ключ).
В данном примере мы используем ‘/etc/ssl/crt/’ . The private key (приватный ключ), используемый в примере, помечен как ‘private.key’ , а public key будет называться ‘yourDOMAINNAME.crt’ .
Примечание : Рекомендуем Вам создавать директорию, содержащую файл private key (приватный ключ), видимой только корневым каталогом.
Совет: рекомендуется выставить права доступа на чтение для директории, содержащей приватный ключ только для пользователя root.
Шаг 2. Установите на сервере корневой и промежуточный сертификаты.
2.1. Откройте в текстовом редакторе конфигурационный файл сервера Apache 2.х httpd.conf. Найдите раздел VirtualHost, относящийся к вашему SSL-сертификату. Убедитесь, что в нем содержатся три следующие строки. Если их нет — их необходимо добавить:
SSLCertificateChainFile /etc/ssl/crt/domainname.ca-bundle
SSLCertificateFile /etc/ssl/crt/domainname.crt
SSLCertificateKeyFile /etc/ssl/crt/private.key
Для Apache 1.x используйте вместо SSLCertificateChainFile директиву SSLCACertificateFile:
SSLCACertificateFile /etc/ssl/crt/domainname.ca-bundle
Примечание: в ряде конфигураций Virtual Host размещается в файле ssl.conf. Если в файле httpd.conf не содержится раздел
Virtual Host, тогда поищите его в файле ssl.conf как было сказано выше.
2.2. Сохраните изменения и закройте текстовый редактор.
2.3. Запустите (или перезапустите) ваш веб-сервер Apache.
Дополнительная информация
Файл httpd.conf должен содержать несколько или все следующие строки (для IP-based сайта). Строки, относящиеся к настройкам SSL
выделены жирным шрифтом. Строки, выделенные курсивом используются только для отладки (для выявления проблем при настройке SSL).
<VirtualHost 192.168.1.1:443>
DocumentRoot /var/www/html
ServerName 192.168.1.98
ServerAdmin someone@your.domain
ErrorLog /etc/httpd/logs/ssl_error_log
TransferLog /etc/httpd/logs/ssl_access_log
SSLEngine On
SSLCertificateFile /etc/ssl/crt/domainname.crt
SSLCertificateKeyFile /etc/ssl/crt/domainname.key
SSLCertificateChainFile /etc/ssl/crt/domainname.ca-bundle
SSLSessionCache dbm:/var/cache/httpd/ssl_cache
</VirtualHost>
Узнать больше о настройке веб-сервера Apache можно на сайте http://httpd.apache.org/docs-2.0/mod/mod_ssl.html
Проверить настройки можно используя веб-браузер. Используйте https-протокол (например, https://ваш сервер/) для просмотра кодированных страниц.
Иконка браузера с изображением навесного замка отображается в виде закрытого замка, если ваш сертификат установлен корректно и сервер правильно
настроен.
Директивы конфигурации веб-сервера Apache | Сетевые технологии
Приведены основные (не все) директивы управления работой веб-сервера Apache2, полное описание доступно на сайте http://httpd.apache.org/.
- ServerType
- Для этой директивы значением по умолчанию является ServerType standalone. Серверы, работающие в автономном режиме (standalone), запускаются из загрузочных сценариев при запуске системы. Такая установка рекомендуется для улучшения производительности.
В качестве альтернативы режиму standalone можно воспользоваться режимом inetd, который обеспечивается демоном inetd. - Port
- В этой директиве задается номер сетевого порта, на котором будет работать ваш сервер, если он запущен в автономном режиме (если используется inetd, то номер порта следует задать в файле /etc/services). Значением по умолчанию для этой директивы является
Port 80
. Этот порт является стандартным для протокола HTTP (см. порты сетевых сервисов) и рекомендуется для использования на основном сервере вашего Web-узла. - HostnameLookups
- Директива HostnameLookups указывает, записывается ли в журнальный файл доменное имя узла или только его IP-адрес. По умолчанию сервер сохраняет имя компьютера, но если ожидаемый объем трафика очень велик, отключение опции HostnameLookups позволит уменьшить нагрузку на сервер. Это делается простым изменением строки на
HostnameLookups off
. - User и Group
- Эти параметры задают действительные идентификаторы пользователя и группы, которые присваиваются серверу, работающему в автономном режиме. По умолчанию в качестве имени пользователя принимается nobody, что является превосходным выбором с точки зрения защиты информации. Ни в коем случае нельзя запускать сервер с привилегиями суперпользователя (root).
В качестве идентификатора группы следует использовать идентификатор какой-нибудь нейтральной группы, имеющейся в системе. Часто используется группа news. Либо можно специально создать для сервера новую группу. Если указанные пользователь и группа не существуют в системе, сервер не будет работать. - ServerAdmin webmaster@example.com
- Официальный электронный адрес вебмастера вашего Web-узла.
- ServerRoot
- В этой директиве задается базовый каталог, в котором будет установлено программное обеспечение HTTP-сервера Apache.
- BindAddress
- Эта директива используется для компьютеров, имеющих несколько сетевых интерфейсов. С ее помощью можно
устанавливать прослушивание сервером еще какого-то из IP-адресов компьютера. По умолчанию эта директива закомментирована, и сервер производит прослушивание всех адресов компьютера.
- ErrorLog /usr/local/apache/logs/error_log и CustomLog /usr/local/apache/logs/access_log common
- При помощи этих двух директив задается путь к log-файлам, в которых регистрируются ошибки и попытки доступа к серверу соответственно. В файле, указанном в директиве ErrorLog, сервер сохраняет сообщения диагностики, включая сообщения об ошибках, выдаваемые сценариями CGI. В файле, указанном в директиве CustomLog, сервер сохраняет все запросы клиентов. Если включена описанная выше опция HostnameLookups, то вместе с запросами регистрируются имена компьютеров.
- ServerName
- Директива ServerName позволяет задать имя хоста, возвращаемое клиенту. Имя, которое вы определяете здесь, должно быть
зарегистрированным доменным именем вашего хоста. Если сервер не имеет зарегистрированного имени, вы можете указать здесь его адрес IP, но вам придется обращаться к нему по адресу (например, http://192.168.0.1/) и это может сильно осложнить переадресацию ресурсов.
- Timeout
- Это промежуток времени в секундах (по умолчанию &mdash 300), в течение которого сервер ждет продолжения недополученного запроса или продолжает попытки возобновления приостановленной передачи ответа.
- KeepAlive
- KeepAlive является свойством протокола HTTP 1.1, позволяющим ускорить обработку запросов путем удержания соединения и выполнения нескольких запросов. В HTTP 1.0 передача Web-страницы с четырьмя встроенными изображениями потребовала бы пять отдельных соединений, а с использованием KeepAlive все последовательные запросы производятся в рамках одного соединения. По умолчанию &mdsh;
KeepAlive On
- MaxClients
- Директива MaxClients устанавливает максимальное число копий сервера, которые могут выполняться одновременно. Когда достигается этот предел (по умолчанию — 150), новые запросы получают отказ. Если вам не хочется отказывать пользователям, не устанавливайте слишком маленькое значение. Медленный ответ все-таки лучше, чем отказ от обслуживания.
- Listen
- Эта директива позволяет привязать Apache к конкретному адресу IP, и/или порту, в дополнение к порту, определенному по умолчанию.
- DocumentRoot
- В этой директиве задается каталог, из которого берутся передаваемые клиентам документы. Можно предоставлять
клиентам и файлы, находящиеся в других каталогах, — для этого используются символьные ссылки.
- UserDir public_html
- Название каталога, которое прибавляется к именам пользовательских домашних каталогов при получении запроса ~user (напр.»http://www.example.com/~user»). Если не требуется использовать возможность пользовательских каталогов, следует указать
UserDir DISABLED
. - DirectoryIndex index.html
- Эта директива позволяет задать название документа, возвращаемого по запросу, который не содержит в строке URI названия документа. Если вы указываете несколько имен, разделяйте их пробелами. Пример:
DirectoryIndex index.html index.php index.htm default.html
Сервер будет искать перечисленные файлы в соответствующем порядке. - IndexOptions FancyIndexing
- При получении запроса на передачу каталога сервер Apache:
- находит файл, указанный в директиве DirectoryIndex (если таковой существует), и передает его клиенту;
- если файл DirectoryIndex не существует, передает клиенту оглавление каталога.
Если выбрана опция Fancylndexing, то в оглавлении используются значки и описания файлов. Если эта опция отключена, сервер представляет оглавление в более простом виде. - AccessFileName
- Имя файла, который сервер ищет в каждом каталоге для определения прав доступа. По умолчанию —
.htaccess
(с точкой в начале). Чтобы подсказать браузеру, какие файлы ему предстоит обрабатывать, сервер формирует определенный код типа документа, основываясь на спецификации MIME — Multipurpose Internet Mail Extensions — многоцелевые
почтовые расширения Internet) и передает этот код в заголовке HTTP-протокола.
- DefaultType
- Директива DefaultType определяет MIME-тип, который будет использоваться для какого-либо документа, если
сервер не сможет определить его по иным признакам, например по расширению. По умолчанию значение DefaultType — text/plain. Если большая часть файлов бинарники (программы, картинки и т.п.) стоит изменить значение
на «application/octet-stream», чтобы предотвратить попытку браузера показать
содержимое двоичного файла.
- AddEncoding x-compress Z и AddEncoding x-gzip gz tgz
- Эти директивы позволяют сжимать отдаваемые документы перед отправкой, что экономит трафик и ускоряет загрузку. Браузеры, поддерживающие эту возможность (Mozilla, SeaMonkey, FireFox), распаковывают полученные файлы «на лету».
- Redirect
- Директива Redirect позволяет переадресовать запрос к ранее существовавшему в именном пространстве сервера документу на его новый адрес. Пример:
Redirect http://example.com/old-location/test.html http://example.com/new-location/test.html
- Alias
- Директивы Alias дают возможность предоставлять доступ к документам, находящимся не только в корневом каталоге сервера (DocumentRoot) и его подкаталогах, но и в других каталогах. По умолчанию в директиве Alias задан только один псевдоним — /icons, используемый директивами Addlcon и AddIconByType. Обратите внимание, что если вы включаете завершающий слэш в «псевдоним», то сервер потребует его присутствия и в URL. Пример:
Alias /icons/ "/usr/local/apache/icons/"
- ScriptAlias
- Директива указывает каталог, который содержит серверные скрипты. Свойства ScriptAlias-ов такие же, как
и у просто Alias-ов, кроме того, что документы в заданном директивой каталоге считаются приложениями и выполняются на сервере, а не отправляются клиенту. К директиве ScriptAlias применяются те же правила в отношении завершающего «/», что и к Alias.Разрешается добавлять неограниченное число директив
ScriptAlias. Примеры:
ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
ScriptAlias /user1/ "/usr/home/user1/public_html/cgi-bin/"
- AddType
- Директива AddType позволяет добавить описания типов файлов (помимо MIME-types) и порядок их обработки. Примеры:
#файлы с расширением .shtml должны обрабатываться как html файлы
AddType text/html .shtml
#файлы с расширением .php должны запускаться как php файлы
AddType application/x-httpd-php .php
#файлы с расширением .html должны запускаться и как php файлы
AddType application/x-httpd-php .html
#файлы с расширением .pl должны запускаться как cgi файлы
AddType application/x-httpd-cgi .pl
- AddHandler
- Сервер Apache имеет возможности модификации файлов определенных типов перед отправкой их пользователю. Директива AddHandler ставит в соответствие расширению файла определенное действие. Например:
AddHandler server-parsed .shtml
включает поддержку технологии SSI (Server-side Includes) и Apache выполняет разбор файлов .shtm на предмет поиска в них директив SSI. Если изменить параметр так:AddHandler server-parsed .html
то Apache будет парсить и .html-файлы.
Функция, указанная в директиве AddHandler, не обязательно должна являться встроенной функцией сервера. Директива Action
может ставить в соответствие функции из AddHandler сценарий CGI. Например, следующие строки в файле srm.conf сначала указывают серверу, что функция foo поставлена в соответствие сценарию bar.pl, который всякий раз запускается при обращении к файлам с расширением .ext:Action foo /user/cgi-bin/bar.pl
AddHandler foo .ext
- ErrorDocument
- Эта директива позволяет переопределить сообщения об ошибках, сопоставив в соответствие кодам ошибок HTTP-сервера текстовые сообщения и/или адреса URL на том же сервере. Например:
ErrorDocument 404 "Этого файла нет, не было и не будет на сервере!"
- Options
- Эта директива перечисляет список опций, применяемых к указанному каталогу. Опции могут иметь значения
«None», «All» или любую комбинацию из «Indexes», «Includes», «FollowSymLinks», «ExecCGI» или «MultiViews». Например, такая конфигурация определяет порядок отображения индексной страницы, разрешает серверные включения (SSI) и переход по символьным ссылкам:
Options Indexes Includes FollowSymLinks
- AllowOverride
- С параметром
none
блокирует использование файла .htaccess, с параметром all
— разрешает перекрывать дефолные настройки директивами из .htaccess. - Order
- Директива, вместе с директивами
Allow
и Deny
, определяющая порядок обращения к ресурсам в соответствии с правами доступа. Пример:Order allow,deny
Allow from all
Анатольев А.Г., 06.08.2013
Постоянный адрес этой страницы:
Подключение HTTP-сервера Apache к Azure Sentinel
-
- Чтение занимает 2 мин
-
В этой статье
Важно!
Соединитель HTTP-сервера Apache в настоящее время находится на этапе предварительной версии.The Apache HTTP Server connector is currently in PREVIEW. Ознакомьтесь с дополнительными условиями использования Microsoft Azure предварительных версий для дополнительных юридических условий, которые относятся к функциям Azure, которые доступны в бета-версии, предварительном просмотре или еще не выпущены в общедоступную версию.See the Supplemental Terms of Use for Microsoft Azure Previews for additional legal terms that apply to Azure features that are in beta, preview, or otherwise not yet released into general availability.
В этой статье объясняется, как подключить HTTP-сервер Apache к Azure Sentinel.This article explains how to connect your Apache HTTP Server to Azure Sentinel. Соединитель HTTP-сервера Apache позволяет легко получать журналы HTTP-сервера Apache в Azure Sentinel, чтобы можно было просматривать данные в книгах, запрашивать их для создания пользовательских оповещений и внедрять их для улучшения расследования.The Apache HTTP Server connector allows you to easily ingest your Apache HTTP Server logs to Azure Sentinel, so that you can view the data in workbooks, query it to create custom alerts, and incorporate it to improve investigation. Интеграция между сервером Apache HTTP и Azure Sentinel использует локальную обработку файлов агентом Log Analytics.Integration between Apache HTTP Server and Azure Sentinel makes use of local file processing by the Log Analytics agent.
Примечание
Данные будут храниться в географическом расположении рабочей области, на которой вы используете метку Azure.Data will be stored in the geographic location of the workspace on which you are running Azure Sentinel.
Предварительные условияPrerequisites
- У вас должно быть разрешение на запись в рабочей области «Sentinel» Azure.You must have write permission on the Azure Sentinel workspace.
Настройка и интеграция журналов HTTP-сервера Apache с помощью агента Log AnalyticsConfigure and integrate Apache HTTP Server logs via Log Analytics agent
Настройте HTTP-сервер Apache для отправки файлов журнала в рабочую область Azure с помощью агента Log Analytics.Configure Apache HTTP Server to send log files to your Azure workspace via the Log Analytics agent.
Настройка агента Log Analytics для чтения файлов журнала HTTP-сервера Apache.Configure Log Analytics agent to read Apache HTTP Server log files.
Следуйте инструкциям по https://httpd.apache.org/docs/2.4/logs.html настройке расположения файлов журнала на сервере Apache HTTP.Follow instructions at https://httpd.apache.org/docs/2.4/logs.html to set up log files location in Apache HTTP Server.
В меню навигации меток Azure выберите соединители данных , а затем выберите http-сервер Apache (Предварительная версия).In the Azure Sentinel navigation menu, select Data connectors and then select Apache HTTP Server (Preview).
Выберите открыть страницу соединителя.Select Open connector page.
Следуйте инструкциям на странице HTTP-сервера Apache.Follow the instructions on the Apache HTTP Server page.
Поиск данныхFind your data
После установки успешного подключения данные отображаются в Log Analytics в разделе ApacheHTTPServer_CL.After a successful connection is established, the data appears in Log Analytics under ApacheHTTPServer_CL.
Проверка подключенияValidate connectivity
После того, как журналы начнут отображаться в Log Analytics, может пройти до 20 минут.It may take up to 20 minutes until your logs start to appear in Log Analytics.
Дальнейшие действияNext steps
В этом документе вы узнали, как подключить HTTP-сервер Apache к Azure Sentinel.In this document, you learned how to connect Apache HTTP Server to Azure Sentinel. Ознакомьтесь с дополнительными сведениями об Azure Sentinel в соответствующих статьях.To learn more about Azure Sentinel, see the following articles:
Главный файл настроек Apache. httpd.conf.
Для того, чтобы мы могли что-то сделать с веб-сервером Apache, потестировать его работу, что-то настроить, что-то изменить и.т.д. нам нужно обратиться к файлу его настроек.
Поэтому, давайте сейчас разберемся с таким вопросом, где в веб-сервере Apache находится файл настроек. Где мы можем что-то поменять, что-то настроить, посмотреть как настроен какой-то момент и.т.д.
Apache — это веб-сервер, который не имеет графического интерфейса. При его установке и запуске нам нечего переключать, негде покликать. У нас нет никаких графических элементов, с которыми мы могли бы повзаимодействовать.
Веб-сервер Apache управляется через командную строку или терминал операционной системы. А все настройки, которые мы можем устанавливать, хранятся в обычном текстовом файле, который называется httpd.conf.
Это самый главный настроечный файл в Apache (есть и другие настроечные файлы).
Самое главное, что нужно сейчас понять, что это обычный текстовый файл, который мы можем, соответственно, править в любом текстовом редакторе.
Где же найти этот файл?
Есть несколько вариантов, как это можно сделать.
Один из вариантов обратиться по этому адресу:
https://wiki.apache.org/httpd/DistrosDefaultLayout
Это страница, на которой приводятся различные операционные системы. В зависимости от того, какая у вас на компьютере операционная система, файл httpd.conf может находится в разных местах.
Можете перейти по ссылке, которая соответствует вашей операционной системе и посмотрите на путь, где находится файл httpd.conf.
Другой способ узнать положение файла httpd.conf — это воспользоваться вот такой командой, которую нужно ввести в командную строку в вашей операционной системе:
httpd -V
В результатах выполнения этой команды самым последним параметром вы можете увидеть положение файла httpd.conf.
Файл httpd.conf — это обычный текстовый файл и мы можем его открыть и редактировать в любом текстовом редакторе или консольном текстовом редакторе.
В этом файле довольно много настроек, но не пугайтесь, последовательно, с основными из них мы познакомимся.
И один важный момент.
Какие бы изменения вы не произвели в файле httpd.conf эти изменения будут вступать в силу только после перезагрузки сервера. Т.е. вы что-то поменяли в этом файле, эти изменения не будут работать до тех пор, пока вы не перезагрузите веб-сервер.
Имейте в виду этот момент.
Теперь, главная задача, которая стоит после этого урока, найти файл httpd.conf на вашем компьютере, открыть его и в дальнейшем мы с ним будем работать.
httpd — сервер протокола передачи гипертекста Apache
См. Также
httpd [- d serverroot ] [- f config ]
[- C директива ] [- c директива ] [- D параметр ]
[- e уровень ] [- E файл ]
[ -k start | restart | graceful | stop | graceful-stop]
[- ч ]
[- l ] [- L ] [- S ]
[- t ] [- v ] [- V ]
[- X ] [- M ] [- T ]
В системах Windows
доступны следующие дополнительные аргументы:
httpd [- к установить | config | удалить] [- n имя ]
[- w ]
-
-d serverroot
- Установите начальное значение для директивы
ServerRoot
на serverroot .Это может быть отменено ServerRoot
директива в файле конфигурации. По умолчанию / usr / local / apache2
. -
-f конфигурация
- Использует директивы из файла config при запуске. Если config не начинается с /, тогда он считается
путь относительно
ServerRoot
. По умолчанию конф. / Httpd.conf
. -
-k start | restart | graceful | stop | graceful-stop
- Сигналы
httpd
для запуска, перезапуска или остановки.См. Дополнительную информацию в разделе «Остановка Apache httpd». -
-C директива
- Обработать конфигурацию , директива перед чтением
конфигурационные файлы.
-
-c Директива
- Обработать конфигурацию , директива после чтения config
файлы.
-
-D параметр
- Устанавливает параметр конфигурации , который может использоваться с
разделов
в файлах конфигурации для условного пропуска или обработки команд
при запуске и перезапуске сервера.Также может использоваться для установки определенных
менее распространенные параметры запуска, включая -DNO_DETACH
(предотвратить разветвление родителя) и -DFOREGROUND
(запретить родителю вызывать setsid ()
и др.). -
-e уровень
- Устанавливает
LogLevel
на уровень при запуске сервера. Это полезно для
временно увеличивая подробность сообщений об ошибках, чтобы найти
проблемы при запуске. -
-E файл
- Отправлять сообщения об ошибках при запуске сервера в файл .
-
-h
- Вывести краткую сводку доступных параметров командной строки.
-
-l
- Вывести список модулей, скомпилированных на сервере. Это будет , а не список динамически загружаемых модулей, включенных с помощью
директива
LoadModule
. -
-L
- Вывести список директив, предоставляемых статическими модулями, вместе с ожидаемыми аргументами и
места, где действует директива. Директивы, предоставляемые общими модулями, не перечислены.
-
-М
- Дамп списка загруженных статических и общих модулей.
-
-S
- Показать настройки, проанализированные из файла конфигурации (в настоящее время только
показывает настройки виртуального хоста).
-
-T
(доступно в 2.3.8 и более поздних версиях) - Пропустить проверку корня документа при запуске / перезапуске.
-
-т
- Запускать синтаксические тесты только для файлов конфигурации. Программа
немедленно завершает работу после этих тестов синтаксического анализа с кодом возврата
0 (синтаксис ОК) или код возврата не равен 0 (синтаксическая ошибка).Если -D DUMP _ VHOSTS также установлен, детали виртуального хоста
конфигурация будет напечатана. Если -D СБРОС _ МОДУЛИ установлен, все загруженные модули будут напечатаны.
-
-v
- Распечатайте версию
httpd
и выйдите. -
-В
- Распечатайте версию и параметры сборки
httpd
и
затем выйдите. -
-X
- Запустите httpd в режиме отладки.Будет запущен только один рабочий, и
сервер не отключается от консоли.
Следующие аргументы доступны только на платформе Windows:
-
-k установить | config | удалить
- Установите Apache httpd как службу Windows NT; изменить параметры запуска для
служба Apache httpd; и удалите службу Apache httpd.
-
-н наименование
- Имя службы Apache httpd для передачи сигналов.
-
-w
- Не закрывайте окно консоли при ошибке, чтобы сообщение об ошибке могло
быть прочитанным.
Модули Apache httpd — Проект HTTP-сервера Apache
На следующей странице выделены некоторые модули, которые HTTP-сервер Apache
Поддержки проекта, которые не включены в основной дистрибутив. Для
подробный список сторонних модулей см.
modules.apache.org.
Неужели ваша CGI-производительность оставляет желать лучшего? Mod_perl просто слишком много
усилия для размещения ваших сценариев CGI? Вы хотите запустить PHP
приложения вне процессов вашего веб-сервера? FastCGI — это решение
для тебя!
mod_fcgid
— это реализация FastCGI для Apache HTTP Server 2.0 и
позже, который направляет запросы к процессам приложения FastCGI, которые он
управляет.
Когда HTTP-сервер Apache не является http: сервером? Когда он обслуживает то же самое
веб-контент через запрос протокола ftp:!
Этот код в настоящее время выпущен в виде бета-версии. Волонтеры особенно востребованы
для проверки функциональности IPv6 (поддержка EPRT и EPSV).
Устали синхронизировать записи DNS и конфигурационные IP-адреса и CNAME-адреса Apache?
Позвольте Apache обслуживать ваш DNS на основе вашего httpd.conf! Проверять mod_domain
.
Этот экспериментальный код имеет , а не , но он доступен вам.
из репозитория разработки Subversion.
Хотите создавать почтовые архивы с помощью Apache HTTPd 2.x? Проверять mod_mbox
.
Этот экспериментальный код имеет , а не , но он доступен вам.
из репозитория разработки Subversion. В настоящее время он используется
ASF для предоставления наших архивов электронной почты
браузер.
Хотите узнать, как Apache httpd-2.0 может обрабатывать различные протоколы?
Играйте с mod_pop3
.
Этот экспериментальный код имеет , а не , но он доступен вам.
из репозитория разработки Subversion.
Инструментальное устройство HTTP-сервера Apache для ARM4
API
Этот экспериментальный код имеет , а не , но он доступен вам.
из репозитория разработки Subversion.
Этот экспериментальный код имеет , а не , но он доступен вам.
из репозитория разработки Subversion.
Обслуживайте SMTP на Apache с помощью mod_smtpd
.
Песочница — это то место, где может играть невыпущенный код. Просмотрите вокруг для некоторых
полезности, не входящие в обычный дистрибутив HTTP-сервера Apache,
но может дать вам представление о способах расширения сервера. Кто-то может
активно работать над этими битами, но они могут полностью не поддерживаться!
Модуль mod_aspdotnet
удален проектом httpd. Каждый ASF
проект требует нескольких разработчиков, а в этом проекте не хватало
участвующие разработчики остаются под эгидой ASF.Развитие
был возобновлен первоначальными авторами в своем новом доме, mod-aspdotnet
Проект SourceForge. Примечание
НИКАКОЙ дополнительной поддержки или усилий по этому модулю со стороны httpd
по всем вопросам обращайтесь к пользователю проекта SourceForge и
списки развития.
Проект Quetzalcoatl mod_python
был удален на чердак. Примечание
НИКАКОЙ дополнительной поддержки или усилий по этому модулю со стороны httpd
см. дополнительную информацию на странице с информацией о чердаке ниже.Ты
может также пожелать исследовать mod_wsgi
, еще одну попытку за пределами ASF.
apache / httpd: зеркало HTTP-сервера Apache. Выпуски: http://issues.apache.org
HTTP-сервер Apache
Что это?
-----------
HTTP-сервер Apache - это мощный и гибкий, совместимый с HTTP / 1.1.
веб сервер. Первоначально разработан как замена NCSA HTTP
Server, он стал самым популярным веб-сервером на
Интернет.В рамках проекта Apache Software Foundation
разработчики стремятся совместно разрабатывать и поддерживать надежную,
коммерческий, стандартный сервер со свободно доступным
исходный код.
Последняя версия
------------------
Подробную информацию о последней версии можно найти в Apache HTTP.
страницу серверного проекта по адресу http://httpd.apache.org/.
Документация
-------------
Документация, доступная на дату выпуска этого выпуска:
включены в формате HTML в каталог docs / manual /.Большинство
актуальную документацию можно найти на
http://httpd.apache.org/docs/trunk/.
Монтаж
------------
См. Файл под названием INSTALL. Примечания к платформе могут быть
можно найти в README.platforms.
Лицензирование
---------
См. Файл LICENSE.
Уведомление о криптографическом программном обеспечении
-----------------------------
Этот дистрибутив может включать программное обеспечение, которое было разработано для использования
с криптографическим программным обеспечением. Страна, в которой вы в настоящее время проживаете
могут иметь ограничения на ввоз, владение, использование и / или реэкспорт
в другую страну, программного обеспечения для шифрования.ПЕРЕД использованием любого шифрования
программное обеспечение, пожалуйста, ознакомьтесь с законами, правилами и политиками вашей страны
относительно импорта, владения, использования и реэкспорта шифрования
программное обеспечение, чтобы узнать, разрешено ли это. См.
для дополнительной информации.
Министерство торговли США, Промышленное бюро и
Security (BIS) классифицировал это программное обеспечение как Export Commodity.
Контрольный номер (ECCN) 5D002.C.1, который включает информационную безопасность
программное обеспечение, использующее или выполняющее криптографические функции с асимметричным
алгоритмы.Форма и характер этого Apache Software Foundation
распространение дает право на экспорт в соответствии с Исключением из лицензии
Исключение для неограниченного программного обеспечения ENC Technology (TSU) (см. BIS
Правила экспортного контроля, раздел 740.13) для обоих объектов
код и исходный код.
Ниже приводится более подробная информация о включенных файлах, которые
может подпадать под экспортный контроль криптографического программного обеспечения:
Apache httpd 2.0 и более поздние версии включают модуль mod_ssl в
модули / ssl /
для настройки и прослушивания соединений через зашифрованный SSL
сетевые сокеты, выполняя вызовы универсального шифрования
библиотека, такая как OpenSSL или зависящая от платформы ОС
Возможности SSL.Кроме того, некоторые версии apr-util предоставляют абстрактный интерфейс.
для симметричных криптографических функций, которые используют
универсальная библиотека шифрования, такая как OpenSSL, NSS или
средства операционной системы, зависящие от платформы. Этот интерфейс
известный как интерфейс apr_crypto, с реализацией ниже
/ криптографический каталог. Интерфейс apr_crypto используется
модуль mod_session_crypto доступен в
модулей / сеанс
для дополнительного шифрования информации о сеансе.Некоторые дистрибутивы объектного кода Apache httpd, обозначенные
слово «крипто» в названии пакета может включать объектный код для
Библиотека шифрования OpenSSL, распространяемая в форме с открытым исходным кодом от
.
Вышеуказанные файлы являются необязательными и могут быть удалены, если криптографические
функциональность нежелательна или должна быть исключена из распространения.
Пакеты распространения Apache httpd, содержащие слово "nossl"
в названии пакета были созданы без вышеуказанных файлов и
поэтому это уведомление не распространяется.Контакты
--------
o Если вы хотите получать информацию о новых выпусках кода, исправлениях ошибок,
исправления безопасности, общие новости и информация о сервере Apache
подпишитесь на список рассылки apache-announce, как описано в разделе
o Если вам нужна бесплатная поддержка для запуска Apache, см.
ресурсы на
o Если у вас есть конкретный отчет об ошибке для Apache, см. инструкции
для сообщений об ошибках на
o Если вы хотите участвовать в активной разработке Apache, пожалуйста,
подпишитесь на список рассылки `dev@httpd.apache.org ', как описано на
Страница руководства: httpd — HTTP-сервер Apache
Страница руководства: httpd — HTTP-сервер Apache НАЗВАНИЕ
httpd - сервер протокола передачи гипертекста Apache
ОБЗОР
httpd [- X ] [- R libexecdir ] [- d serverroot ] [- f config
] [- C директива ] [- c директива ] [- D параметр ]
httpd [- h ] [- l ] [- L ] [- v ] [- V ] [- S ] [- t ] [- T
]
ОПИСАНИЕ
httpd - это протокол передачи гипертекста Apache (HTTP)
серверная программа.Он предназначен для работы в автономном режиме.
демон процесс. При таком использовании он создаст пул
дочерние процессы для обработки запросов. Чтобы остановить это, отправьте СРОК
сигнал исходному (родительскому) процессу. PID этого про-
cess записывается в файл, как указано в конфигурации
файл. В качестве альтернативы httpd может быть вызван через Интернет.
демон inetd (8) каждый раз при подключении к службе HTTP
сделан.
На этой странице руководства перечислены только аргументы командной строки.Для
подробности о директивах, необходимых для настройки httpd , см.
руководство по Apache, которое является частью дистрибутива Apache
или его можно найти на http://www.apache.org/. Пути в этом
Руководство может не отражать те, которые скомпилированы в httpd.
ОПЦИИ
- R libexecdir
Эта опция доступна, только если Apache был
построенный с включенным правилом SHARED _ CORE , которое
принудительно помещает основной код Apache в
файл динамического общего объекта (DSO).Этот файл
поиск по жестко заданному пути в ServerRoot
по умолчанию. Используйте эту опцию, если хотите
переопределить это.
- d serverroot
Установите начальное значение для директории ServerRoot.
tive на serverroot . Это может быть отменено
команда ServerRoot в конфигурации
файл. По умолчанию - / usr / local / apache .- f config Выполнить команды из файла config on
запускать. Если конфигурация не начинается с /, тогда
считается, что это путь относительно Сервера -
Корень. По умолчанию conf / httpd.conf .
- C директива
Обработайте конфигурацию , директиву перед чтением.
ing файлы конфигурации.
- c директива
Обработайте конфигурацию , директиву после чтения-
ing файлы конфигурации.- D параметр
Устанавливает параметр конфигурации , который можно использовать
с разделами ... в
файлы конфигурации, которые нужно условно пропустить или
команды процесса.
- h Вывести краткую сводку доступной командной строки
параметры.
- l Вывести список модулей, скомпилированных в
сервер.- L Вывести список директив вместе с
ожидаемые аргументы и места, где
тив действителен.
- S Показать настройки, проанализированные из файла конфигурации
(в настоящее время показывает только настройки виртуального хоста).
- t Запускать синтаксические тесты только для файлов конфигурации.
Программа немедленно завершает работу после этого синтаксиса
синтаксический анализ с кодом возврата 0 (синтаксис
ОК) или код возврата не равен 0 (Синтаксис
Ошибка).- T То же, что опция - t , но не проверяет конфигурацию
основные корни документов.
- X Запуск в однопроцессном режиме, для внутренней отладки-
только для целей ging; демон не отключается
с терминала или вилки какие-то дети. Не
используйте этот режим для предоставления обычной веб-службы.
- v Распечатайте версию httpd и выйдите.
- V Распечатать версию и параметры сборки httpd
, а затем выйдите. ФАЙЛОВ
/usr/local/apache/conf/httpd.conf
/usr/local/apache/conf/srm.conf
/usr/local/apache/conf/access.conf
/usr/local/apache/conf/mime.types
/ usr / местный / apache / conf / magic
/ usr / локальный / apache / журналы / error_log
/ usr / локальный / apache / журналы / access_log
/usr/local/apache/logs/httpd.pid
СМОТРИ ТАКЖЕ
инетд (8).
Как установить веб-сервер Apache на CentOS 7
Не используете CentOS 7?
Выберите другую версию или дистрибутив. CentOS 7 Введение
HTTP-сервер Apache — самый широко используемый веб-сервер в мире. Он предоставляет множество мощных функций, включая динамически загружаемые модули, надежную поддержку мультимедиа и обширную интеграцию с другим популярным программным обеспечением.
В этом руководстве вы установите веб-сервер Apache с виртуальными хостами на свой сервер CentOS 7.
Предварительные требования
Для выполнения этого руководства вам понадобится следующее:
Шаг 1. Установка Apache
Apache доступен в репозиториях программного обеспечения CentOS по умолчанию, что означает, что вы можете установить его с помощью диспетчера пакетов yum
.
Как пользователь sudo без полномочий root, настроенный в предварительных условиях, обновите локальный индекс пакета Apache httpd
, чтобы отразить последние изменения восходящего потока:
После обновления пакетов установите пакет Apache:
После подтверждения установки yum
установит Apache и все необходимые зависимости.
Если вы выполнили дополнительные рекомендуемые действия для новых серверов CentOS 7, упомянутые в разделе предварительных требований, у вас будет установлен firewalld
на вашем сервере, и вам нужно будет открыть порт 80
, чтобы Apache мог обслуживать запросы через HTTP. .Если вы еще этого не сделали, вы можете сделать это, включив службу http
firewalld
с помощью следующей команды:
- sudo firewall-cmd --permanent --add-service = 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
Вы увидите активный статус
, когда служба запущена:
Вывод
Перенаправление в / bin / systemctl status httpd.услуга
● httpd.service - HTTP-сервер Apache.
Загружено: загружено (/usr/lib/systemd/system/httpd.service; включено; предустановка поставщика: отключено)
Активен: активен (работает) с 20.02.2019 01:29:08 UTC; 5с назад
Документы: мужчина: httpd (8)
мужчина: apachectl (8)
Основной PID: 1290 (httpd)
Статус: «Обработка запросов ...»
CGroup: /system.slice/httpd.service
├─1290 / usr / sbin / httpd -DFOREGROUND
├─1291 / usr / sbin / httpd -DFOREGROUND
├─1292 / usr / sbin / httpd -DFOREGROUND
├─1293 / usr / sbin / httpd -DFOREGROUND
├─1294 / usr / sbin / httpd -DFOREGROUND
└─1295 / usr / sbin / httpd -DFOREGROUND
...
Как видно из этих выходных данных, служба, похоже, была запущена успешно. Однако лучший способ проверить это — запросить страницу у Apache.
Вы можете получить доступ к целевой странице Apache по умолчанию, чтобы убедиться, что программное обеспечение правильно работает через ваш IP-адрес. Если вы не знаете IP-адрес своего сервера, вы можете получить его несколькими способами из командной строки.
Введите в командной строке вашего сервера:
Эта команда отобразит все сетевые адреса хоста, поэтому вы получите несколько IP-адресов, разделенных пробелами.Вы можете попробовать каждый из них в своем веб-браузере, чтобы проверить, работают ли они.
В качестве альтернативы вы можете использовать curl
для запроса вашего IP-адреса с icanhazip.com
, который предоставит вам ваш общедоступный IPv4-адрес, видимый из другого места в Интернете:
Когда у вас есть IP-адрес вашего сервера, введите его в адресную строку браузера:
http: // ваш_сервер_ip
Вы увидите веб-страницу CentOS 7 Apache по умолчанию:
Эта страница указывает на то, что Apache работает правильно.Он также включает некоторую базовую информацию о важных файлах Apache и расположении каталогов. Теперь, когда служба установлена и запущена, вы можете использовать различные команды systemctl
для управления службой.
Шаг 3. Управление процессом Apache
Теперь, когда ваш веб-сервер настроен и работает, давайте рассмотрим некоторые основные команды управления.
Чтобы остановить ваш веб-сервер, введите:
- sudo systemctl остановить 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, см. Наше Введение в DigitalOcean DNS.
В Apache на CentOS 7 по умолчанию включен один серверный блок, настроенный для обслуживания документов из каталога / var / www / html
. Хотя это хорошо работает для одного сайта, это может стать громоздким, если вы размещаете несколько сайтов. Вместо изменения / var / www / html
вы создадите структуру каталогов в пределах / var / www
для примера .com
, оставив / var / www / html
в качестве каталога по умолчанию, который будет обслуживаться, если запрос клиента не соответствует другим сайтам.
Создайте каталог html
для example.com
следующим образом, используя флаг -p
для создания любых необходимых родительских каталогов:
- sudo mkdir -p /var/www/example.com/html
Создайте дополнительный каталог для хранения файлов журнала для сайта:
- sudo mkdir -p / var / www / example.com / log
Затем назначьте владельца каталога html
с помощью переменной среды $ USER
:
- sudo chown -R $ USER: $ USER /var/www/example.com/html
Убедитесь, что для вашего корневого веб-сайта установлены разрешения по умолчанию:
- sudo 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 и добавьте строку, объявляющую необязательный каталог для дополнительных файлов конфигурации:
- sudo vi / etc / httpd / conf / httpd.конф
Добавьте эту строку в конец файла:
IncludeOptional sites-enabled / *. Conf
Сохраните и закройте файл, когда закончите добавлять эту строку. Теперь, когда у вас есть каталоги виртуального хоста, вы создадите файл виртуального хоста.
Начните с создания нового файла в каталоге sites-available
:
- sudo vi /etc/httpd/sites-available/example.com.conf
Добавьте следующий блок конфигурации и измените пример .com
на ваше доменное имя:
/etc/httpd/sites-available/example.com.conf
ServerName 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 знал, как обслуживать их для посетителей. Для этого создайте символическую ссылку для каждого виртуального хоста в каталоге sites-enabled
:
- sudo ln -s /etc/httpd/sites-available/example.com.conf /etc/httpd/sites-enabled/example.com.conf
Теперь ваш виртуальный хост настроен и готов для обслуживания контента.Перед перезапуском службы Apache убедитесь, что SELinux имеет правильные политики для ваших виртуальных хостов.
Шаг 5. Настройка разрешений SELinux для виртуальных хостов (рекомендуется)
SELinux настроен для работы с конфигурацией Apache по умолчанию. Поскольку вы настроили собственный каталог журналов в файле конфигурации виртуальных хостов, вы получите сообщение об ошибке, если попытаетесь запустить службу Apache. Чтобы решить эту проблему, вам необходимо обновить политики SELinux, чтобы Apache мог записывать в необходимые файлы.SELinux обеспечивает повышенную безопасность вашей среды CentOS 7, поэтому полностью отключать модуль ядра не рекомендуется.
Существуют разные способы установки политик в зависимости от потребностей вашей среды, поскольку SELinux позволяет вам настраивать уровень безопасности. На этом шаге будут рассмотрены два метода настройки политик Apache: универсальный и для определенного каталога. Настройка политик для каталогов более безопасна и поэтому является рекомендуемым подходом.
Универсальная настройка политик Apache
При универсальной настройке политики Apache SELinux будет обрабатывать все процессы Apache одинаково, используя логическое значение httpd_unified
.Хотя этот подход более удобен, он не даст вам того же уровня контроля, что и подход, основанный на политике файлов или каталогов.
Выполните следующую команду, чтобы установить универсальную политику 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 -dZ /var/www/example.com/log/
Эта команда выводит список и выводит на печать контекст SELinux каталога. Вы увидите результат, подобный следующему:
Выход
drwxr-xr-x. корень root unlimited_u: object_r: httpd_sys_content_t: s0 /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
напечатает изменения контекста, выполненные командой. Вы увидите следующий вывод, подтверждающий изменения:
Выходные данные
restorecon reset /var/www/example.com/log context unlimited_u: object_r: httpd_sys_content_t: s0-> unlimited_u: object_r: httpd_log_t: s0
Вы можете еще раз перечислить контексты, чтобы увидеть изменения:
- sudo ls -dZ / var / www / example.com / log /
Выходные данные отражают обновленный тип контекста:
Выход
drwxr-xr-x. корень root unlimited_u: object_r: httpd_log_t: s0 /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
и requests.log
, указанные в конфигурации виртуального хоста:
Выход
-rw-r - r--.1 корень корень 0 26 февраля 22:54 error.log
-rw-r - r--. 1 корень root 0 26 февраля 22:54 requests.log
Теперь, когда у вас настроен виртуальный хост и обновлены разрешения SELinux, Apache будет обслуживать ваше доменное имя. Вы можете проверить это, перейдя на http://example.com
, где вы должны увидеть что-то вроде этого:
Это подтверждает, что ваш виртуальный хост успешно настроен и обслуживает контент. Повторите шаги 4 и 5, чтобы создать новые виртуальные хосты с разрешениями SELinux для дополнительных доменов.
Заключение
В этом руководстве вы установили веб-сервер Apache и управляли им. Теперь, когда у вас установлен веб-сервер, у вас есть много вариантов для типа контента, который вы можете обслуживать, и технологий, которые вы можете использовать для создания более богатого опыта.
Если вы хотите создать более полный стек приложений, вы можете прочитать в этой статье о том, как настроить стек LAMP в CentOS 7.
Страница не найдена | MIT
Перейти к содержанию ↓- Образование
- Исследовать
- Инновации
- Прием + помощь
- Студенческая жизнь
- Новости
- Выпускников
- О MIT
- Подробнее ↓
- Прием + помощь
- Студенческая жизнь
- Новости
- Выпускников
- О MIT
Меню ↓
Поиск Меню
Ой, похоже, мы не смогли найти то, что вы искали!
Попробуйте поискать что-нибудь еще!
Что вы ищете?
Увидеть больше результатов Предложения или отзывы?
Веб-сервер Apache HTTPD - Подробная информация и установка
Автор Jithin 23 декабря, 2016
Apache HTTPD - один из наиболее часто используемых веб-серверов в Интернете.HTTP-сервер Apache - это бесплатное программное обеспечение / веб-сервер с открытым исходным кодом для Unix-подобных систем и других операционных систем. Веб-сервер - это демон, который использует протокол http (s), текстовый протокол для отправки и получения объектов через сетевое соединение. Протокол http передается по сети в виде открытого текста, по умолчанию используется порт 80 / TCP (хотя могут использоваться и другие порты). Существует также версия протокола с шифрованием TLS / SSL, называемая https, которая по умолчанию использует порт 443 / TCP. Базовый http-обмен имеет клиентское соединение с сервером.Затем он запрашивает ресурс с помощью команды GET. Существуют и другие команды, такие как HEAD и POST, позволяющие клиентам запрашивать только метаданные для ресурса или отправлять серверу дополнительную информацию.
Apache имеет настраиваемые сообщения об ошибках, базы данных аутентификации на основе СУБД и согласование содержимого. Он также поддерживается несколькими графическими пользовательскими интерфейсами (GUI), которые позволяют более простую и интуитивно понятную настройку сервера. В процессе обмена http клиент начинает с запроса ресурса (команда GET), а затем выполняет некоторые дополнительные заголовки, сообщая серверу, какие типы кодирования он может принимать, какой язык он предпочитает и т. Д.Запрос заканчивается пустой строкой. Затем сервер отвечает кодом состояния, за которым следует список заголовков. Заголовок Content-Type является обязательным, сообщая клиенту, какой тип содержимого отправляется. После завершения заголовков сервер отправляет пустую строку, за которой следует запрошенный контент. Длина этого содержимого должна соответствовать длине, указанной в заголовке Content-Length.
В то время как протокол http поначалу кажется простым, реализация всего протокола вместе с мерами безопасности, поддержка клиентов, не полностью соблюдающих стандарт, и поддержка динамически генерируемых страниц - непростая задача.Вот почему большинство разработчиков приложений не пишут свои собственные веб-серверы, а вместо этого пишут свои приложения для запуска за веб-сервером, таким как Apache HTTPD, реализуя полностью настраиваемый и расширяемый веб-сервер с полной поддержкой HTTP. Функциональность httpd можно расширить с помощью модулей, небольших фрагментов кода, которые подключаются к основной структуре веб-сервера и расширяют ее функциональность. Зависимостью пакета http по умолчанию является пакет httpd-tools. Этот пакет включает инструменты для управления картами паролей и базами данных, инструменты для преобразования IP-адресов в файлах журнала в имена хостов, а также инструмент для эталонного тестирования и стресс-тестирования веб-серверов.
Установить службу Apache / httpd под Linux
1) Чтобы установить сервер Apache в Fedora / RHEL / Cent OS Linux, используйте следующую команду.
$ yum установить httpd
Чтобы запустить Apache / httpd, используйте приведенную ниже команду.
$ chkconfig httpd на
$ /etc/init.d/httpd start
2) Чтобы установить сервер apache в Red Hat Enterprise Linux, используйте следующую команду.
$ yum установить httpd
Чтобы запустить Apache / httpd, используйте приведенную ниже команду.
$ chkconfig httpd на
$ /etc/init.d/httpd start
3) Чтобы установить сервер Apache в Debian Linux, используйте следующую команду.
$ apt-get install apache2
$ /etc/init.d/apache2 start
Задача: Хранить файлы / загружать файлы для вашего веб-сайта
1) Вам необходимо загрузить файлы в / var / www / html в операционной системе RHEL / CentOS / Fedora Linux.
2) Вам необходимо загрузить файлы в / var / www / в операционной системе Debian или Ubuntu Linux.
Конфигурация сервера Apache
После установки группы пакетов веб-сервера или пакета http конфигурация по умолчанию записывается в /etc/httpd/conf/httpd.conf (RHEL / Cent OS / Fedora Core Linux) или /etc/apache2/httpd.conf ( Debian / Ubuntu Linux).