Структуры данных Apache. server_rec
В предыдущей статье мы рассмотрели структуру request_rec - важнейшую структуру сервера Apache, предназначеную для хранения всех данных поступившего запроса. Одним из полей request_rec было поле server_rec *server, которое содержит структуру сервера, на который поступил запрос. Сегодня эту структуру мы и рассмотрим. В основном она доступна через указатель на request_rec (r->server), но иногда передается непосредственно, например, в обработчик хука post_config - post_config_handler(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s).
(далее…)
Опубликовано в: Архитектура Июнь 21, 2006
Структуры данных Apache. request_rec
Самой важной структурой данных в сервере Apache является request_rec. Она содержит все данные запроса, а также данные текущего соединения и конфигурацию сервера, на который пришел запрос.
Структура request_rec, которую мы рассмотрим, взята из исходников сервера Apache 2.2.2. request_rec, используемая в других версиях Apache 2, несколько отличается от этой, но большинство полей остались те же.
(далее…)
Опубликовано в: Архитектура Июнь 10, 2006
The Apache Modeling Project. Введение
Данный документ посвящен HTTP серверу Apache. Он содержит и краткий обзор сервера, и детали внутренней реализации. Документ является результатом работы аспирантов и студентов исследовательского проекта Apache Modeling Project института Hasso-Plattner в 2001, 2002 и 2003 годах. HTTP сервер Apache использовался для знакомства студентов с приложениями, смоделированными в соответствии с FMC - методе моделирования, предназначенного для переноса информации о сложных системах в аналитическое пространство.
После введения в основы HTTP серверов мы сфокусируемся на протоколах и веб-технологиях. Затем мы обсудим Apache, его рабочее окружение, а также его возможности расширения - API модулей. В завершение мы рассмотрим исходный код Apache и объясним наиболее важные его части.
(далее…)
Опубликовано в: Архитектура Март 12, 2006
The Apache Modeling Project. Глава 1
Предыдущая статья: The Apache Modeling Project. Введение

1 Введение

1.1 О документе

Данный документ предназначен для всех, кто интересуется техническими аспектами HTTP серверов и в особенности сервера Apache. Документ почти не содержит информации об использовании и администрировании Apache - данные вопросы хорошо освещены в других источниках. Мы же попытаемся дать Вам не только хороший обзор сервера, но и детальное описание его устройства, необходимое для понимания того, как работает сервер Apache.
(далее…)
Опубликовано в: Архитектура
The Apache Modeling Project. Глава 2 (Часть 1)
Предыдущая статья: The Apache Modeling Project. Глава 1

2 HTTP серверы

2.1 Введение

Если Вы хотите изучить работу программного продукта, то неплохо бы узнать то, для чего он собственно нужен. Так для сервера необходимо знать о клиентах, ресурсах и протоколах. А так как сервер является только частью системы, то необходимо изучить также и всю систему целиком.
Поэтому сперва мы рассмотрим HTTP сервера и протоколы, такие как HTTP и TCP/IP. Также мы поговорим о динамическом контенте и веб-приложениях.
(далее…)
Опубликовано в: Архитектура
The Apache Modeling Project. Глава 2 (Часть 2)

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

Виртуальные хосты - это концепция, позволяющая нескольким логическим веб-серверам располагаться на одном физическом сервере (даже с одним IP адресом). Вот несколько реализаций этой концепции:
  1. Физический сервер связан с множеством IP адресов, и каждый IP адрес используется одним логическим сервером.
  2. Физический сервер связан с одним IP адресом, а логические серверы используют разные порты. В URL это выглядит так: http://www.xyz.com:81/.
  3. Физический сервер связан с одним IP адресом. Несколько доменных имен связываются с этим IP адресом. Все логические веб-сервера прослушивают один единственный порт. Сервер различает запросы, используя поле HOST, которое является обязательным в HTTP запросах в HTTP версии 1.1.
(далее…)
Опубликовано в: Архитектура
The Apache Modeling Project. Глава 3 (Часть 1)

3 HTTP сервер Apache

3.1 Обзор

3.1.1 История

Начало

Apache является потомком веб-сервера NCSA, спроектированного и разработанного Робом Маккулом (Rob McCool). На рынке серверов NCSA позиционировался как сервер для сложных и высокопроизводительных серверных комплексов. Множество же людей хотели простой и компактный сервер, который подходил бы для небольшого веб-сайта. Тем не менее, Роб Маккул не смог продолжать свою работу над сервером NCSA. Он покинул проект и прекратил работу над сервером. Однако, на тот момент сервер NCSA использовали уже множество людей. Как и в случае с другими программами, пользователи изменяли сервер под свои нужды, а также исправляли найденные ошибки. В 1995 году Брайн Бехлендорф (Brian Behlendorf) начал собирать все эти изменения и дополнения и основал рассылку, которая предназначалась для обмена этими дополнениями. Группа из 8 человек, которые составили костяк сообщества этой рассылки, выпустили первую версию сервера Apache. По своей природе, как состоящий из “патчей” и расширений сервера NCSA, свое имя Apache получил от выражения “пропатченный сервер” (”a patchy server”).
(далее…)
Опубликовано в: Архитектура
The Apache Modeling Project. Глава 3 (Часть 2)

3.3.4 Фильтры Apache 2

Фильтры в Apache 2 - это обработчики, которые могут модифицировать данные запросов и ответов. Они обладают простым интерфейсом и являются взаимозаменяемыми.
(далее…)
Опубликовано в: Архитектура
The Apache Modeling Project. Глава 4 (Часть 1)

4 Внутри сервера Apache

4.1 Введение

Данная глава целиком посвящена внутренней реализации сервера Apache. Вам следует ее прочитать, если:
  • Вам интересна внутренняя структура сетевого сервера;
  • Вы намереваетесь работать или модифицировать Apache.
Некоторые разделы содержат описание исходного кода сервера. В течение первого года проекта мы исследовали Apache версии 1.3.17 и сравнивали полученные результаты с Apache 2.0, исследованного во втором году.
(далее…)
Опубликовано в: Архитектура Март 5, 2006
The Apache Modeling Project. Глава 4 (Часть 2)

Главный цикл сервера

Обзор поведения. В этом цикле главной задачей главного сервера является управление числом простаивающих дочерних серверов, а также завершение дочерних серверов, которые остались после ‘мягкой’ перезагрузки.
(далее…)
Опубликовано в: Архитектура
Следующая страница »

© apachedev.ru, 2005-2011