Apache HTTP Server

Поделись знанием:
Перейти к: навигация, поиск
Apache HTTP Server
Тип

Веб-сервер

Разработчик

Apache Software Foundation

Написана на

C[1]

Операционная система

Кроссплатформенное программное обеспечение

Языки интерфейса

Английский

Последняя версия

2.4.23 [2] (4 июля 2016)

Лицензия

Apache Software License;
отдельные части — GNU GPL

Сайт

[httpd.apache.org/ httpd.apache.org]

К:Википедия:Статьи без изображений (тип: не указан)

Apache HTTP-сервер (произносится /ə.ˈpæ.ʧi/, назван именем группы племён североамериканских индейцев апачей; кроме того, является сокращением от англ. a patchy server; среди русских пользователей общепринято искажённое апа́ч) — свободный веб-сервер.

Apache является кроссплатформенным ПО, поддерживает операционные системы Linux, BSD, Mac OS, Microsoft Windows, Novell NetWare, BeOS.

Основными достоинствами Apache считаются надёжность и гибкость конфигурации. Он позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д. Поддерживает IPv6.





История

Сервер был написан в начале 1995 года и считается, что его имя восходит к шуточному названию «a patchy» (с англ. — «заплаточка»), так как он устранял ошибки популярного тогда сервера Всемирной паутины NCSA HTTPd 1.3. В дальнейшем, с версии 2.х, сервер был переписан заново и теперь не содержит кода NCSA. На данный момент разработка ведётся в ветке 2.2, а в версиях 1.3 и 2.0 производятся лишь исправления ошибок безопасности. На текущий момент последняя версия ветки 2.4 — 2.4.23 (4 июля 2016) , для первой версии это 1.3.42.

Веб-сервер Apache разрабатывается и поддерживается открытым сообществом разработчиков под эгидой Apache Software Foundation и включён во многие программные продукты, среди которых СУБД Oracle и IBM WebSphere.

С апреля 1996 и до настоящего времени является самым популярным HTTP-сервером в Интернете. Статистика Netcraft показывает следующие данные об использовании Apache:

Архитектура

Ядро

Ядро Apache включает в себя основные функциональные возможности, такие как обработка конфигурационных файлов, протокол HTTP и система загрузки модулей. Ядро (в отличие от модулей) полностью разрабатывается Apache Software Foundation, без участия сторонних программистов.

Теоретически, ядро apache может функционировать в чистом виде, без использования модулей. Однако, функциональность такого решения крайне ограничена.

Ядро Apache полностью написано на языке программирования C.

Система конфигурации

Система конфигурации Apache основана на текстовых конфигурационных файлах. Имеет три условных уровня конфигурации:

  • Конфигурация сервера (httpd.conf).
  • Конфигурация виртуального хоста (httpd.conf c версии 2.2, extra/httpd-vhosts.conf).
  • Конфигурация уровня директории (.htaccess).

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

Часть модулей использует в своей работе конфигурационные файлы операционной системы (например /etc/passwd и /etc/hosts).

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

Мультипроцессорные модели (MPM)

Для веб-сервера Apache существует множество моделей симметричной мультипроцессорности. Вот основные из них:

Название Разработчик Поддерживаемые OS Описание Назначение Статус
[httpd.apache.org/docs/2.0/mod/worker.html worker] Apache Software Foundation Linux, FreeBSD Гибридная мультипроцессорно-мультипоточная модель. Сохраняя стабильность мультипроцессорных решений, она позволяет обслуживать большое число клиентов с минимальным использованием ресурсов. Среднезагруженные веб-серверы. Стабильный.
[httpd.apache.org/docs/2.0/mod/prefork.html pre-fork] Apache Software Foundation Linux, FreeBSD MPM, основанная на предварительном создании отдельных процессов, не использующая механизм threads. Большая безопасность и стабильность за счёт изоляции процессов друг от друга, сохранение совместимости со старыми библиотеками, не поддерживающими threads. Стабильный.
[httpd.apache.org/docs/2.0/mod/perchild.html perchild] Apache Software Foundation Linux Гибридная модель, с фиксированным количеством процессов. Высоконагруженные серверы, возможность запуска дочерних процессов используя другое имя пользователя для повышения безопасности. В разработке, нестабильный.
[httpd.apache.org/docs/2.0/mod/mpm_netware.html netware] Apache Software Foundation Novell NetWare Мультипоточная модель, оптимизированная для работы в среде NetWare. Серверы Novell NetWare Стабильный.
[httpd.apache.org/docs/2.0/mod/mpm_winnt.html winnt] Apache Software Foundation Microsoft Windows Мультипоточная модель, созданная для операционной системы Microsoft Windows. Серверы под управлением Windows Server. Стабильный.
[mpm-itk.sesse.net/ Apache-ITK] Steinar H. Gunderson Linux, FreeBSD MPM, основанная на модели prefork. Позволяет запуск каждого виртуального хоста под отдельными uid и gid. Хостинговые серверы, серверы, критичные к изоляции пользователей и учёту ресурсов. Стабильный.
[www.peruser.org/ peruser] Sean Gabriel Heacock Linux, FreeBSD Модель, созданная на базе MPM perchild. Позволяет запуск каждого виртуального хоста под отдельными uid и gid. Не использует потоки. Обеспечение повышенной безопасности, работа с библиотеками, не поддерживающими threads. Стабильная версия от 4 октября 2007 года, экспериментальная — от 10 сентября 2009 года.

Система модулей

Apache HTTP Server поддерживает модульность. Существует более 500 модулей[7], выполняющих различные функции. Часть из них разрабатывается командой Apache Software Foundation, но основное количество — отдельными open source-разработчиками.

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

В модулях реализуются такие вещи, как:

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

Механизм виртуальных хостов

Apache имеет встроенный механизм виртуальных хостов. Он позволяет полноценно обслуживать на одном IP-адресе множество сайтов (доменных имён), отображая для каждого из них собственное содержимое.

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

Также, существуют модули, позволяющие учитывать и ограничивать ресурсы сервера (CPU, RAM, трафик) для каждого виртуального хоста.

Функциональные возможности

Интеграция с другим ПО и языками программирования

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

К ним относятся:

Кроме того, Apache поддерживает механизмы CGI и FastCGI, что позволяет исполнять программы на практически всех языках программирования, в том числе C, C++, Lua, sh, Java.

Безопасность

Apache имеет различные механизмы обеспечения безопасности и разграничения доступа к данным. Основными являются:

  • Ограничение доступа к определённым директориям или файлам.
  • Механизм авторизации пользователей для доступа к директории на основе HTTP-аутентификации (mod_auth_basic) и digest-аутентификации (mod_auth_digest).
  • Ограничение доступа к определённым директориям или всему серверу, основанное на IP-адресах пользователей.
  • Запрет доступа к определённым типам файлов для всех или части пользователей, например запрет доступа к конфигурационным файлам и файлам баз данных.
  • Существуют модули, реализующие авторизацию через СУБД или PAM.

В некоторых MPM-модулях присутствует возможность запуска каждого процесса Apache используя различные uid и gid с соответствующими этим пользователям и группам пользователей.

Также, существует механизм suexec, используемый для запуска скриптов и CGI-приложений с правами и идентификационными данными пользователя.

Для реализации шифрования данных, передающихся между клиентом и сервером используется механизм SSL, реализованный через библиотеку OpenSSL. Для удостоверения подлинности веб-сервера используются сертификаты X.509.

Существуют внешние средства обеспечения безопасности, например [www.modsecurity.org/ mod_security].

Интернационализация

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

Также, можно реализовать средствами сервера отображение различных страниц для пользователей с различными локалями. Apache поддерживает множество кодировок, в том числе Unicode, что позволяет использовать страницы, созданные в любых кодировках и на любых языках.

Обработка событий

Администратор может установить собственные страницы и обработчики для всех HTTP ошибок и событий, таких как 404 (Not Found) или 403 (Forbidden). В том числе существует возможность запуска скриптов и отображения сообщений на разных языках.

Server Side Includes

В версиях 1.3 и старше был реализован механизм Server Side Includes, позволяющий динамически формировать HTML-документы на стороне сервера.

Управлением SSI занимается модуль [httpd.apache.org/docs/2.2/mod/mod_include.html mod_include], включённый в базовую поставку Apache.


См. также

Напишите отзыв о статье "Apache HTTP Server"

Примечания

  1. [projects.apache.org/indexes/language.html#C Programming Language Index] (англ.). Apache Software Foundation. Проверено 21 июня 2009. [www.webcitation.org/682OY3k3I Архивировано из первоисточника 30 мая 2012].
  2. [www.apache.org/dist/httpd/Announcement2.4.html Apache HTTP Server 2.4.23 Released]
  3. [news.netcraft.com/archives/2007/08/06/august_2007_web_server_survey.html Web Server Survey — August 2007] (англ.). Netcraft (август 2007). Проверено 21 июня 2009. [www.webcitation.org/682OZ5NMp Архивировано из первоисточника 30 мая 2012].
  4. [news.netcraft.com/archives/2009/05/27/may_2009_web_server_survey.html Web Server Survey — May 2009] (англ.). Netcraft (май 2009). Проверено 21 июня 2009. [www.webcitation.org/682OaaHv0 Архивировано из первоисточника 30 мая 2012].
  5. [news.netcraft.com/archives/2011/01/12/january-2011-web-server-survey-4.html January 2011 Web Server Survey] (англ.). Проверено 14 января 2011. [www.webcitation.org/61BnfUBOU Архивировано из первоисточника 25 августа 2011].
  6. [news.netcraft.com/archives/2016/01/26/january-2016-web-server-survey.html January 2016 Web Server Survey] (англ.).
  7. [modules.apache.org/ Apache Module Registry] (англ.)
  8. [www.apache-asp.org/ Apache::ASP] (англ.)
  9. [tcl.apache.org/rivet/ Rivet — Webscripting for Tcl’ers]

Литература

  • Скотт Хокинс. Администрирование веб-сервера Apache и руководство по электронной коммерции = Apache Web Server Administration and e-Commerce Handbook. — М.: Вильямс, 2001. — 336 с. — ISBN 0-13-089873-2.

Ссылки

  • [httpd.apache.org/ Официальный сайт] (англ.)
  • [wiki.apache.org/httpd/ Apache HTTP Server Wiki] (англ.)
  • [apache2dev.ru/2006/03/12/the-apache-modeling-project-vvedenie/ Архитектура Apache. Проект The Apache Modeling Project] (октябрь 2003)  (рус.); оригинал на сайте [apache.hpi.uni-potsdam.de:80/document/the_apache_modelling_project.pdf apache.hpi.uni-potsdam.de/]  (англ.)


Отрывок, характеризующий Apache HTTP Server

– Это ты для гостей так убралась, а? – сказал он. – Хороша, очень хороша. Ты при гостях причесана по новому, а я при гостях тебе говорю, что вперед не смей ты переодеваться без моего спроса.
– Это я, mon pиre, [батюшка,] виновата, – краснея, заступилась маленькая княгиня.
– Вам полная воля с, – сказал князь Николай Андреевич, расшаркиваясь перед невесткой, – а ей уродовать себя нечего – и так дурна.
И он опять сел на место, не обращая более внимания на до слез доведенную дочь.
– Напротив, эта прическа очень идет княжне, – сказал князь Василий.
– Ну, батюшка, молодой князь, как его зовут? – сказал князь Николай Андреевич, обращаясь к Анатолию, – поди сюда, поговорим, познакомимся.
«Вот когда начинается потеха», подумал Анатоль и с улыбкой подсел к старому князю.
– Ну, вот что: вы, мой милый, говорят, за границей воспитывались. Не так, как нас с твоим отцом дьячок грамоте учил. Скажите мне, мой милый, вы теперь служите в конной гвардии? – спросил старик, близко и пристально глядя на Анатоля.
– Нет, я перешел в армию, – отвечал Анатоль, едва удерживаясь от смеха.
– А! хорошее дело. Что ж, хотите, мой милый, послужить царю и отечеству? Время военное. Такому молодцу служить надо, служить надо. Что ж, во фронте?
– Нет, князь. Полк наш выступил. А я числюсь. При чем я числюсь, папа? – обратился Анатоль со смехом к отцу.
– Славно служит, славно. При чем я числюсь! Ха ха ха! – засмеялся князь Николай Андреевич.
И Анатоль засмеялся еще громче. Вдруг князь Николай Андреевич нахмурился.
– Ну, ступай, – сказал он Анатолю.
Анатоль с улыбкой подошел опять к дамам.
– Ведь ты их там за границей воспитывал, князь Василий? А? – обратился старый князь к князю Василью.
– Я делал, что мог; и я вам скажу, что тамошнее воспитание гораздо лучше нашего.
– Да, нынче всё другое, всё по новому. Молодец малый! молодец! Ну, пойдем ко мне.
Он взял князя Василья под руку и повел в кабинет.
Князь Василий, оставшись один на один с князем, тотчас же объявил ему о своем желании и надеждах.
– Что ж ты думаешь, – сердито сказал старый князь, – что я ее держу, не могу расстаться? Вообразят себе! – проговорил он сердито. – Мне хоть завтра! Только скажу тебе, что я своего зятя знать хочу лучше. Ты знаешь мои правила: всё открыто! Я завтра при тебе спрошу: хочет она, тогда пусть он поживет. Пускай поживет, я посмотрю. – Князь фыркнул.
– Пускай выходит, мне всё равно, – закричал он тем пронзительным голосом, которым он кричал при прощаньи с сыном.
– Я вам прямо скажу, – сказал князь Василий тоном хитрого человека, убедившегося в ненужности хитрить перед проницательностью собеседника. – Вы ведь насквозь людей видите. Анатоль не гений, но честный, добрый малый, прекрасный сын и родной.
– Ну, ну, хорошо, увидим.
Как оно всегда бывает для одиноких женщин, долго проживших без мужского общества, при появлении Анатоля все три женщины в доме князя Николая Андреевича одинаково почувствовали, что жизнь их была не жизнью до этого времени. Сила мыслить, чувствовать, наблюдать мгновенно удесятерилась во всех их, и как будто до сих пор происходившая во мраке, их жизнь вдруг осветилась новым, полным значения светом.
Княжна Марья вовсе не думала и не помнила о своем лице и прическе. Красивое, открытое лицо человека, который, может быть, будет ее мужем, поглощало всё ее внимание. Он ей казался добр, храбр, решителен, мужествен и великодушен. Она была убеждена в этом. Тысячи мечтаний о будущей семейной жизни беспрестанно возникали в ее воображении. Она отгоняла и старалась скрыть их.
«Но не слишком ли я холодна с ним? – думала княжна Марья. – Я стараюсь сдерживать себя, потому что в глубине души чувствую себя к нему уже слишком близкою; но ведь он не знает всего того, что я о нем думаю, и может вообразить себе, что он мне неприятен».
И княжна Марья старалась и не умела быть любезной с новым гостем. «La pauvre fille! Elle est diablement laide», [Бедная девушка, она дьявольски дурна собою,] думал про нее Анатоль.
M lle Bourienne, взведенная тоже приездом Анатоля на высокую степень возбуждения, думала в другом роде. Конечно, красивая молодая девушка без определенного положения в свете, без родных и друзей и даже родины не думала посвятить свою жизнь услугам князю Николаю Андреевичу, чтению ему книг и дружбе к княжне Марье. M lle Bourienne давно ждала того русского князя, который сразу сумеет оценить ее превосходство над русскими, дурными, дурно одетыми, неловкими княжнами, влюбится в нее и увезет ее; и вот этот русский князь, наконец, приехал. У m lle Bourienne была история, слышанная ею от тетки, доконченная ею самой, которую она любила повторять в своем воображении. Это была история о том, как соблазненной девушке представлялась ее бедная мать, sa pauvre mere, и упрекала ее за то, что она без брака отдалась мужчине. M lle Bourienne часто трогалась до слез, в воображении своем рассказывая ему , соблазнителю, эту историю. Теперь этот он , настоящий русский князь, явился. Он увезет ее, потом явится ma pauvre mere, и он женится на ней. Так складывалась в голове m lle Bourienne вся ее будущая история, в самое то время как она разговаривала с ним о Париже. Не расчеты руководили m lle Bourienne (она даже ни минуты не обдумывала того, что ей делать), но всё это уже давно было готово в ней и теперь только сгруппировалось около появившегося Анатоля, которому она желала и старалась, как можно больше, нравиться.
Маленькая княгиня, как старая полковая лошадь, услыхав звук трубы, бессознательно и забывая свое положение, готовилась к привычному галопу кокетства, без всякой задней мысли или борьбы, а с наивным, легкомысленным весельем.
Несмотря на то, что Анатоль в женском обществе ставил себя обыкновенно в положение человека, которому надоедала беготня за ним женщин, он чувствовал тщеславное удовольствие, видя свое влияние на этих трех женщин. Кроме того он начинал испытывать к хорошенькой и вызывающей Bourienne то страстное, зверское чувство, которое на него находило с чрезвычайной быстротой и побуждало его к самым грубым и смелым поступкам.
Общество после чаю перешло в диванную, и княжну попросили поиграть на клавикордах. Анатоль облокотился перед ней подле m lle Bourienne, и глаза его, смеясь и радуясь, смотрели на княжну Марью. Княжна Марья с мучительным и радостным волнением чувствовала на себе его взгляд. Любимая соната переносила ее в самый задушевно поэтический мир, а чувствуемый на себе взгляд придавал этому миру еще большую поэтичность. Взгляд же Анатоля, хотя и был устремлен на нее, относился не к ней, а к движениям ножки m lle Bourienne, которую он в это время трогал своею ногою под фортепиано. M lle Bourienne смотрела тоже на княжну, и в ее прекрасных глазах было тоже новое для княжны Марьи выражение испуганной радости и надежды.
«Как она меня любит! – думала княжна Марья. – Как я счастлива теперь и как могу быть счастлива с таким другом и таким мужем! Неужели мужем?» думала она, не смея взглянуть на его лицо, чувствуя всё тот же взгляд, устремленный на себя.
Ввечеру, когда после ужина стали расходиться, Анатоль поцеловал руку княжны. Она сама не знала, как у ней достало смелости, но она прямо взглянула на приблизившееся к ее близоруким глазам прекрасное лицо. После княжны он подошел к руке m lle Bourienne (это было неприлично, но он делал всё так уверенно и просто), и m lle Bourienne вспыхнула и испуганно взглянула на княжну.
«Quelle delicatesse» [Какая деликатность,] – подумала княжна. – Неужели Ame (так звали m lle Bourienne) думает, что я могу ревновать ее и не ценить ее чистую нежность и преданность ко мне. – Она подошла к m lle Bourienne и крепко ее поцеловала. Анатоль подошел к руке маленькой княгини.
– Non, non, non! Quand votre pere m'ecrira, que vous vous conduisez bien, je vous donnerai ma main a baiser. Pas avant. [Нет, нет, нет! Когда отец ваш напишет мне, что вы себя ведете хорошо, тогда я дам вам поцеловать руку. Не прежде.] – И, подняв пальчик и улыбаясь, она вышла из комнаты.


Все разошлись, и, кроме Анатоля, который заснул тотчас же, как лег на постель, никто долго не спал эту ночь.
«Неужели он мой муж, именно этот чужой, красивый, добрый мужчина; главное – добрый», думала княжна Марья, и страх, который почти никогда не приходил к ней, нашел на нее. Она боялась оглянуться; ей чудилось, что кто то стоит тут за ширмами, в темном углу. И этот кто то был он – дьявол, и он – этот мужчина с белым лбом, черными бровями и румяным ртом.
Она позвонила горничную и попросила ее лечь в ее комнате.
M lle Bourienne в этот вечер долго ходила по зимнему саду, тщетно ожидая кого то и то улыбаясь кому то, то до слез трогаясь воображаемыми словами рauvre mere, упрекающей ее за ее падение.
Маленькая княгиня ворчала на горничную за то, что постель была нехороша. Нельзя было ей лечь ни на бок, ни на грудь. Всё было тяжело и неловко. Живот ее мешал ей. Он мешал ей больше, чем когда нибудь, именно нынче, потому что присутствие Анатоля перенесло ее живее в другое время, когда этого не было и ей было всё легко и весело. Она сидела в кофточке и чепце на кресле. Катя, сонная и с спутанной косой, в третий раз перебивала и переворачивала тяжелую перину, что то приговаривая.
– Я тебе говорила, что всё буграми и ямами, – твердила маленькая княгиня, – я бы сама рада была заснуть, стало быть, я не виновата, – и голос ее задрожал, как у собирающегося плакать ребенка.
Старый князь тоже не спал. Тихон сквозь сон слышал, как он сердито шагал и фыркал носом. Старому князю казалось, что он был оскорблен за свою дочь. Оскорбление самое больное, потому что оно относилось не к нему, а к другому, к дочери, которую он любит больше себя. Он сказал себе, что он передумает всё это дело и найдет то, что справедливо и должно сделать, но вместо того он только больше раздражал себя.
«Первый встречный показался – и отец и всё забыто, и бежит кверху, причесывается и хвостом виляет, и сама на себя не похожа! Рада бросить отца! И знала, что я замечу. Фр… фр… фр… И разве я не вижу, что этот дурень смотрит только на Бурьенку (надо ее прогнать)! И как гордости настолько нет, чтобы понять это! Хоть не для себя, коли нет гордости, так для меня, по крайней мере. Надо ей показать, что этот болван об ней и не думает, а только смотрит на Bourienne. Нет у ней гордости, но я покажу ей это»…
Сказав дочери, что она заблуждается, что Анатоль намерен ухаживать за Bourienne, старый князь знал, что он раздражит самолюбие княжны Марьи, и его дело (желание не разлучаться с дочерью) будет выиграно, и потому успокоился на этом. Он кликнул Тихона и стал раздеваться.
«И чорт их принес! – думал он в то время, как Тихон накрывал ночной рубашкой его сухое, старческое тело, обросшее на груди седыми волосами. – Я их не звал. Приехали расстраивать мою жизнь. И немного ее осталось».
– К чорту! – проговорил он в то время, как голова его еще была покрыта рубашкой.
Тихон знал привычку князя иногда вслух выражать свои мысли, а потому с неизменным лицом встретил вопросительно сердитый взгляд лица, появившегося из под рубашки.
– Легли? – спросил князь.
Тихон, как и все хорошие лакеи, знал чутьем направление мыслей барина. Он угадал, что спрашивали о князе Василье с сыном.
– Изволили лечь и огонь потушили, ваше сиятельство.
– Не за чем, не за чем… – быстро проговорил князь и, всунув ноги в туфли и руки в халат, пошел к дивану, на котором он спал.
Несмотря на то, что между Анатолем и m lle Bourienne ничего не было сказано, они совершенно поняли друг друга в отношении первой части романа, до появления pauvre mere, поняли, что им нужно много сказать друг другу тайно, и потому с утра они искали случая увидаться наедине. В то время как княжна прошла в обычный час к отцу, m lle Bourienne сошлась с Анатолем в зимнем саду.
Княжна Марья подходила в этот день с особенным трепетом к двери кабинета. Ей казалось, что не только все знают, что нынче совершится решение ее судьбы, но что и знают то, что она об этом думает. Она читала это выражение в лице Тихона и в лице камердинера князя Василья, который с горячей водой встретился в коридоре и низко поклонился ей.
Старый князь в это утро был чрезвычайно ласков и старателен в своем обращении с дочерью. Это выражение старательности хорошо знала княжна Марья. Это было то выражение, которое бывало на его лице в те минуты, когда сухие руки его сжимались в кулак от досады за то, что княжна Марья не понимала арифметической задачи, и он, вставая, отходил от нее и тихим голосом повторял несколько раз одни и те же слова.
Он тотчас же приступил к делу и начал разговор, говоря «вы».
– Мне сделали пропозицию насчет вас, – сказал он, неестественно улыбаясь. – Вы, я думаю, догадались, – продолжал он, – что князь Василий приехал сюда и привез с собой своего воспитанника (почему то князь Николай Андреич называл Анатоля воспитанником) не для моих прекрасных глаз. Мне вчера сделали пропозицию насчет вас. А так как вы знаете мои правила, я отнесся к вам.
– Как мне вас понимать, mon pere? – проговорила княжна, бледнея и краснея.
– Как понимать! – сердито крикнул отец. – Князь Василий находит тебя по своему вкусу для невестки и делает тебе пропозицию за своего воспитанника. Вот как понимать. Как понимать?!… А я у тебя спрашиваю.
– Я не знаю, как вы, mon pere, – шопотом проговорила княжна.
– Я? я? что ж я то? меня то оставьте в стороне. Не я пойду замуж. Что вы? вот это желательно знать.
Княжна видела, что отец недоброжелательно смотрел на это дело, но ей в ту же минуту пришла мысль, что теперь или никогда решится судьба ее жизни. Она опустила глаза, чтобы не видеть взгляда, под влиянием которого она чувствовала, что не могла думать, а могла по привычке только повиноваться, и сказала:
– Я желаю только одного – исполнить вашу волю, – сказала она, – но ежели бы мое желание нужно было выразить…
Она не успела договорить. Князь перебил ее.
– И прекрасно, – закричал он. – Он тебя возьмет с приданным, да кстати захватит m lle Bourienne. Та будет женой, а ты…
Князь остановился. Он заметил впечатление, произведенное этими словами на дочь. Она опустила голову и собиралась плакать.
– Ну, ну, шучу, шучу, – сказал он. – Помни одно, княжна: я держусь тех правил, что девица имеет полное право выбирать. И даю тебе свободу. Помни одно: от твоего решения зависит счастье жизни твоей. Обо мне нечего говорить.
– Да я не знаю… mon pere.
– Нечего говорить! Ему велят, он не только на тебе, на ком хочешь женится; а ты свободна выбирать… Поди к себе, обдумай и через час приди ко мне и при нем скажи: да или нет. Я знаю, ты станешь молиться. Ну, пожалуй, молись. Только лучше подумай. Ступай. Да или нет, да или нет, да или нет! – кричал он еще в то время, как княжна, как в тумане, шатаясь, уже вышла из кабинета.
Судьба ее решилась и решилась счастливо. Но что отец сказал о m lle Bourienne, – этот намек был ужасен. Неправда, положим, но всё таки это было ужасно, она не могла не думать об этом. Она шла прямо перед собой через зимний сад, ничего не видя и не слыша, как вдруг знакомый шопот m lle Bourienne разбудил ее. Она подняла глаза и в двух шагах от себя увидала Анатоля, который обнимал француженку и что то шептал ей. Анатоль с страшным выражением на красивом лице оглянулся на княжну Марью и не выпустил в первую секунду талию m lle Bourienne, которая не видала ее.