Аппаратное обеспечение WWW-сервера
Как работает WWW-сервер?
Серверы
ОС для Web-сервера
Сравнительные характеристики ПО WWW-серверов

Даже неискушенный в компьютерных тонкостях человек не может не признать, что "сеть сетей" Internet все прочнее завладевает умами, подтверждая самые смелые прогнозы. Для одних Internet - это место проведения деловых операций, для других - вечерний клуб, а для некоторых - второй мир со своими обычаями, этикетом, где нет расстояний и национальных барьеров, где вы можете отправить письмо другу в Португалию, просмотреть последние выпуски газет и журналов, при этом переписывая себе демо-версию игры Doom. Поэтому неудивительно, что в последнее время рост Internet носит лавинообразный характер. По материалам, полученным с сервера www.ritmpress.ru, только за последнюю неделю 1995 г. и первую 1996 г. число доменов (.org, .net, .com и т.д.) выросло в среднем на 3,5% ! Соответственно увеличивается и число людей, использующих какие-либо программные продукты для работы в Internet.

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

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

Чем же руководствоваться при выборе того или иного приложения? По каким параметрам подобрать то, что вам подходит лучше всего? А сколько это стоит? Давайте попробуем разобраться с таким видом ПО, стоящим, пожалуй, на следующем месте после Web-браузеров, как WWW-серверы.

Наиболее распространенный сервис в Internet - WWW-серверы. Общая схема взаимодействия достаточно проста: клиентское приложение (любой Web-браузер) направляет составленный пользователем запрос серверу (WWW-сервер), который в ответ посылает соответствующий запросу документ.

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

Аппаратное обеспечение WWW-сервера

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

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

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

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

Аппаратное обеспечение Macintosh можно включить в класс приемлемых серверов, но и тут есть свои проблемы. Как и Windows, это однопользовательская среда. Хотя графические возможности здесь лучше, чем у Windows, среда более обкатанная и с лучшей производительностью, я бы не стал рекомендовать ее на роль серверной среды. Одна из проблем - плохое управление памятью. Требуется долгая ручная настройка для оптимизации использования памяти. Но есть "луч света в темном царстве": Apple выпускает в настоящее время несколько очень быстрых моделей, легко оставляющих позади аналогичные по конфигурации PC. Сетевая поддержка обычно встроена. И если Web-сервер Macintosh является "родным" приложением для PowerPC, а не старой программой, требующей для работы на PowerMac эмуляционного режима, тогда вы получите потенциально мощный информационный сервер. Но я настоятельно рекомендую не использовать сервер для каких-либо других задач. Ваши пользователи будут очень недовольны тем, что сервер действует по принципу пунктира: "работает - не работает - опять работает!", и вы растеряете всех посетителей своего сервера.

Даже для простейших серверов на базе PC или Macintosh самым существенным является объем оперативной памяти. Желательно иметь по крайней мере 16 Мбайт для сервера, не считая потребностей ОС.

Если вам необходим крупный информационный сервер (для университета, библиотеки, архива и т. п.), я бы порекомендовал потратить деньги на одну или несколько рабочих станций Unix. Например, рабочие станции таких поставщиков, как Sun Microsystems (Sun Solaris), Hewlett-Packard (HPUX), IBM (AIX) или Digital Equipment Corporation (OSF). Даже младшие модели класса Sun Sparcstation хорошо справляются с обязанностями сервера среднего класса, а более поздние могут служить для поддержания крупного информационного сервера. Недостатки операционной системы в этом случае окупаются хорошей аппаратной частью и приемлемыми ценами. Hewlett-Packard выпустил в свет недорогие рабочие станции серии Gecko. Они обладают хорошими характеристиками и имеют возможность установки Nextstep в качестве альтернативы "родной" операционной системы. Nextstep - простейший вариант Unix и великолепно подходит для начинающего системного администратора. IBM продает множество разновидностей своей рабочей станции RS6000, включая модификацию PowerPC, но я слышал много историй о трудностях, возникающих при работе с их операционной системой AIX. Однако если ваш WWW-сервер создан именно под эту ОС, то это неплохой выбор. И наконец, фирма DEC предлагает несколько самых быстрых рабочих станций класса Alpha. Здесь также возможны небольшие проблемы с "родной" операционной системой, но вы можете поставить на такой сервер Windows NT и работать в свое удовольствие. При выборе одного из серверов такого класса я бы порекомендовал как минимум 64-Мбайт ОЗУ. Но пока сервер не завоевал широкое признание в сердцах "Web-серфингистов", можно обойтись и 32 Мбайт.

