Строим свой WWW сервер с ноля
Udjin Kondratov,
Все, что Вы здесь прочтете, основывается на субъективном взгляде на вопрос создания и настройки сервера, ни в коем случае не претендует на полноту и не может трактоваться как истина в последней инстанции. Спор о том, какая операционная система или какой сервер лучше, разрешит время.
В этой статье я в краткой форме расскажу о том, как я строил свой WWW сервер.
С чего начать.
Начинать нужно с задач. Задачи определят требования к ресурсам.
Операционная система.
NT4 Server. Спорить и доказывать какая из операционных систем лучше или хуже я не буду, т.к. я пробовал и RED HAT и Linux и .. остановился на NT4, так сложилось.
NT4 весьма требовательная операционная система. Для более или менее успешного запуска ей необходимы 486 DX и 12 Mb RAM. Для работы - P100 и 32 Mb RAM. Где взять NT4 ? Лучше всего купить.
WWW server.
Серверов много. В запале "Интернет-гонки" ведущие производители так и норовят переплюнуть друг друга. Так какой же сервер выбрать? Походим по интернет и посмотрим. Нам нужен сервер:
- Бесплатный.
- Поддерживающий интерфейсы CGI и ISAPI. (на самом деле интерфейсов значительно больше ..)
- Отказоустойчивый.
- Быстрый.
По всем параметрам, кроме последнего, нам подходит IIS4. Хотя это не бесспорно.
Требования IIS4 к компьютеру:
Комплектующие | Требуется | Рекомендуется |
Processor | 66 MHz 486 | 90 MHz PentiumR |
RAM | 32 MB | 64 MB |
Free hard disk space | 50 MB (minimum install) | 200 MB |
Monitor | VGA | Super VGA |
CD-ROM drive (optional) | 3X | 6X |
Определимся с информационным наполнением сервера.
Если на сервере будут использоваться базы данных, то необходимо рассчитать их ориентировочный объем и соответственно место на диске и в памяти.
Для серьезных задач используют SQL базы данных, а для простеньких повседневных соответственно, что проще, например DB или Access. Исходим из того, что база с 5-6 таблицами и 50 000 записями в каждой занимает на винчестере 8-10 Mb. Обработка запросов к такой базе данных серьезная задача и для ускорения выполнения запросов необходимы соответственно программные и технические решения.
Программные решения рассмотрим ниже а вот технические - это память и скоростные винчестеры. Сколько именно памяти? Вопрос из вопросов. Посмотрим документацию на ODBC: Размер буфера в килобайтах рассчитывается по формуле ((Вся доступная память - 12 Mb)/4) + 512 Kb. В случае, если в системе имеется 32 Mb памяти: ((32Mb-12Mb)/4) + 512 Kb = 5632 Kb. Дело в том, что доступ к базе данных осуществляется через Engine. Engine - это "мотор" обрабатывающий запросы извне, работающий с данными и возвращающий ответы . Моторов, как и баз много, и все разные, но память успешно потребляют все. Если вы будете использовать Engine от стороннего производителя, например Cold Fusion, то смотрите его документацию., а я по опыту скажу, что памяти для них нужно не меньше, а зачастую даже больше L . Если баз данных на сервере не будет, то прикинем средний размер странички и сколько страничек всего будет : по опыту - большие сайты занимают на удивление мало места, так, например, сайт занимает всего 20 Mb (без учета размера баз данных), но сайты имеют свойство разростаться... например -microsoft.com. Начиналось все с 2-х P-66 а сейчас 16 IIS 4.0/WindowsNT 4.0 Compaq Proliant 5000s , 20 Gb документов, 6 000 ASP - файлов и все это хозяйство разрастается :-)).
Ну что, посчитаемся.
Требования к компьютеру.
Компьютер | Задачи |
90 MHz PentiumR, 78 Mb RAM, SVGA. 400 Mb HDD. | NT4 + IIS без баз данных |
Если Вы еще не "гуру" в NT4 то приобретайте что-либо размером до 2-х Gb и не создавайте себе головной боли, если "гуру" - тогда покупайте то, что считаете нужным. Не забудьте про охлаждение винчестера. Контроллер для Вашей дисковой подсистемы выбирайте исходя из Ваших винчестеров. Для SCSI - выбирайте производителя здесь: SCSI контроллеры. Очень много справочной информации про SCSI. SCSI контроллеры и материнские платы со SCSI SCSI контроллеры и материнские платы со SCSI SCSI контроллеры и материнские платы со SCSI SCSI контроллеры SCSI контроллеры Жесткие диски SCSI: , , , Для IDE винчестеров есть хорошие решения от Жесткие диски IDE: