|
|
Строим свой WWW сервер с ноля |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Udjin Kondratov
В этой статье я в краткой форме расскажу о том, как я строил свой WWW сервер. С чего начать. Начинать нужно с задач. Задачи определят требования к ресурсам. Операционная система. NT4 Server. Спорить и доказывать какая из операционных систем лучше или хуже я не буду, т.к. я пробовал и RED HAT и Linux и .. остановился на NT4, так сложилось. NT4 весьма требовательная операционная система. Для более или менее успешного запуска ей необходимы 486 DX и 12 Mb RAM. Для работы - P100 и 32 Mb RAM. Где взять NT4 ? Лучше всего купить. WWW server. Серверов много. В запале "Интернет-гонки" ведущие производители так и норовят переплюнуть друг друга. Так какой же сервер выбрать? Походим по интернет и посмотрим. Нам нужен сервер:
По всем параметрам, кроме последнего, нам подходит IIS4. Хотя это не бесспорно. Требования IIS4 к компьютеру:
Определимся с информационным наполнением сервера. Если на сервере будут использоваться базы данных, то необходимо рассчитать их ориентировочный объем и соответственно место на диске и в памяти. Для серьезных задач используют 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 . Если баз данных на сервере не будет, то прикинем средний размер странички и сколько страничек всего будет : по опыту - большие сайты занимают на удивление мало места, так, например, сайт http://www.actiweserwerpages.com/ занимает всего 20 Mb (без учета размера баз данных), но сайты имеют свойство разростаться... например -microsoft.com. Начиналось все с 2-х P-66 а сейчас 16 IIS 4.0/WindowsNT 4.0 Compaq Proliant 5000s , 20 Gb документов, 6 000 ASP - файлов и все это хозяйство разрастается :-)). Ну что, посчитаемся. Требования к компьютеру.
Собираем компьютер. Ни в коем случае не разгонять. Кэш - чем больше тем лучше. Чей процессор? Тут я не в праве что-либо советовать, дело вкуса, у меня Intel. Какой именно? Самый-самый. Если есть деньги покупайте PPRO 200 с кэш-памятью 1 Mb. Сколько процессоров? Мда ... вы видно собрались строить что-то весьма крутое... Любая, работающая, не разогнанная. В случае с Pentium - чипсет HX или VP3, в случае с P-II - лучше всего BX. Лучше "брэнд". Выбирайте самый быстрый и самый дорогой. Настоятельно рекомендую SCSI винчестеры. Сколько? Лучше всего 2 винчестера. Дробить бутовый винчестер на 2 и создавать на каждом из них логический диск не имеет смысла, - скорости это не добавит. Если Вы еще не "гуру" в NT4 то приобретайте что-либо размером до 2-х Gb и не создавайте себе головной боли, если "гуру" - тогда покупайте то, что считаете нужным. Не забудьте про охлаждение винчестера. Контроллер для Вашей дисковой подсистемы выбирайте исходя из Ваших винчестеров. Для SCSI - выбирайте производителя здесь: Aadaptec SCSI контроллеры. Очень много справочной информации про SCSI. Tekram SCSI контроллеры и материнские платы со SCSI Iwill SCSI контроллеры и материнские платы со SCSI ASUSTeK SCSI контроллеры и материнские платы со SCSI IOI SCSI контроллеры Mylex SCSI контроллеры Жесткие диски SCSI: Seagate, Western Digital, IBM, Quantum Для IDE винчестеров есть хорошие решения от PromIce Жесткие диски IDE:
Работающая. Какая именно? Сходите по ссылке и почитайте : Я предпочитаю Kingston.Тип памяти выбирайте исходя из возможностей Вашей материнской платы. Сетевые средства. Если мы собираемся подключиться по выделенному каналу к интернет то нам придется воспользоваться услугами провайдера. Наиболее вероятно что провайдер предложит Вам постоянное соединение V.34 , V.35 или G.703 , ISDN, RadioEthernet. В любом случае нам придется отталкиваться от требований и - или рекомендаций провайдера. Вот и все по компьютеру. Монитор, клавиатуру и мышь - по вкусу, не забудьте про сетевой фильтр и блок бесперебойного питания. Мы во всеоружии и готовы ваять. 2 Ставим NT4.
Про то, как установить NT4, написаны масса книг и статей разными людьми и с разным уровнем, если Вам лень читать все это, то сходите сюда и почитайте FAQ. Написано толково и аккумулирует опыт Российских пользователей. Остановимся на том, что действительно необходимо для успешной работы сервера в режиме WWW. Файловая система - NTFS. Если хотите что бы Ваш сервер жил "долго и счастливо", то только эта файловая система (применительно к NT4) обеспечит Вам
Интересная статья об устойчивости NTFS и сравнение FAT и NTFS находится здесь. Если же Вы установите FAT, помните .. как там .. "все флаги будут в гости к нам", точнее не к Вам, а в root каталог Вашего сервера :-) . Сетевой протокол. Естественно TCP-IP. И не надо больше никаких других протоколов. Упаси Вас бог от NetBEUI поверх TCP-IP. Нахождение Вашей машины в Интернет по IP - адресу будет обеспечивать DNS сервер провайдера, и пусть это будет его головной болью. Если Вы предполагаете работать со своей машиной удаленно, имеет смысл присвоить вашей машине 2 реальных IP - адреса. Один - для всех, а вот второй - для своих собственных администраторских нужд, и соответственно включить фильтрацию пакетов на этот адрес. Не ставьте ни каких сетевых агентов. В некоторых изданиях рекомендуют ставить свой DNS сервер, ИМХО это верно, если Вы - провайдер, если это так, тогда зачем Вам все ЭТО? Установка IIS2.0 При первой установке NT-4 предложит вам установить WWW а так же FTP, Gopher серверы и менеджер ODBC с драйвером SQL - сервера. Ставить или нет. Ставьте, т.к. в последствии не нужное можно безболезненно удалить, а вот установить IIS3 или IIS4 без предустановки IIS2 не удастся.. На какой винчестер и в какой каталог? По умолчанию все это "хозяйство" ставится на диск C, но если у Вас два диска, ИМХО, разумней ставить WWW сервер на отдельный физический диск. И работать будет быстрее, и в дальнейшем, для хакеров, еще одно препятствие. Сервер установлен, запущен, "устаканился", начинаем оптимизировать его для работы с сетевыми задачами. Тонкая настройка NT4. Настройку сервера начните с BIOS Вашего компьютера. Убедитесь, что версия Вашего BIOS актуальна, если нет - на сайт производителя, и скачайте свежий. Хуже не будет, а вот лучше - весьма вероятно. Установите все настройки, по умолчанию и приступайте. На что акцентировать внимание. Настройки циклов чтения-регенерации памяти, режимы шин. Отключайте всю не используемую переферию, не надейтесь на PnP, лучше "руками" прописать настройки по адресам и прерываниям. Осторожней с Shadow адресами, в случае с IDE винчестерами на "корявых" материнских платах можно потерять информацию. Если у Вас SCSI - отключите on-board IDE controller, если IDE - используйте все возможности вашего винчестера, но помните, что винчестеры на втором канале могут работать неустойчиво в режиме UDMA. Отключите дисковод. А всю "зеленку" в disable. В генеральных настройках разрешите машине стартовать при ВСЕХ ошибках. В последствии это позволит удаленно перезагружать компьютер при отсутствии клавиатуры и монитора. Поставьте supervisor password на доступ к настройкам BIOS (от лукавого). Ну как, NT загружается? Странно :-)) . Владельцам SCSI винчестеров советы давать не будем, т.к. настройка SCSI HDD на максимальную производительность - отдельная толстая книжка. Настройка операционной системы. Убедитесь в том, что Вы используете самые свежие версии драйверов устройств. Если не уверены в этом, - в Интренет и скачивайте. К большинству драйверов (особенно старых) есть файл - инструкция, где оговорено что исправить в registry, если чего случилось, не поленитесь и прочитайте. Если драйверы устройств (сетевая карта, HDD) позволяют чего-либо кэшировать, то кэшируйте! Отдельные параметры сервера можно настроить при помощи визуальных инструментов. Идем в контрольную панель и в разделе система - быстродействие вносим необходимые изменения:
Сервисы:
По мелочевке:
На этом возможности визуальных инструментов исчерпаны и далее будем работать с registry. В каталоге /system32 находится наш главный инструментарий regedit32.exe. При работе с регестри будьте предельно внимательны, изменив какой-либо ключик можно получить просто ошеломляющий результат, и в прямом, и в переносном смыслах. НО, мы еще не установили заплатки. Microsoft оформляет программные заплатки и обновления к продуктам в виде сервис-паков. На сегодня самый свежий - SP3. SP4 находится в процессе тестирования, и похоже, SP4 - это NT5 :-) . К сервис пакам прилагаются еще и post-fixes. Где взять сервис пак? Ну естественно на ftp://ftp.microsoft.com/. Перемещаемся на FTP - сервер Микрософта и выкачиваем в соответствии с приводимой ниже таблицей.
Внимательно прочитайте артикли к каждому из фиксов. Отдельные заплаты Вам просто не нужны, а в некоторых случаях они могут привести к "падению" системы. Фиксы к IIS4 Вам понадобятся только после установки IIS4. Если Вы не планируете устанавливать IIS4, а решили остановиться на IIS3.0 то не нужно выкачивать их. 3 Установка и настройка IIS. После установки SP3 сервер IIS2 из поставки NT4 "проапгрейдится" до сервера IIS3. Определяемся - будем работать на этой версии или двинемся дальше. Если Вы решили остановиться на IIS3.0 то :
В случае, если вы будете что либо изменять в конфигурации компьютера и при этом использовать дистрибутив NT4 не забудьте переустановить SP3 и Fixes. Если вы решили установить IIS4, то скачивайте Option Pack 4.0 При установке компонент опшен-пака не ставьте того, что Вам не знакомо. Мне понадобился по началу IIS4 со всей документацией, ADO, RDS, FTP. Index Server я не ставил, т.к. есть решения и по круче, например от Яндекса или от Медиа Лингвы. Опять таки, после установки IIS4, ставим соответствующие Fixes. Перезагрузка прошла успешно, NT "пропатчена" и "профиксена", начинаем оптимизировать. Направление оптимизации системы и WWW сервера зависит от того, какие задачи будут выполняться. В частности, будем ли мы использовать базы данных, а если будем, то какие именно? Каким будет сайт, его размер. Скорость и тип линии, по которой мы соединяемся с провайдером и еще много и много чего, в том числе: количество и тип процессоров , их загруженность, размер RAM и скорость винчестера. В таблице систематизированы типовые решения для IIS4.
Примечание. Все значения - "DWORD". Высокий ObjectCacheTTL работает лучше всего для узлов с маленьким числом "популярных" файлов. Если. Если число часто требуемых файлов большое, высокий ObjectCacheTTL не поможет. IIS будет стараться оставить в кеше большее количество файлов и, в итоге, кэш будет заполнен,что замедлит открывание файлов. Установка высокого TTL полезна только в том случае, когда файлы многократно используются в пределах TTL периода. Используйте параметр OpenFilesInCache, чтобы ограничить число открытых файлов . Если Вы будете использовать лог - файл:
Базы данных. Настройка базы данных на максимальную производительность хорошо описана здесь , а также здесь и здесь. Прежде чем приступить к оптимизации скорости доступа к базе нормализуйте саму базу данных. Устанавливайте базы на отдельные винчестеры и не размещайте базы данных в пределах root каталогов. Для обращения к базе используется ODBC, и нет необходимости выставлять на всеобщее обозрение файл с базой, размещая его в расшаренном каталоге (утащат :-))). Используйте высокопроизводительные базы данных. На пример чат Samara Pub использует Oracle, http://www.actiweserwerpages.com/ - SQL. Для простых задач и не шибко больших объемов - достаточно Access. 4 Удаленное управление и администрирование WWW сервера.Сервер установлен, теперь стоит позаботиться об удаленном управлении Вашим сервером. Нам необходимо удаленно:
В итоге, у провайдера можно будет появиться ОДИН раз - установить компьютер, причем без монитора и клавиатуры, пускай себе "жужжит" :-) Первые два пункта легко осуществимы.У IIS 4.0 в комплекте поставки имеется HTML версия Администратора.Она позволяет удаленно администрировать WWW сайт. Для администрирования NT4 нам понадобится другой администратор - Web Administrator 2.0 for Windows NT Server С его помощью можно:
Штука серьезная и в хозяйстве нужная. Внимательно прочитайте документацию, особое внимание уделите секретности и правам доступа к административным сайтам. Закачка информации на WWW - сайт. ИМХО - лучше FAR ничего не найти. Из альтернатив - фирменные средства от Microsoft. Web Publishing Wizard и Front Page 98. FP98 можно ругать, можно им не пользоваться вовсе, но для оперативного управления и размещения информации на сайте пакет удобен, особенно, если Вы - начинающий. В состав FP-98 включен пакет FP Administrator Form. C его помощью можно создавать и администрировать сайты и страницы, созданные непосредственно в FP98. FP98 я описывать не буду, читайте хелп. Еще один хороший инструмент - Fusion. Причем, производители бесплатно рассылают CD-ROM с программой, "на посмотреть". На использования FAR для закачки данных на сайт остановлюсь подробней. Использовать его следует совместно с IIS Администратором. Для закачки необходимо:
Не оставляйте по окончании работы FTP сайты открытыми, удалите их, и не забудьте восстановить анонимный доступ на Ваш основной FTP сайт. Для удаленного управления базами данных, и удаленного запуска программ так же будем использовать ASP. Вот тут Вы можете скачать специальный пак в котором реализованы эти функции управления.
Вот пожалуй и все. Чаще меняйте пароли. Удачи Вам! Источник: http://tarantul2.infosys.ru/
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Copyright c 2000г. "Internet Zone" & Nik Romanov, info@izcity.com |