Мы рассмотрели оперативную память и сетевые возможности, а как насчет жесткого диска? Простейший сервер может быть оснащен лишь диском 1 Гбайт. Но вы и не заметите, как перестанет и на нем хватать места. Для рабочих станций Unix понадобится как минимум диск 4 Гбайт. Можно создать и кластеры дисков, но от использования сетевых дисков советую воздержаться, так как вероятность сбоев сильно увеличивается. Однако те же сетевые диски великолепно подойдут для поддержания копии сервера или проведения резервного копирования. Кстати, о последнем: вы должны убедиться в том, что резервное копирование и восстановление проводится корректно на вашем оборудовании, не говоря уже об обеспечении регулярного выполнения этой крайне важной операции. Купите какое-либо устройство, обеспечивающее хранение данных даже при сбое системы и защиту от несанкционированного доступа: накопитель на магнитной ленте, магнитооптику, CD-ROM - смотря что вы можете себе позволить (см. статью в этом номере "Предосторожность или риск? Выбирайте." на с. 11 - Прим. ред.).

Как работает WWW-сервер?

WWW-сервер - это просто программа, которая отвечает на запрос документа от WWW-клиента через Internet. Все WWW-серверы используют общий протокол для общения с клиентами, который получил название HyperText Transfer Protocol - протокол передачи гипертекста. Именно это означает приставка "http" в адресе www. Используя этот протокол, можно передавать все типы данных, включая HTML-документы, графику, звук и видео. Непосредственно перед данными передается их тип в заголовке MIME (Multipurpose Mail Extensions). Тип, в свою очередь, определяется сервером (если не считать работу через CGI - Common Gateway Interface, где вы сами указываете тип передаваемых данных). Клиент, со своей стороны, преобразует команду "открыть URL" в http-запрос GET. Так, например, если вы хотите открыть http://www.netscape.com, ваш браузер связывается с сервером www.netscape.com и посылает запрос GET на документ, открывающийся по умолчанию (это одна из характеристик сервера), а затем ждет ответ. В качестве ответа клиент может получить либо документ, либо сообщение об ошибке. После того как получен документ или сообщение об ошибке, соединение закрывается. По такому описанию может сложиться впечатление, что сервер почти ничего не делает, только данные посылает; в то время как клиент, получая сырой HTML, трудится в поте лица и производит форматирование текста, определяет тип данных и в соответствии с этим вызывает вспомогательные приложения (для звукового сопровождения, видео и т.п.).

Так что тогда делает сервер? Функции WWW-сервера, кроме его прямой обязанности передавать запрашиваемые данные, можно условно разбить на четыре группы:

  • управление передачей документов;
  • ведение журнала активности клиентов;
  • поддержание безопасности данных;
  • обеспечение работы средств интерактивной работы с клиентом.

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

WWW-сервер может вести журнал активности клиентов, записывая Internet-адреса, время, содержание запроса и другие параметры каждого соединения.

Функции защиты имеют несколько уровней:

  • контроль доступа к файлам на сервере;
  • ограничения на допустимые клиентские Internet-адреса и имена доменов;
  • кодирование сетевого трафика (технология SSL).

Ну и, пожалуй, самый интересный раздел - средства интерактивной работы с клиентом. Самая старая из доступных здесь возможностей - CGI-интерфейс. Сервер выполняет указанное в запросе приложение и результат передает в качестве ответа. Такая возможность открывает мощное средство для создания динамических (т. е. формируемых в результате выполнения CGI-приложений) HTML-документов и не только их. Эта технология находит применение от настройки документа для нужд конкретного пользователя до создания собственного интерфейса к вашей базе данных. Некоторые WWW-серверы имеют встроенные возможности работы с одной или несколькими СУБД, что избавляет разработчика от значительной части рутинного труда.

