Строим свой WWW сервер с ноля
Все, что Вы здесь прочтете, основывается на субъективном взгляде на вопрос
создания и настройки сервера, ни в коем случае не претендует на полноту и не
может трактоваться как истина в последней инстанции. Спор о том, какая
операционная система или какой сервер лучше, разрешит время.
В этой статье я в краткой форме расскажу о том, как я строил
свой 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 .
Если баз данных на сервере не будет, то прикинем средний размер
странички и сколько страничек всего будет : по опыту - большие сайты занимают на
удивление мало места, так, например, сайт 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 - файлов и все это хозяйство
разрастается :-)).
Ну что, посчитаемся.
Требования к компьютеру.
Компьютер |
Задачи |
90 MHz PentiumR, 78 Mb RAM, SVGA. 400 Mb HDD. |
NT4 + IIS без баз данных |
Собираем компьютер.
Процессор.
Ни в коем случае не разгонять. Кэш - чем больше тем лучше. Чей
процессор? Тут я не в праве что-либо советовать, дело вкуса, у меня 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) обеспечит Вам
секретность;
надежность;
приемлемую скорость, превышающую скорость FAT при больших объемах дисков.
Интересная статья об устойчивости 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) позволяют чего-либо кэшировать, то
кэшируйте!
Отдельные параметры сервера можно настроить при помощи
визуальных инструментов.
Идем в контрольную панель и в разделе система - быстродействие
вносим необходимые изменения:
Создаем файлы подкачки на каждом физическом диске. Размер каждого
минимально равен размеру вашей оперативной памяти, а вот максимально: гляньте
вот здесь. Microsoft рекомендует RAM + 11 Mb.
Быстродействие приложений делаем максимальным, для этого "ползунок"
быстродействия переместим в крайнее правое положение.
В свойствах локальной сети выбираем в сервисах Server и двойным щелчком
открываем его свойства. Выбираем опцию Maximaze Throughput for Network
Applications и жмем на ОК.
Что прописать в файле boot.ini - дело вкуса, у меня его вообще нет (удален
за ненадобностью, хотя есть случаи, когда в нем ставят тайм-аут 20 минут ..).
Сервисы:
Заходим в сервисы и отключаем License Logging сервис. Дабы ему было
неповадно загружаться ставим Disable.
Не устанавливайте лишних сервисов и устройств!
Если машина не в конфигурации PDC и основная задача - это WWW - сервер, то
отключите Browser сети, а сервер при установке конфигурируйте как Stand Alone.
По мелочевке:
Отключите ВСЕ обои и установите скрин савер - black screen.
Вычистите каталог STARTUP. Ни каких всплывающих панелей и кнопочек! Храни
Вас бог от ICQ и AOL. Вы ведь серьезно взялись за сервер, не так ли?
На этом возможности визуальных инструментов исчерпаны и далее
будем работать с 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 то :
Идем на Microsoft и скачиваем ASP1b Это где-то тут. http://www.microsoft.com/iis
ASP - это библиотека, кипа документации и много-много
воображения :-) . Скрипт - "енжина", движка, мотор обрабатывающий на стороне
сервера последовательность команд и возвращающий клиенту HTML - код в ответ на
действия клиента в контексте задачи. ASP позволит оживить сайт, и сделать его
содержимое динамическим.
Ниже - табличка эволюции ASP.
ASP |
ASP |
Asp.dll |
Asp.dll |
Asp.dll |
version |
build |
version |
date |
size |
1.0 |
1.12.09 |
1.12.06 |
12/6/96 |
1.0a |
1.13.31 |
1.13.09 |
1/31/97 |
371,744 |
1.0b |
1.15.14 |
1.15.14 |
3/14/97 |
378,992 |
Если Вы по каким либо причинам не смогли найти пакет ASP, то
просто скачайте с FTP - сайта Microsoft свежую библиотеку и "пропишите" ее в
системе. Для этого - скопируйте ASP.dll в winntsystem32inetsrv и с
командной строки из этого каталога выполните 'regsvr32 ASP.dll '. Если пакет
найден, то просто запустите .exe и наслаждайтесь процессом, в итоге у Вас
будет и скрипт - енжина и документация.
Ставим необходимые "фиксы". Как минимум: Get Admin Fix, Teardrop2 Fix, Snc
Fix, SimpTCP Fix, SRV Fix, и все фиксы применительно к IIS3.0 и ASP (см
таблицу).
В случае, если вы будете что либо изменять в конфигурации
компьютера и при этом использовать дистрибутив NT4 не забудьте переустановить
SP3 и Fixes.
Если вы решили установить IIS4, то скачивайте Option Pack 4.0 При установке компонент опшен-пака не ставьте
того, что Вам не знакомо. Мне понадобился по началу IIS4 со всей документацией,
ADO, RDS, FTP. Index Server я не ставил, т.к. есть решения и по круче, например
от Яндекса или от Медиа Лингвы. Опять таки,
после установки IIS4, ставим соответствующие Fixes.
Перезагрузка прошла успешно, NT "пропатчена" и "профиксена",
начинаем оптимизировать.
Направление оптимизации системы и WWW сервера зависит от того,
какие задачи будут выполняться. В частности, будем ли мы использовать базы
данных, а если будем, то какие именно? Каким будет сайт, его размер. Скорость и
тип линии, по которой мы соединяемся с провайдером и еще много и много чего, в
том числе: количество и тип процессоров , их загруженность, размер RAM и
скорость винчестера.
В таблице систематизированы типовые решения для IIS4.
Генеральные установки |
Действия |
Решения |
Удаляем не используемые "маппинги". |
Microsoft Management Console -> Web sites (virtual servers) ->
Right-click -> properties -> Home Directory -> Application
Settings section -> Configuration button. Удаляем все маппинги кроме
тех, которые будем использовать, как правило, остается только .asp Если Вы
не нашли ни одного знакомого Вам расширения, все равно оставьте .asp |
Высвобождаем ресурсы IIS. |
Для сильно загруженных серверов: установите Performance
bar в положение More than 100,000. |
Microsoft Management Console -> Web sites (virtual servers)
->Right-click -> properties ->Performance Переместите ползунок в
право в положение More than 100,000. |
Перераспеделение ресурса процессора и системы с "простаивающих"
процессов на IIS. Примечание: Используйте эту установку только для
нагруженных сайтов. |
Лог файлы |
Если не используете лог - файлы, то отключите их. |
Microsoft Management Console -> Web sites (virtual servers)
->Right-click -> properties->снимите галочку Enable Logging. |
Высвобождает системные реурсы. |
Параметры протокола TCP - IP |
Настройка TCP параметров в registry. |
Использовать Regedt32. HKLMCurrentControlSet
ServicesTCPIP Parameters. Добавить value MaxUserPort в случае
его отсутствия и установить значение 0xfffe. Добавить value TcpWindowSize
в случае его отсутствия и установить значение 0x4470. |
Увеличение количества открытых портов и больший размер фрейма TCP
позволят повысить производительность протокола. |
Параметры для мультипроцессорных
систем |
Проверьте количество IIS threads.(потоки)
Для проверки глубины очереди и количества потоков
используйте Монитор. |
Если Ваша система имеет N процессоров и количество процессов в очереди
находится в пределах от N до 3N то все в порядке. Если не уверены -
оставьте значения по умолчанию. Для статических рабочих нагрузок. Вы
можете установить MaxPoolThreads в 1 и PoolThreadLimit равным числу
процессоров в вашей системе. |
Количество потоков должно быть таким, чтобы поступающие запросы не
оказались заблокированными Однако, каждый поток использует системные
ресурсы и может потенциально вызывать ненужные контекстные переключения.
Цель состоит в том, чтобы сбалансировать количество потоков и запросов к
IIS. |
Оптимизация для Статических
нагрузок |
Установка TTL (время жизни объекта в кэше) По умолчанию:
30 секунд |
Используйте Regedt32, HKEY_LOCAL_MACHINE System
CurrentControlSet ServicesInetInfo Parameters. Добавьте
value ObjectCacheTTL Установите то значение, которое пожелаете.
Определяется опытным путем, если не знаете что ставить, оставьте как
есть. |
Если ресурсов много а сайт маленький - установите 0xffffffff. Этим Вы
отключите очистку кеша. |
Установка OpenFileInCache - количество хэндлов в кэшэ.По
умолчанию: 1000 на каждые 32MB физической памяти |
Используйте Regedt32, HKEY_LOCAL_MACHINE System
CurrentControlSet Services InetInfo Parameters. Добавьте
value OpenFileInCache если оно отсутствует. Установите величину исходя из
количества памяти. |
Большие статичные сайты могут резко поднять производительность
увеличивая количество хэндлов в кэше. В этом случае обращение к файлам
будет производиться не на винчестера а непосредственно к файлам в памяти
компьютера. |
Оптимизация ASP |
Установите Processor
ThreadMax на минимум. (по умолчанию - 30) |
Используйте Regedt32, HKEY_LOCAL_MACHINE SYSTEM
CurrentControlSet Services W3SVC ASPParameters. Добавьте
ProcessorThreadMax Необходимо контролировать по монитору
производительность IIS. Если при уменьшении величины ProcessorThreadMax
производительность понизится - восстановите исходные параметры. |
Перераспределение процессов в мультипроцессорных системах сбалансирует
нагрузку. Хорошо написанные скрипты ASP используют многопоточность. |
Установите в AspScriptEngine
CacheMax значение Processor
ThreadMax, соответственно количеству процессоров в системе
(умножить исходное значение) По умолчанию: 30 |
Скрипты для изменения настроек в IIS4 хранятся в metabase. Путь:
/System32/ inetsrv/ adminisamples. Файл adsutil.vbs |
Данные настройки позволять енжине наиболее эффективно кэшировать
скрипт - файлы. |
Включите буферизацию для приложений ASP. |
Microsoft Management Console -> Web sites (virtual servers)
->Right-click -> properties -> Performance -> Home/Virtual
Directory property -> Configuration button ->App Options property
-> Enable Buffering option. |
Установка этой опции буферизует вывод ASP на браузер. Это позволяет
серверу передавать полный ответ в контексте задачи а не порцию
обработанных данных. |
Минимизируйте значение Session Timeout |
Microsoft Management Console -> Web sites (virtual servers)
->Right-click -> properties |
Экспериментальным путем выберите значение. У меня -
180 |
Примечание.
Все значения - "DWORD".
Высокий ObjectCacheTTL работает лучше всего для узлов с
маленьким числом "популярных" файлов. Если. Если число часто требуемых файлов
большое, высокий ObjectCacheTTL не поможет. IIS будет стараться оставить в кеше
большее количество файлов и, в итоге, кэш будет заполнен,что замедлит открывание
файлов. Установка высокого TTL полезна только в том случае, когда файлы
многократно используются в пределах TTL периода. Используйте параметр
OpenFilesInCache, чтобы ограничить число открытых файлов .
Если Вы будете использовать лог - файл:
размещайте его на самом скоростном устройстве
ИМХО правильней сбрасывать логи в базу данных - в последствии легче
анализировать (поля базы данных описаны в дакументации на IIS и даже есть
текстовый файл с телом SQL - запроса для создания необходимой таблицы).
Базы данных.
Настройка базы данных на максимальную производительность хорошо
описана здесь , а также здесь и здесь. Прежде чем приступить к оптимизации скорости доступа к
базе нормализуйте саму базу данных. Устанавливайте базы на отдельные винчестеры
и не размещайте базы данных в пределах root каталогов. Для обращения к базе
используется ODBC, и нет необходимости выставлять на всеобщее обозрение файл с
базой, размещая его в расшаренном каталоге (утащат :-))). Используйте
высокопроизводительные базы данных. На пример чат Samara Pub использует Oracle, http://www.actiweserwerpages.com/ - SQL. Для простых задач и
не шибко больших объемов - достаточно Access.
4 Удаленное управление и администрирование WWW сервера.
Сервер установлен, теперь стоит позаботиться об удаленном
управлении Вашим сервером.
Нам необходимо удаленно:
Администрировать NT4;
Администрировать WWW server.;
Управлять удаленно базами данных;
Осуществлять "закачку" информации на сайт и в базы;
Управлять файлами и каталогами;
Создавать и изменять записи в рег - файле;
Запускать DOS и WIN32 приложения.
В итоге, у провайдера можно будет появиться ОДИН раз -
установить компьютер, причем без монитора и клавиатуры, пускай себе "жужжит" :-)
Первые два пункта легко осуществимы.У 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 сайт. (В Администраторе IIS)
Отобразить на него Ваш wwwroot каталог, или каталог в который будем
закачивать файлы, разрешить запись в этот каталог, (снять галочку с опции FTP
"anonimous only"). После сохранения этот каталог будет доступен для записи.
Не оставляйте по окончании работы FTP сайты открытыми, удалите
их, и не забудьте восстановить анонимный доступ на Ваш основной FTP сайт.
Для удаленного управления базами данных, и удаленного запуска
программ так же будем использовать ASP. Вот тут Вы можете скачать специальный
пак в котором реализованы эти функции управления.
Вот пожалуй и все. Чаще меняйте пароли. Удачи Вам!
|