Веб-сервер apache: установка, настройка и способы защиты от атак
Содержание:
- Распаковка архива Apache
- Установите и настройте phpMyAdmin
- Настройка виртуальных хостов Apache?
- Причина медленной работы iPhone
- Обзор возможностей
- Рейтинг лучших электрошашлычниц 2020-2019
- История Apache
- Настройка
- What happens when you turn off Google Voice texts and voicemail in Hangouts
- календарь эфиров Finversia-TV »
- Советы по экономии
- Configuring Access to Network Resources
- Архитектура сервера
- Apache и другие веб-сервера
- Базовые концепции и структуры
Распаковка архива Apache
Открываем скаченный с веб-сервером архив и распаковываем (копируем) директорию «Apache24» в корень локального диска C:
Для базовой настройки веб-сервера Apache перейдем в директорию «C:\Apache24\conf\» и найдем файл «httpd.conf». Откроем данный файл в текстовом редакторе, просмотрим его и по необходимости внесем изменения. Большая часть файла состоит из комментарий и пояснений, начинающихся со знака # (решетка). В качестве текстового редактора могу посоветовать Notepad++.
Конфигурационный файл httpd.conf
httpd.conf — главный файл конфигурации веб-сервера Apache, содержащий директивы, управляющие работой веб-сервера.
Notepad++ — свободный текстовый процессор (текстовый редактор) с открытым исходным кодом для Windows с подсветкой синтаксиса большого количества языков программирования и разметки.
Изменим значения основных директив конфигурационного файла httpd.conf
ServerRoot "С:/Apache24"
каталог, в котором расположен веб-сервер
Listen 80
номер порта для веб-сервера
LoadModule rewrite_module modules/mod_rewrite.so
Для загрузки модуля mod_rewrite раскомментируем строку
AddDefaultCharset utf-8
значение кодировки по умолчанию
ServerAdmin admin@example.com
ServerName localhost:80
определяет имя и порт, который используется сервером для идентификации себя.
DocumentRoot "C:/Apache24/htdocs"
Назначаем корневую директорию управления сайтами
ErrorLog "logs/error.log"
расположение файла журнала ошибок.
LogLevel warn
уровень ошибок
CustomLog "logs/access.log" common
Установка сервиса (службы) Apache
Далее необходимо установить сервис Apache как службу. Для этого нам понадобится командная строка. Командная строка должна быть запущена от имени администратора.
Командная строка — позволяет вводить и выполнять команды операционной системы MS-DOS и другие компьютерные команды. Вводя команды, вы можете выполнять на компьютере различные задачи, не пользуясь мышью или сенсорным вводом.
Для того чтобы запустить командную строку необходимо нажать на кнопку «Пуск». В поле поиска введите «cmd» или «Командная строка», затем в списке результатов поиска наведите мышкой на найденный пункт («cmd» или «Командная строка»), щелкните по нему правой кнопкой мыши и выберите пункт «Запуск от имени администратора».
Перед нами появится окно консоли.
C:\Windows\system32>
Теперь необходимо перейти в директорию веб-сервера «bin» где находится файл «httpd.exe». Для этого используем команду «cd» и указываем полный путь до директории где находится файл «httpd.exe».
C:\Windows\system32>cd C:\Apache24\bin C:\Apache24\bin>
Для того, что бы установить сервис Apache как службу, необходимо выполнить команду
C:\Apache24\bin>httpd.exe -k install
При удачном выполнение установки получаем примерно такой ответ:
Installing the Apache2.4 service The Apache2.4 service is successfully installed. Testing httpd.conf.... Errors reported here must be corrected before the service can be started.
Перевод:
Установка службы Apache2.4
Служба Apache2.4 успешно установлен.
Тестирование httpd.conf ….
Ошибки, описанные здесь, должны быть исправлены и услуга может быть запущена.
Строка «The Apache2.4 service is successfully installed» означает, что служба установлена.
Если после строки «Errors reported here must be corrected before the service can be started» нет никаких сообщений, это означает, что в конфигурационных файлах не найдено критических ошибок и служба Apache24 запущена. Проверить ее работу можно открыв в браузере страницу localhost или страницу 127.0.0.1. Если страница по данным адресам открывается, то Вы добились желаемого, веб-сервер Apache установлен.
В случае, если после строки «Errors reported here must be …» присутствуют сообщения, то необходимо их исправить и перезапустить службу Apache. Обращаю Ваше на фразу «перезапустить», а не установить, ведь служба Apache24 уже установлена, просто она не может быть запущена, так как имеет ошибки в конфигурации.
Установите и настройте phpMyAdmin
На абсолютном большинстве недорогих виртуальных хостингов для редактирования баз данных предлагается именно phpMyAdmin
6.1. Загрузите архив с последней версией phpMyAdmin: phpMyAdmin-4.8.5-all-languages.zip. На всякий случай, проверьте на официальном сайте phpMyAdmin нет ли версии новее: phpmyadmin.net/downloads/.
Обратите внимание на то, что phpMyAdmin (или просто PMA) работает на чистом PHP, это не программа для Windows. Для работы PMA должен быть запущен Apache с модулем PHP
6.2. Распакуйте содержимое phpMyAdmin-4.8.5-all-languages (папка в архиве может быть вложена) в папку D:\web\www\pma.localhost, создайте отдельный виртуальный хост pma.localhost и не забудьте перезапустить Apache.
Конечно, PMA можно просто поместить в отдельную подпапку любого уже настроенного хоста, но экономить на хостах на своем собственном компьютере нет никакого смысла — а отдельный хост удобнее просто для порядка.
6.3. Откройте браузер и наберите адрес http://pma.localhost/ — вы должны увидеть окно phpMyAdmin для подключения к серверу MySQL. Введите логин root и пароль root — вы увидите графическое представление своих баз данных.
6.4. Опционально: в файле D:\web\www\pma.localhost\config.sample.inc.php найдите параметр , поставьте в одиночные кавычки строку из 32 произвольных символов, на основе которых будут сгенерированы куки–файлы и сохраните файл под именем D:\web\www\pma.localhost\config.inc.php.
Чтобы получить 32 символа на реальном сервере — можно упасть лицом на клавиатуру, а на локальной машине достаточно трижды набрать цифры от 0 до 9 и добавить 01: 01234567890123456789012345678901.
6.0. Обновить phpMyAdmin относительно легко. Переименуйте папку D:\web\www\pma.localhost в pma.localhost_old, распакуйте новую версию phpMyAdmin в папку pma.localhost, перенесите config.inc.php из папки pma.localhost_old в папку pma.localhost. Если всё работает — удалите pma.localhost_old.
Настройка виртуальных хостов Apache?
Я уже подробно рассматривал как настроить Apache в отдельной статье. Поэтому не буду полностью расписывать здесь все конфигурационные файлы. Остановимся на файлах виртуальных хостов. Для удобства они вынесены в отдельные папки:
- /etc/apache2/sites-available
- /etc/apache2/sites-enabled
Ясно, что это разделение очень условно. Вы можете его убрать и добавлять свои виртуальные хосты прямо в основной конфигурационный файл. Все файлы из этих папок подключаются к нему с помощью директив Include. Но ведь так намного удобнее. В папке sites-available находятся все конфигурационные файлы, но они пока еще не активированы и отсюда не импортируются никуда. При активации нужного хоста на него просто создается ссылка в папку /etc/apache2/sites-enabled.
Для примера, создадим новый конфигурационный файл для виртуального хоста site1.ru. Для этого просто скопируем существующую конфигурацию для хоста по умолчанию — 000-default:
Сначала рассмотрим синтаксис того, что вы увидите в этом файле:
<VirtualHost адрес_хоста_для прослушивания:порт>ServerName доменServerAlias псевдоним_доменаServerAdmin емейл@администратораDocumentRoot /путь/к/файлам/сайтаErrorLog /куда/сохранять/логи/ошибок/error.logCustomLog /куда/сохранять/логи/доступа/access.log combined</VirtualHost>
Это минимальная конфигурация, которую вам нужно указать, чтобы создать виртуальный хост Apache. Конечно, здесь вы можете использовать и другие директивы Apache, такие как Deny, Allow и многие другие. А теперь рассмотрим наш пример для тестового сайта site1.ru:
Здесь мы используем звездочку вместо ip адреса, это значит, что веб-сервер будет слушать соединения на всех адресах, как на внешнем, так и на localhost. Порт 80, это порт по умолчанию. Затем указываем домен, электронный адрес администратора, и путь к папке, в которой будут находиться данные сайта. Две строчки Log говорят куда сохранять логи, но добавлять их необязательно. Дальше, нам нужно активировать этот хост. Мы можем вручную создать ссылку или использовать уже заготовленную команду:
Затем перезапустите Apache:
И нам осталось все это протестировать. Если ваш сервер имен еще не направляет запросы к домену на ваш ip, а вы хотите уже проверить как все работает, можно пойти обходным путем. Для этого достаточно внести изменения в файл /etc/hosts на машине, с которой вы собрались открывать сайт. Этот файл, такой себе локальный DNS. Если компьютер находит ip для домена в нем, то запрос в интернет уже не отправляется. Если вы собираетесь тестировать с той же машины, на которую установлен Apache2, добавьте:
Если же это будет другой компьютер, то вместо 127.0.0.1 нужно использовать адрес вашего сервера, на котором установлен Apache. Затем можете открыть сайт в браузере:
Причина медленной работы iPhone
Обзор возможностей
Apache поддерживает множество функций, многие из которых реализованы в виде скомпилированных модулей, расширяющих основные функции. Они могут варьироваться от схем аутентификации до поддержки серверных языков программирования, таких как Perl , Python , Tcl и PHP . Популярные модули аутентификации включают mod_access, mod_auth, mod_digest и mod_auth_digest, преемника mod_digest. Примеры других функций включают поддержку Secure Sockets Layer и Transport Layer Security ( mod_ssl ), модуль прокси ( mod_proxy ), модуль перезаписи URL (mod_rewrite), пользовательские файлы журналов (mod_log_config) и поддержку фильтрации (mod_include и mod_ext_filter).
Популярные методы сжатия в Apache включают внешний модуль расширения, mod_gzip, реализованный для уменьшения размера (веса) веб-страниц, обслуживаемых через HTTP . ModSecurity — это механизм обнаружения и предотвращения вторжений с открытым исходным кодом для веб-приложений. Журналы Apache можно анализировать через веб-браузер с помощью бесплатных скриптов, таких как AWStats / W3Perl или Visitors.
Виртуальный хостинг позволяет одной установке Apache обслуживать множество разных веб-сайтов . Например, один компьютер с одним установка Apache может одновременно обслуживать , , и т.д.
Apache особенности конфигурируемые сообщения об ошибках, СУБД -На базы данных аутентификации, согласование содержания и поддерживает несколько графических пользовательских интерфейсов (GUI).
Он поддерживает аутентификацию по паролю и аутентификацию с цифровым сертификатом . Поскольку исходный код находится в свободном доступе, любой может адаптировать сервер под конкретные нужды, а также существует большая публичная библиотека надстроек Apache.
Более подробный список возможностей представлен ниже:
- Загружаемые динамические модули
- Несколько режимов обработки запросов (MPM), включая Event-based / Async , Threaded и Prefork.
- Высокая масштабируемость (легко обрабатывает более 10 000 одновременных подключений )
- Обработка статических файлов, индексных файлов, автоиндексирование и согласование содержимого
- .htaccess поддержка конфигурации для каждого каталога
-
Обратный прокси с кешированием
- Балансировка нагрузки с внутренними проверками работоспособности
- Множественные механизмы балансировки нагрузки
- Отказоустойчивость и отказоустойчивость с автоматическим восстановлением
- Поддержка WebSocket , FastCGI , SCGI , AJP и uWSGI с кешированием
- Динамическая конфигурация
- TLS / SSL с поддержкой сшивания SNI и OCSP через OpenSSL или wolfSSL .
- Виртуальные серверы на основе имени и IP-адреса
- IPv6- совместимый
- Поддержка HTTP / 2
- Детальная проверка подлинности и контроль доступа авторизации
- сжатие и распаковка gzip
- Перезапись URL
- Перезапись заголовков и контента
- Пользовательское ведение журнала с ротацией
- Ограничение одновременных подключений
- Ограничение скорости обработки запросов
- Регулирование полосы пропускания
- Серверная сторона включает
- Геолокация на основе IP-адреса
- Отслеживание пользователей и сеансов
- WebDAV
- Встроенные сценарии Perl , PHP и Lua
- Поддержка CGI
- веб-страницы для каждого пользователя
- Анализатор универсальных выражений
- Просмотр статуса в реальном времени
- Поддержка XML
- Поддержка FTP (отдельным модулем)
Рейтинг лучших электрошашлычниц 2020-2019
История Apache
Apache ведет свою историю от веб-сервера NCSA httpd, написанного в свое время Rob McCool. NCSA в свою очередь был развитием CERN httpd. CERN имел более широкий функционал, в то время как NCSA был менее масштабен и более легок. NCSA появился после CERN в тот момент, когда возникла потребность в небольшом и быстром веб-сервере. Позднее к проекту подключились другие авторы, которые стали накладывать свои патчи.
В 1995 году Brian Behlendorf объединил эти патчи и создал список рассылки, на основе которого сформировалась группа разработчиков, выпустивших первую версию Apache.
Имя Apache — это сокращенное «a patchy server».
Первая версия имела номер 0.6.2. Один из участников — Robert Thau — разработал новую серверную архитектуру, которая появилась в версии 0.8.8. В декабре 1995 года вышел релиз Apache 1.0. Популярность к Apache пришла через год. В следующие годы группа разработчиков расширялась, и Apache был портирован на различные операционные системы.
В 1998 году появилась версия 1.3. В 1999 году была создана некоммерческая организация Apache Software Foundation.
В марте 2000 года состоялась первая конференция для разработчиков под названием ApacheCon. На ней была представлена версия Apache 2.0. В ней была переработана предыдущая серверная архитектура. Это дало широкие возможности для написания разнообразных модулей.
Не далее как 22 сентября 2010 года был зафиксирован 1-миллионный коммит.
Юбилейное изменение в репозитории было сделано Йоником Силеем (Yonik Seelay), разработчиком проекта Apache Lucene. Всего сейчас в сообществе Apache более 300 индивидуальных участников и 2300 коммитеров.
На сегодняшний день мирно сосуществуют 2 ветки Apache — 1.3 и 2.0. Обе версии на сегодняшний день поддерживаются. Они широко представлены и занимают половину серверного рынка в мире. Основной причиной успеха Apache является широкий спектр его функциональных возможностей. Apache может обслуживать одновременно большое количество клиентов. Он легко настраивается с помощью текстовых конфигурационных файлов и может быть на ходу переконфигурирован. Для разработки модулей имеется хорошо документированное API. Использование скриптовых языков позволяет использовать Apache в связке с базами данных и серверами приложений. Обе версии поддерживают протокол HTTP 1.1.
Настройка
Для применения изменений в настройках необходимо перезапустить демон Apache:
sudo service apache2 restart
/etc/apache2/ |-- apache2.conf | `-- ports.conf |-- mods-enabled | |-- *.load | `-- *.conf |-- conf-enabled | `-- *.conf `-- sites-enabled `-- *.conf
Настройки модулей расположены в директории /etc/apache2/mods-available. Для подключения или отключения модулей (настроек модулей) следует использовать соответствующие команды или . Пример подключения модуля:
sudo a2enmod <mod-name>
Свои настройки следует сохранять в файлы, расположенные в директории /etc/apache2/conf-available. Для подключения или отключения своих настроек следует использовать соответствующие команды или . Пример подключения файла со своими настройками:
sudo a2enconf <config-name>
Настройки виртуальных хостов следует сохранять в файлы, расположенные в директории /etc/apache2/sites-available. Для подключения виртуальных хостов следует использовать соответствующие команды или . Пример подключения виртуального хоста:
sudo a2ensite <site-name>
Кодировка по умолчанию
Для указания кодировки по умолчанию следует использовать директиву в файле /etc/apache2/conf-available/charset.conf (или раскомментировать соответствующую строку):
AddDefaultCharset UTF-8
Виртуальные хосты
Файлы настроек виртуальных хостов хранятся в /etc/apache2/sites-available/*.conf. По умолчанию в Apache уже настроен один виртуальный хост. Его настройки лежат в файле 000-default.conf. Вы можете использовать этот виртуальный хост в качестве примера.
Пример настройки виртуального хоста:
<VirtualHost *:80> #Имя хоста ServerName host1.server1 #Корневая папка хоста DocumentRoot /var/www/host1.server1 <Directory /var/www/host1.server1> #Разрешение на перезапись всех директив при помощи .htaccess AllowOverride All </Directory> </VirtualHost>
Назовите файл настройки именем вашего хоста host1.server1.conf и сохраните.
После создания файла настроек допишите в /etc/hosts имя вашего хоста:
127.0.0.1 host1.server1
Для включения созданного виртуального хоста используется утилита :
sudo a2ensite host1.server1
Отключается хост аналогично утилитой :
sudo a2dissite host1.server1
mod_userdir
Модуль позволяет использовать директории, находящиеся в домашних директориях пользователей для хранения веб страниц. По умолчанию Apache ищет запрашиваемые страницы в директории ~/public_html
mkdir ~public_html
Чтобы включить , выполните:
sudo a2enmod userdir
и добавьте необходимого пользователя в группу www-data:
sudo adduser $USER www-data
после чего перезагрузите Apache:
sudo service apache2 restart
Страницы будут доступны по адресу http://localhost/~username, где username — имя пользователя.
CGI
Если Вы хотите запускать на сервере cgi-скрипты, подключите модуль командой
sudo a2enmod cgi
По умолчанию cgi-скрипты размещаются в директории /usr/lib/cgi-bin, но вы можете разместить их где угодно,
указав это в настройках своего виртуального хоста, либо глобально для всех хостов в файле
/etc/apache2/conf-enabled/serve-cgi-bin.conf.
Eсли ваш сервер работает во внешней сети, то в целях безопасности настоятельно рекомендуется размещать cgi-скрипты вне корневой директории виртуального хоста
What happens when you turn off Google Voice texts and voicemail in Hangouts
календарь эфиров Finversia-TV »
Советы по экономии
Configuring Access to Network Resources
Access to files over the network can be specified using two
mechanisms provided by Windows:
- Mapped drive letters
- e.g.,
- UNC paths
- e.g.,
Mapped drive letters allow the administrator to maintain the
mapping to a specific machine and path outside of the Apache httpd
configuration. However, these mappings are associated only with
interactive sessions and are not directly available to Apache httpd
when it is started as a service. Use only UNC paths for
network resources in httpd.conf so that the resources can
be accessed consistently regardless of how Apache httpd is started.
(Arcane and error prone procedures may work around the restriction
on mapped drive letters, but this is not recommended.)
Архитектура сервера
Модульный сервер «Апач» состоит из основного раздела и различных модулей, предоставляющих большую часть базовых функций. Некоторые из этих модулей:
- mod_ssl — безопасная связь через TLS;
- mod_rewrite — перезапись адреса, обычно используется для преобразования динамических страниц, таких как php, в статические, чтобы обмануть поисковые системы относительно того, где они были разработаны;
- mod_dav — поддержка протокола WebDAV (RFC 2518) ;
- mod_deflate — алгоритм сжатия прозрачен, когда содержимое отправляется клиенту;
- mod_auth_ldap — позволяет пользователям проходить аутентификацию на сервере LDAP;
- mod_proxy_ajp — соединитель для связи с Jakarta Tomcat динамических страниц в Java (сервлеты и JSP).
Базовый сервер может быть расширен за счет включения внешних модулей, среди которых:
- mod_cband — управление трафиком и ограничение полосы пропускания;
- mod_perl — динамические в Perl;
- mod_php — динамические в PHP;
- mod_python — динамические в Python;
- mod_rexx — динамические в REXX и объект REXX;
- mod_ruby — динамические в Ruby;
- mod asp dot net — динамические в Microsoft.NET;
- mod_mono — динамические в моно;
- mod_security — фильтрация на уровне приложения для безопасности.
Apache и другие веб-сервера
Кроме Apache существует ещё довольно много веб-серверов. Каждое приложение веб-сервера создавалось для различных целей. Не смотря на то, что Apache является самый широко используемым, для него есть несколько альтернатив и конкурентов.
Apache или NGINX
Nginx произносится как Engine-X, это более новое веб-серверное программное обеспечение с первым релизом в 2004 году. Как на сегодня он добился большой популярности среди владельцев сайтов. Nginx был создан для решения так называемой проблемы c10k – проблемы 10 тысяч соединений, что означает, что веб-сервера, использующие потоки не могут обрабатывать запросы пользователей более, чем с 10 000 подключений одновременно.
- Так как Apache использует структуру основанную на потоках, владельцы сайтов с высоким трафиком могли столкнуться с проблемой производительности. Nginx один из веб-серверов, который был нацелен на решение проблемы c10k и возможно это одно из самых успешных решений.
- Nginx имеет событийно ориентированную архитектуру, которая не создаёт новый процесс для каждого запроса. Вместо этого он обрабатывает каждый входящий запрос в едином потоке. Этот главный процесс управляет несколькими рабочими процессами, которые выполняют непосредственную обработку запросов. Модель Nginx, основанная на событиях распространяет запросы пользователей среди рабочих процессов эффективным путём, что приводит к лучшей масштабируемости.
- Если вам нужно обслуживание сайта с высокой посещаемостью, то Nginx – отличный выбор, поскольку он может сделать это, затратив минимальные ресурсы. И не случайно он используется сайтами с большим количеством показов, такими как: Netflix, Hulu, Pinterest и Airbnb.
- Однако для мелких и средних игроков, Apache имеет несколько преимуществ в сравнении с Nginx, среди которых: более простая настройка, множество модулей и среда дружественная для начинающих.
Apache или Tomcat
Tomcat – это веб-сервер также разработанных Apache Software Foundation, поэтому его официальное название Apache Tomcat. Это тоже HTTP-сервер, однако он обрабатывает приложения Java вместо статических сайтов. Tomcat может запускать несколько Java спецификаций, таких как: Java Servlet, Java Server Pages (JSP), Java EL и WebSocket.
- Tomcat был разработан специально для приложений на Java, в то время как Apache позиционируется как HTTP-сервер. Вы можете использовать Apache совместно с другими языками программирования (PHP, Python, Perl и т.д.) с помощью специального модуля Apache (mod_php, mod_python, mod_perl и др.).
- Хотя вы и можете использовать сервер Tomcat для статических веб-страниц, но это будет менее эффективно, чем использование Apache. Например, Tomcat заранее загружает виртуальную машину Java и другие Java-библиотеки, которые могут быть ненужными для работы вашего сайта.
- Tomcat также хуже настраиваемых в сравнении с другими веб-серверами. Например, для запуска WordPress, лучшим выбором будет стандартный HTTP-сервер, такой как Apache или NGINX.
Базовые концепции и структуры
В архитектуре Apache можно выделить следующие базовые объекты:
- Сервер.
- Коннект.
- Запрос.
- Процесс.
Каждый из этих объектов представлен соответствующей структурой в заголовочном файле httpd.h.
Помимо этих 4-х основных объектов в архитектуре Apache нужно отметить еще два объекта.
Первый объект — это пулы. Управлением ресурсов в Apache занимаются пулы — APR pools (apr_pool_t). Любой ресурс, выделяемый динамически, если он привязан к пулу, будет удален автоматически после использования. Пул привязывает ресурсы к жизненному циклу основных объектов, о которых мы сказали выше. Второй объект — это конфигурационный массив ap_conf_vector_t, причем каждому модулю в нем отводится свое место.
Массив хранит как глобальные конфигурационные данные, так и локальные.
В переводе на язык си основные четыре объекта представлены структурами:
request_rec server_rec conn_rec process_rec
Более всего используются первые две. Каждый раз, когда на сервер приходит клиентский запрос, создается объект структуры request_rec, который передается в качестве параметра в любой обработчик, занятый обработкой запроса. Структура содержит не только стандартную информацию о HTTP-запросе, но и внутреннюю служебную информацию: пул запросов, массив глобальных и массив локальных конфигурационных записей, таблицы HTTP-заголовков, таблицу переменных окружения, указатели на сервер, коннект, фильтры, URL и его трансляцию, и т. д. Определение находится в httpd.h:
struct request_rec { apr_pool_t *pool; conn_rec *connection; server_rec *server; request_rec *next; request_rec *prev; request_rec *main; ... };
Структура server_rec представляет веб-сервер. Для каждого виртуального хоста имеется свой собственный экземпляр server_rec. Этот объект живет на протяжении всей жизни сервера. Ресурсы он берет из пула процессов. После структуры request_rec это вторая наиболее важная структура в Apache:
struct server_rec { process_rec *process; server_rec *next; const char *defn_name; char *server_admin; char *server_hostname; apr_port_t port; ... };
Структура conn_rec представляет TCP-коннект, создается при открытии коннекта и удаляется при его закрытии. Один коннект может породить несколько запросов. Запрос — это производный объект от коннекта:
struct conn_rec { apr_pool_t *pool; server_rec *base_server; void *vhost_lookup_data; apr_sockaddr_t *local_addr; apr_sockaddr_t *remote_addr; ... };
Структура process_rec имеет более непосредственное отношение к операционной системе, нежели к архитектуре самого сервера. Пул процессов можно получить через нее посредством
server_rec -> process_rec -> pool.
Другие структуры Apache разнесены по разным хидерам, из которых можно выделить следующие группы:
- ap_ — хидеры с таким префиксом генерируют низко-уровневое API и напрямую, как правило, не используются.
- http_ — в этих хидерах находится API, представляющее наибольший интерес для разработчиков.
- util_ — эти хидеры аналогичны первой группе.
- mod_ — здесь находятся определения для модулей.
- apr_ — APR API.
Для разработчиков наибольший интерес представляют следующие заголовки:
http_config.h http_connection.h http_core.h http_log.h http_main.h http_protocol.h http_request.h http_vhost.h httpd.h util_filter.h ap_provider.h mod_dbd.h util_ldap.h util_script.h