И наверно, каждый слышал о Java. Этот язык позволяет разгружать сервер, перенося часть активности на клиента. Не будем углубляться в эту увлекательную тему (подробнее см. "Начинаем программировать на языке Java" в #11-12/96 г., c. 110-114, #1/97 г., c. 104-107, #2/97 г., c. 74 - Прим. ред.). Отмечу только, что Microsoft пытается противопоставить данной технологии идею сетевого OLE. Но, на мой взгляд, даже при всех маркетинговых талантах данной компании говорить о конкуренции было бы преждевременно.

Серверы

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

MacHTTP

Одним из самых простых по инсталляции и поддержке является MacHTTP for Macintosh. Он инсталлируется как обычное приложение для Macintosh и вызывается точно так же - просто двойным щелчком мыши. Как и несколько других серверов, MacHTTP приходит сконфигурированным на просмотр справочной информации при доступе к серверу по умолчанию: http://имя_вашего_сервера. Далее вы можете изменить такую настройку и сделать автоматический старт сервера при загрузке машины. Конфигурационные данные хранятся в файле MacHTTP.config. Число одновременно обрабатываемых запросов можно выставить в диапазоне 3-10 000, а также ограничить доступ по IP-адресам клиентских машин. Большинство других параметров я не советовал бы изменять до приобретения опыта работы с сервером, так как они по умолчанию выставлены достаточно неплохо. Появилась встроенная поддержка для PowerPC, что открывает хорошие перспективы масштабирования сервера при дальнейшем росте без перехода на другое программное обеспечение.

NCSA HTTPD

Так как Windows стала самой популярной операционной системой, не будет неожиданностью то, что существует несколько WWW-серверов, разработанных под нее. Один из самых хороших серверов данного класса (если не лучший) - NCSA HTTPD for Windows. Это большой и сложный пакет, но его инсталляция на удивление легка. Вы просто переписываете себе программу, затем распаковываете ее, записываете в каталог HTTP и, добавив SET в autoexec.bat, перегружаете машину. После загрузки Windows достаточно два раза щелкнуть мышью на пиктограмме - и до восьми пользователей могут одновременно обращаться к документам в корневом каталоге сервера. Правда, мне не понравилось, что этот сервер хуже работает с 32-разрядным расширением Windows, чем без него. Поэтому, если вы установили на сервер программу Mosaic 2.0, требующую для работы это расширение, я порекомендовал бы переустановить Windows для оптимизации работы сервера. NCSA-сервер поддерживает такой же набор функций, как и Unix-серверы. Доступ к данным от других приложений Windows встроен так, что открывает возможности, недоступные в Unix-системах, - такие, как запрос данных от текстового процессора. В качестве языка поддержки сценариев используется Visual Basic 3.0, так что если вы заинтересованы в работе с формами, позаботьтесь о приобретении данного продукта. Сервер настолько похож на Unix-аналоги, что опыт, приобретенный в работе с ним, не пропадет даром, если в будущем вы решите перейти на более мощный Unix-сервер. Данный сервер лучше всего подходит для хранения документов небольшой группы пользователей.

Microsoft Internet Information Server

Еше один сервер - MS IIS. Отличительной особенностью данного пакета является тесная интеграция с MS BackOffice. Запускается IIS как сервис Windows NT и имеет с этой ОС общую структуру разделения доступа. В комплект входят "родные" драйверы для MS SQL Server. Исходя из своего опыта разработки информационных систем на базе Internet-технологий, могу сказать, что IIS отлично подходит для информационных систем среднего и малого масштаба. Он хорошо поддерживает CGI-интерфейс, который выполняется в виде exe-файлов типа Win32 Console. Даже при некорректном обращении к памяти приложение не "валится", а лишь блокирует рабочие файлы с автоматической разблокировкой через некоторое время (но не стоит этим увлекаться - ваше ожидание может затянуться). Совет для разработчиков: можно просто переместить файл, выполнение которого привело к сбою, во временный каталог, а вместо него записать работающую версию (простое удаление невозможно). В общем, это обычный бесплатный сервер, простой в инсталляции, настройке и администрировании.

Oracle WebServer

Трудности при работе с Oracle WebServer поджидают неискушенного пользователя с самых первых шагов. Начнем с того, что прежде всего придется внимательно прочитать руководство по инсталляции. Если вы хотите, чтобы ваш WWW-сервер заработал вообще, а с базой данных в частности, то внимательнейшим образом изучите требования к системным ресурсам и версиям связанных программных продуктов (СУБД Oracle, операционной системы и т.д.). И только затем запускайте инсталляционную программу. После этого к серверу можно и не подходить - все администрирование сервера производится через стандартный Web-браузер или путем редактирования файлов настройки.

Oracle WebServer - набор процессов "слухачей" (web listener), обслуживающих каждый свой TCP-порт с совершенно независимым конфигурированием всех параметров. Это открывает широкие возможности по применению данного сервера в диапазоне от простого узла Internet до составной части информационной системы предприятия. В версии 2.0 клиентский запрос обрабатывается специальным диспетчером WRB (Web Request Broker), который определяет тип запроса, проверяет его корректность и затем передает одному из своих сервисов, выполненных на основе единого интерфейса API, к диспетчеру WRB. Таким образом, поддерживается и Java, и интерфейс к "родной" базе данных.

Доступ к СУБД обеспечивается через специальных агентов (PL/SQL Agent), которые выполняют хранимые процедуры с перенаправлением вывода к конечному пользователю. Архитектура системы позволяет поддерживать почти все мыслимые конфигурации в сети. Вы одинаково легко можете настроить его на работу с удаленными приложениями, и собрать на одном компьютере целый информационный комплекс на базе продуктов Oracle. Это обеспечивается очень ценным, на мой взгляд, качеством продуктов Oracle - тесной интеграцией их между собой.


Виталий Владимирович Петров - программист компании LVS. E-mail: vpetrov@lvs.msk.su.

ОС для Web-сервера

Имеет смысл сделать небольшое отступление об операционных системах, так как это непосредственно связано с выбором как аппаратного обеспечения, так и собственно серверной программы. Многие не придают значения выбору ОС для сервера, и совершенно напрасно, поскольку существуют как хорошо подходящие для этих целей ОС, так и абсолютно непригодные. Как правило, однопользовательские операционные системы неприменимы для роли ОС информационного сервера. Одна общая ошибка защиты в Windows приводит в выходу из строя машины на десять и более минут. Не говоря уже о недостатках средств защиты и администрирования. Но если вам все-таки приходится иметь дело с Windows в качестве серверной ОС, ни в коем случае не используйте данный компьютер под какие-либо другие задачи. Не позволяйте никому инсталлировать что-либо на сервер или работать с ним. Windows была спроектирована не для поддержки сетевой работы сервера и иногда некорректно работает даже в качестве простого клиента Internet. Если вы решили, что ваш сервер будет функционировать на платформе Intel 486 или Pentium, то существует прекрасная альтернатива таким операционным системам, как DOS/Windows. Это многопользовательские ОС, обеспечивающие настоящую многозадачность и действительно дающие распределение системных ресурсов между пользователями и приложениями. Каждый процесс получает для работы свой собственный сегмент памяти, защищенный от влияния остальных процессов, что сильно снижает вероятность полного краха сервера.

Попробуйте Windows NT *.

Эта операционная система защищает приложения одно от другого путем выделения каждому собственного адресного пространства. IBM OS/2 не менее надежна, но я порекомендовал бы "родную" OS/2, а не OS/2 для Windows. И наконец, вы можете выбрать одну из нескольких прекрасных Unix-систем. Для начинающих проще всего Nextstep. Но учтите, что это достаточно дорогое удовольствие. Пакет Linux, одна из разновидностей Unix для PC, имеет немалый круг почитателей. И хотя он не так прост, как Nextstep, многие пользователи в Internet применяют его для решения самых различных задач, какие вы только можете себе представить, и с удовольствием вам помогут, если вы обратитесь за помощью по Linux в какую-либо из многочисленных групп новостей по данной ОС. Я слышал неплохие отзывы о FreeBSD, популярной ОС для некоммерческих информационных серверов в Internet. Она быстрее Linux, но требует достаточно кропотливой настройки. Еще один вариант - ОС Sun Solaris для Intel, но в группах новостей слишком много писем от людей, столкнувшихся с проблемами в эксплуатации данной ОС. Системы Unix, Windows NT и OS/2 эффективно используют память и хорошо управляют ресурсами для обеспечения многозадачности.


* На моей рабочей машине стоит Windows NT 3.51 и Microsoft Internet Information Server. Работает все очень надежно.

Сравнительные характеристики ПО WWW-серверов

Netscape Enterprise Server
Netscape FastTrack Server
NCSA HTTPd
Apache
Apache- SSL-US
MS IIS
ORACLE Web Server
IBM Internet Connection Secure Server
NetWare Web Server от Novell
Esplanade
ExpressO
Purveyor
COSMOS
Mac HTTP
CL- HTTP
Операционные системы
Unix (или разновидности)
да
да
да
да
да
нет
да
да
нет
нет
да
нет
да
нет
да
OS/2
нет
нет
нет
да
нет
нет
нет
да
нет
нет
нет
нет
нет
нет
нет
Windows NT
да
да
нет
нет
нет
да
да
да
нет
да
да
да
нет
нет
нет
Novell Netware
нет
нет
нет
нет
нет
нет
нет
нет
да
нет
нет
да
нет
нет
нет
Macintosh OS
нет
нет
нет
нет
нет
нет
нет
нет
нет
нет
да
нет
нет
да
да
Вызов и журнал
Поддержка нескольких корневых каталогов
да
да
да
да
да
да
да
да
нет
да
да
да
да
нет
нет
Ведение системного журнала
да
да
нет
нет
нет
да
да
да
нет
да
нет
да
нет
нет
нет
Автоматическая архивация журнала
да
да
нет
нет
нет
да
нет
да
да
нет
да
да
да
нет
да
Настраиваемый формат журнала
да
да
нет
да
да
да
да
нет
нет
нет
да
да
нет
нет
да
Ведение журнала активности клиентов
да
да
нет
нет
нет
да
нет
нет
нет
да
да
да
нет
нет
да
Поддержка протоколов и вставок
Обязательные вставки
да
да
нет
нет
нет
да
да
да
нет
нет
да
нет
да
нет
нет
Встроенный язык сценариев
да
да
нет
нет
да
да
нет
нет
да
нет
нет
да
да
да
да
Поддержка HTTP PUT
да
да
нет
нет
нет
нет
нет
нет
да
нет
да
нет
нет
нет
да
Поддержка Windows CGI
да
да
нет
нет
нет
да
нет
нет
нет
да
нет
нет
нет
нет
нет
Имеет SNMP-агента
да
нет
нет
нет
нет
нет
нет
нет
нет
нет
нет
нет
нет
нет
Поддержка HTTP докачки
да
да
нет
нет
нет
нет
нет
нет
нет
да
нет
нет
нет
нет
Поддержка постоянного соединения HTTP
да
нет
нет
нет
нет
нет
нет
нет
нет
нет
да
нет
нет
нет
да
Значение поля "Server:" в заголовке ответа
Netscape-
Enterprise
Netscape-
FastTrack
NCSA
Apache
Apache-SSL-US
Microsoft-Internet-
Information-Server
Oracle_Web_
listener2.0
IBM - Secure-ICS
Novell-HTTP-Server
FTP-Software-WebService
Innovative Desktop
Purveyor
COSMOS-
Web-Server
Mac HTTP
CL-HTTP
Защита данных
Поддержка авторизации
да
да
да
да
да
да
да
да
да
да
да
да
нет
да
да
Поддержка SSL
да
да
нет
нет
да
да
да
да
нет
нет
нет
да
да
нет
нет
Ограничение доступа по имени домена
да
да
да
да
да
нет
да
да
да
да
да
да
нет
да
да
Ограничение доступа по IP адресу
да
да
да
да
да
да
да
да
да
да
да
да
нет
да
да
Настраиваемые группы пользователей
да
да
да
да
да
да
да
да
да
да
да
да
нет
нет
да
Определение доступа на уровне частей документа
да
да
нет
нет
нет
да
нет
нет
нет
нет
нет
да
нет
нет
да
Прочие параметры
Удаленное администрирование
да
да
нет
да
да
да
да
да
да
нет
да
да
да
нет
да
Средства контроля эффективности в реальном времени
да
да
нет
да
да
да
нет
нет
да
нет
да
да
да
да
да
Поисковые механизмы
да
нет
да
нет
нет
нет
нет
нет
нет
нет
нет
да
да
да
нет
Прямая связь с системой управления базой данных
да
да
нет
нет
нет
нет
да
нет
нет
нет
нет
нет
нет
нет
да
Версия
2
2
1.5a
1.1
1.0.3+1.1
1
2
4.1
2.5
1.2
B1.8
1.2
1
2.2
58.12
Цена, долл.
0-995
295 или 495
Бесплатно
Бесплатно
495
Бесплатно
2495
295
995
н/д
н/д
295-495
2000-20000
0-95
Бесплатно
Разработчик
Netscape
Netscape
NCSA
Apache
ApacheSSL
Microsoft
Oracle
IBM
Novell
FTP Software
Capital City
Process Software
RIS Technologies
Quarter-deck/StarNine
MIT
Адрес для более подробной информации
http://home.
netscape.com
http://home.
netscape.com
http://hoohoo.
ncsa.uiuc.edu
http://www.
apache.org
http://
apachessl.org
http://www.
microsoft.com
/infoserv
http://www.
oracle.com
http://www.ics.
raleigh.ibm.com
http://www.
novell.com
http://www.ftp.
com/esplanade
http://www.
capitalcity.
com:4321/
http://www.
process.com/
http://
www.ris.fr
http://www.
starnine.com/
http://www.ai.mit.
edu/projects/iiip/doc
/cl-http/home-page.html