Magazine - створення особистого веб-сервера основні поняття і технології

Передмова

вступ

Кожен новий користувач інтернету досить рано починає розуміти, що з'являється в його навігаторі інформація скачується з сервера. Також він дуже швидко засвоює, що різні сайти, швидше за все, розташовані на різних серверах. Але що таке сервер, як він виглядає, і як відрізнити його від будь-якого іншого предмета, знають, виявляється, далеко не всі. Розповіді людей, які бачили сервер своїми очима, інтригують. З цих оповідань можна зрозуміти, що сервер - це суперкомп'ютер з двома процесорами, розташований в спеціальному підвалі під замком, а всемогутній адміністратор регулярно "тельнетітся" до свого дітища, щоб переглядати логи і відображати хакерські атаки, подібно до героя зоряних воєн. Все це правда, але кількість питань вона не зменшує.

Що таке сервер

Почнемо з визначення. Сервер (від to serve - служити) - це програма, здатна приймати запити від інших програм і видавати їм відповідь; тобто, що обслуговує інші програми. Припустимо, що у нас є програма calc.exe, здатна розуміти запити у вигляді математичних виразів і видавати результат обчислення цих виразів. Це буде самий що ні на є типовий сервер! Програма, здатна робити запити до іншої програми і отримувати від неї відповідь, називається клієнтом.

У слові "веб-сервер" приставку "веб-" часто відкидають для стислості, що вносить остаточну плутанину в термінологію. Давайте для ясності згадаємо, що терміном "сервер" позначають: програму-сервер, комп'ютер-сервер, а в окремих випадках - програму-веб-сервер, комп'ютер-веб-сервер, програму-сервер баз даних і т.д.

Теорія і практика кліентсерверного взаємодії

Отже, сенс життя програми-сервера - обслуговувати програми-клієнти. Як одна програма може звернутися до іншої? Сучасні операційні системи (Windows, * NIX і ін.) Надають для цих цілей два основних засоби: канали (pipes) і сокети (по-російськи - розетки). Причому за допомогою сокетів (я буду вживати цей американізм через загальний нерозуміння російських слів) клієнт може звернутися не тільки до сервера, запущеного на тому ж комп'ютері, де він сам, але і до розташованого на іншому комп'ютері, доступ до якого здійснюється через мережу. Всі мережеві протоколи (HTTP, FTP.) Припускають клієнт-серверне взаємодія тільки через сокети.

Будь-яка програма може відкрити сокет, присвоївши йому номер, званий номером порту. Між двома будь-якими відкритими сокетами (портами) можливо перетікання інформації. Як правило, сервер відкриває порт з постійним номером (щоб клієнти завжди знали, куди звертатися) на самому початку своєї роботи, а клієнт відкриває порт з довільним мінливих номером (якщо один номер зайнятий - вибирається інший) безпосередньо перед транзакцією і закриває порт після неї. Деякі програми поєднують в собі функції сервера і клієнта, наприклад, ICQ в якості сервера очікує нові повідомлення, а в якості клієнта сама посилає повідомлення іншим примірником ICQ, запущеного на іншому комп'ютері.

До речі, через внутрішню помилку програма може видати не те, що у неї запросили. Наприклад, та ж ICQ (а помилок в ній тьма) може раптом видати віддаленого клієнту вміст якого-небудь файлу на вашому комп'ютері (а цей файл може містити якийсь ваш пароль).

Які порти відкриті у вас в даний момент, і хто до них підключений, можна подивитися в фаірвола (якщо ваша фаірвола підтримує таку можливість) або утилітою "fport". Якщо запустити ICQ, то в списку портів ви виявите щось на кшталт "ICQLITE.EXE TCP all: 4752", тобто, відкритий порт 4752 (перевірте).

і побачимо на екрані приблизно наступне:

Зробивши це, ви (в залежності від версії вашого тельнета) могли побачити порожній екран. Надрукуйте в ньому запит, який хочете послати сервера. наприклад:

Чи не дивуйтеся, якщо набирається вами текст не показується на екрані. В кінці треба зробити два перекладу рядка. І результат повинен бути приблизно таким:

а можна IP в шістнадцятковому або вісімковому поданні.

Для довідки: портом за замовчуванням для протоколу SMTP є 25, POP3 - 110, FTP (дані) - 20, FTP (управління) - 21, NNTP - 119. [2].

Установка і настройка серверного ПО

Для установки IIS зайдіть в меню "пуск", виберіть "настройка", і відкрийте "панель управління". Викличте "установка і видалення програм". Натисніть на кнопку "додавання і видалення компонентів Windows". Тепер ви повинні бачити "майстер компонентів Windows" зі списком компонентів, які можна відзначати пташкою (галочкою), і серед них повинен бути IIS. Виділіть IIS, і натисніть кнопку "склад". У складі відзначте пташками всі компоненти, які вважаєте корисними (можна взагалі все). Головне - відзначити "веб-сервер", "документація", "загальні файли", і "оснащення IIS". Можете вибрати FTP-сервер, якщо він вам потрібен, хоча особливої ​​користі від нього, якщо є HTTP-сервер, я не бачу. А ось "служба SMTP" - дуже корисна річ (правда про неї я в цій статті не розповідаю).

Адміністрування веб-сервера

Адміністрування веб-сервера IIS включає в себе зміну таких параметрів:

Експлуатація веб-сервера

Вийти з ситуації можна, придбавши доменне ім'я (domain name). Доменні імена - це імена на кшталт "google.com", кожне з яких асоційоване з певним IP. Щоб перевести доменне ім'я в IP, операційна система використовує сервери DNS (Domain Name Service), які зазвичай розташовані у провайдерів інтернету.

Доменне ім'я насправді складається з декількох імен, розділених крапкою. Саме праве називається ім'ям першого рівня, або зоною. Є зони загальні (com, net, org, info) є тематичні (edu, gov, mil, biz, travel), а є - регіональні (ru, ua, us, ca, uk та ін). Зліва від імені першого рівня йде ім'я другого рівня, потім третього і т.д. Власник імені рівня n може створювати необмежену кількість будь-яких імен рівня n + 1 всередині свого.

Перше, що робить індексує робот - запитує файл "robots.txt" з кореневої директорії сервера. Якщо його немає, то ваш сайт буде проіндексований (цілком, якщо так вирішить робот). Якщо robots.txt існує, то він повинен містити інформацію про те, які частини сайту яким роботам індексувати не можна. Синтаксис цього файлу описаний на сторінці www.robotstxt.org/wc/exclusion-admin.html.

На своєму сервері функціонально ви ні в чому не обмежені і можете встановити все, що завгодно: форум (наприклад, популярний безкоштовний форум "phpbb"), базу даних, або сервер знайомств. У власників власного сервера набагато більше можливостей, ніж у власників платного хостингу на загальному сервері. Ваші скрипти можуть вдаватися до допомоги будь-яких програм. Але роблячи свій сервер, ви берете на себе турботу про його безпеку. Пам'ятайте, злочинець, який зламав ваш комп'ютер, може отримати або зіпсувати будь-які дані на вашому жорсткому диску.

Наостанок хочу побажати вам, щоб ваш сайт вніс вагомий внесок у культурне життя інтернету! Успіхів!

література

[1] Linux Network Administrators Guide (Olaf Kirch) http: /sec.pmg17.vn.ua/teacher/nag-20/lnag.htm
[2] Програмування на Java. +1001 рада. (Марк С. Чен, Стівен В. Гріфіс, Ентоні Ф. Ізі)