Контакти

Необхідний для роботи веб сервера. Веб-сервер (Web Server): для чого він потрібен, як влаштований і як працює. Клієнти для роботи з сервером

Як правило, у рядового користувача такі поняття, як «веб-сервер» або «хостинг», асоціюються з чимось абсолютно незрозумілим. Тим часом, нічого складного в цьому питанні немає. Спробуємо пояснити, що собою являє web server, навіщо він потрібен і як працює, особливо не вдаючись в технічні подробиці, а, так би мовити, на пальцях. Окремо зупинимося на питанні про те, як створити і налаштувати такий сервер на домашньому комп'ютерному терміналі або ноутбуці.

Що таке веб-сервер?

Найголовніше в даному питанні - зрозуміти, що сервер такого типу є не чим іншим, як комп'ютером в інтернеті з відповідним встановленим програмним забезпеченням.

Але це абсолютно не означає, що в домашніх умовах можна створити власну конфігурацію. Оскільки у нас більш поширеними є операційні системи Windows, питання про те, як створити веб-сервер на Ubuntu (Linux), розглядатися не будуть.

Для чого потрібні web-сервери?

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

Ось і виходить, що всі сторінки, присутні в інтернеті, зберігаються саме на веб-серверах, до яких з одного боку проводиться користувальницький запит або звернення встановленої програми, а з іншого - видається результат тим самим сервером, до якого проводиться спроба доступу.

Як це все працює?

Всі користувачі звикли, що для входу на якийсь ресурс в інтернеті (веб-сторінку), на якому розташовується інформація певного типу, в адресному рядку просто вводиться префікс www (або http) і подальше ім'я. Але ніхто не замислюється про те, яким чином web server розуміє запит і видає результат.

Насправді тут потрібно розрізняти поняття сервера і клієнта. У нашому випадку сторінка, розміщена в інтернеті, збережена саме на віддаленому сервері. Призначений для користувача комп'ютер виступає в ролі клієнта, від якого і проводиться звернення.

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

Найпопулярніші web-сервери

З усього серверного програмного забезпечення, як вважається, найпоширенішими є Apache і Microsoft IIS. Перший є більш популярним і в більшій мірі використовується в UNIX-подібних системах, хоча і може встановлюватися в середу Windows. Крім того, сервер Apache є абсолютно безкоштовним программрним забезпеченням і сумісний практично з усіма відомими операційними системами. Однак, як зазначається, призначене це ПО в основному для професійних програмістів і розробників.

Програмний продукт від Microsoft розрахований на середньостатистичного користувача, який встановити і налаштувати такий веб-сервер для Windows зможе без додаткової допомоги кваліфікованого фахівця.

Проте, якщо виходити з офіційної статистики, програмне забезпечення Apache використовує близько 60% всіх існуючих серверів, тому питання установки і настройки початкової конфігурації розглянемо саме на його прикладі.

Веб-сервер на домашньому комп'ютері: установка

Для інсталяції потрібно завантажити спеціальний серверний пакет, скорочено позначається як WAMP, в який входить три основних компоненти:

  • Apache - програмна оболонка сервера, яка може працювати самостійно, але тільки в разі відсутності на розміщуваних сторінках динамічного контенту.
  • PHP - мова програмування, що використовується надбудовами для управління серверами з динамічним вмістом на зразок WordPress, Joomla, Drupal.
  • MySQL - уніфікована система управління базами даних, яка використовується, знову ж таки, при створенні сайтів з динамічним контентом.

Інсталяцію можна зробити з пакета WampServer. Для цього досить слідувати вказівкам «Майстра», який на одній зі стадій запропонує вибрати інтернет-браузер, який буде використовуватися за замовчуванням.

Для цього потрібно буде перейти в папку з виконуваним файлом браузера (якщо це не Internet Explorer, зазвичай вона розташовується в директорії Program Files). Попутно сам браузер слід додати до списку дозволених брендмауера Windows. На фінішній стадії ставиться галочка навпроти пункту негайного запуску, після чого в системному треї з'явиться відповідний значок, на який потрібно натиснути і зміню вибрати запуск локального хоста (localhost).

Якщо все зроблено правильно, з'явиться домашня сторінка сервера. Далі буде запропоновано інсталювати додаткові компоненти (якщо цього не зробити, система видасть помилку). В основному інсталяція стосується додаткових надбудов, елементів і компонентів, які будуть використовуватися сервером надалі.

Приклад настройки і тестування сервера

Налаштування веб-сервера дещо складніше. Спочатку в меню системного трея вибирається перехід в папку WWW (місце зберігання надбудов або файлів HTML). Після цього прописати наступний текст в «Блокноті»:

WAMP тест!

Привіт!

"; ?>

Можете просто скопіювати текст в «Блокнот» і зберегти файл під ім'ям index.php в тій самій папці WWW (хоча можна обійтися і без того, оскільки цей крок застосовується виключно для перевірки локального хоста). Замість привітання можете вставити будь-який інший текст або фразу.

Потім в браузері потрібно оновити сторінку (F5), після чого на екрані з'явиться вміст. Але для інших комп'ютерів сторінка буде недоступна.

Щоб відкрити доступ, потрібно змінити файл httpd.conf, прописавши в розділі, який починається з наступні рядки:

Order Allow, Deny

замість післямови

Звичайно, що стосується розуміння суті функціонування або параметри системи домашнього веб-сервера, тут приведена тільки сама початкова і коротка інформація, так би мовити, для загального розуміння. Насправді ж все процеси є набагато складнішими, особливо в частині перетворення запитів і видачі відповідей, не кажучи вже про налаштування сервера в домашніх умовах. Якщо у користувача є бажання розібратися в цих питаннях, тут не обійтися хоча б без початкових знань тієї ж надбудови WordPress і мови PHP. З іншого боку, для публікації примітивних сторінок, що містять в основному тільки текстову інформацію, можна використовувати і ці початкові відомості.

Веб-сервер (web-server) - це сервер, який відповідає за прийом і обробку запитів (HTTP-запитів) від клієнтів до веб-сайту. В якості клієнтів зазвичай виступають різні веб-браузери. У відповідь веб-сервер видає клієнтам HTTP-відповіді, в більшості випадків - разом з HTML-сторінкою, яка може містити: всілякі файли, зображення, медіа-потік або будь-які інші дані.

Також веб-сервер виконує функцію виконання скриптів, наприклад, таких як CGI, JSP, ASP і PHP, які відповідають за організацію запитів до мережних служб, баз даних, доступу до файлів, пересилання електронних повідомлень і іншим додаткам електронної комерції.

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

Клієнт користувача, яким переважно є веб-браузер, передає веб-серверу запити на отримання ресурсів, позначених URL-адресами. Ресурси - це HTML-сторінки, цифровий медіа контент, медіа-потоки, різні зображення, файли даних, або будь-які інші дані, необхідні клієнту. У відповідь веб-сервер передає клієнту запитані нею дані. Цей обмін відбувається за допомогою протоколу HTTP.

HTTP (англ. HyperText Transfer Protocol - протокол передачі гіпертексту) - це мережевий протокол прикладного рівня передачі даних. Основним принципом протоколу HTTP є технологія «клієнт-сервер», що забезпечує взаємодію мережі й користувача.

У разі малої організації веб-сервер може бути цілісною системою, яка буде складатися з: HTTP-сервера - служить для запитів до веб-сторінок; FTP-сервера - застосовується для завантаження файлів через Інтернет; NNTP-сервера - виконує доступ до груп новин; SMTP-сервера - для електронної пошти.

Історія

Винахідником першого веб-сервера вважається британський вчений Тім Бернерс-Лі. Працюючи з 1980 року в Європейській лабораторії ядерних досліджень (фр. Conseil Européen pour la Recherche Nucléaire, CERN) консультантом з програмного забезпечення, він приступив до своїх розробок. У Женеві він для своїх власних потреб розробив програму «Енквайр» (англ. Enquire - питати), яка використовувала випадкові асоціації для зберігання даних і заклала концепцію для основи Всесвітньої павутини.

У 1989 році Тім Бернерс-Лі, працював над внутрішньою мережею організації CERN і запропонував заснувати глобальний гіпертекстовий проект, який полягав в публікації гіпертекстових документів, пов'язаних між собою гіперпосиланнями. Впровадження цього проекту, на його думку, полегшило б об'єднання, пошук і обмін інформацією для вчених CERN. Для здійснення проекту Тім Бернерс-Лі разом зі своїми помічниками винайшов ідентифікатори URI і URL, протокол HTTP, а також мову HTML. Всі ці технології тепер широко застосовуються в сучасному Інтернеті і без них вже не обійтися.


В результаті виконання цього проекту Бернерс-Лі розробив перший у світі веб-сервер, що називався «httpd», а також перший в світі гіпертекстовий веб-браузер для комп'ютера NeXT, що отримав назву WorldWideWeb (Всесвітня павутина).

Перший веб-браузер працював на платформі NeXTSTEP - об'єктно-орієнтованої, багатозадачною операційній системі, і був розроблений за допомогою Interface Builder. Інтерфейс веб-браузера був дуже простим, і майже вся інформація відображалася в текстовому форматі тільки з декількома зображеннями. Крім стандартного протоколу FTP, Тім Бернерс-Лі використовував новий, винайдений ним, протокол HTTP. У період з 1991 по 1993 рік Бернерс-Лі удосконалив технічні властивості своїх нових розробок: ідентифікаторів URI і URL, протоколу HTTP і мови HTML і опублікував їх. Пізніше веб-браузер був перейменований в "Nexus", щоб не виникло плутанини з назвою операційної системи, на якій був розроблений браузер і його назвою.

Перший в світі веб-сервер і перший веб-браузер працювали на персональному комп'ютері NeXTSTEP; Зараз цей комп'ютер виставлений в музеї CERN (Мікрокосм).

Перший в світі веб-сайт Тім Бернерс-Лі розмістив на адресу http://info.cern.ch; Зараз цей сайт зберігається в архіві. Перший сайт з'явився в Інтернеті 6 серпня 1991 року. На цьому веб-сайті було дано:

  • опис Всесвітньої павутини;
  • інструкція правильної установки веб-сервера;
  • інформація про те, як придбати веб-браузер;
  • інша технічна інформація.

Цей сайт також був перший в світі інтернет-каталог. Бернерс-Лі розмістив на ньому список посилань на інші сайти і регулярно оновлював його.

12 грудня 1991 року в Стенфордському центрі лінійного прискорювача (SLAC) в США був встановлений перший в світі веб-сервер.

Основні і додаткові функції

Всі основні і додаткові функції веб-сервера:

  • Прийом запитів від веб-браузерів по протоколу стандарту HTTP з використанням мережевих протоколів TCP / IP;
  • Виконання пошуку та відсилання файлів з гіпертекстом або будь-яких документів в браузер по протоколу HTTP;
  • Обслуговування та обробка запитів, типу: mailto, FTP, Telnet і т. П .;
  • Запуск прикладних програм на веб-сервері з наступною передачею і поверненням параметрів обробки через стандарт інтерфейсу CGI;
  • Робота і обслуговування навігаційних карт зображень (Image map);
  • Адміністрація та оперативне управління сервером;
  • Авторизація користувачів і їх аутентифікація;
  • Ведення реєстраційного журналу звернень користувачів до різних ресурсів;
  • Автоматизована робота веб-сторінок;
  • Підтримка сторінок, які генеруються динамічно;
  • Підтримка роботи протоколу HTTPS для захищених з'єднань з клієнтами.

Опис роботи веб-сервера

Веб-браузери підтримують зв'язок з веб-серверами за допомогою протоколу передачі гіпертекстових повідомлень (HypertextTransferProtocol, HTTP). Це простий протокол запитів та відповідей для пересилання інформації з використанням протоколу TCP / IP. Веб-сервер отримує запит, виявляє файл, посилає його браузеру, а потім розриває з'єднання. Графічна інформація, яка є на сторінці, обробляється таким же чином. Далі настає черга веб-браузера - вивести на монітор користувача завантажений з мережі HTML-документ.

Крім HTML-сторінок і графіки, веб-сервери можуть зберігати будь-які файли, в тому числі текстові документи, документи текстових процесорів, відеофайли і аудиоинформацию. На сьогоднішній день, якщо не враховувати анкет, які заповнюють користувачі, основна частина веб-трафіку передається в одному напрямку - браузери зчитують файли з веб-сервера. Але це положення зміниться після загального прийняття описаного в проекті HTTP 1.1 методу PUT, який дозволяє записувати файли на веб-сервер. Сьогодні метод PUT використовується в основному користувачами, що створюють веб-сторінки, але в перспективі він може стати в нагоді і іншим користувачам для зворотного зв'язку з інформаційними центрами. Запити методом PUT набагато простіше, ніж звичайна POST завантаження файлів на веб-сервер.

На веб-сервері також виконують свою роботу різні додатки, найбільшу популярність серед яких отримали пошуковики і засоби зв'язку з базами даних. Для розробки цих додатків застосовуються такі стандарти, як загальний шлюзовий інтерфейс (CommonGatewayInterface, CGI), мови сценаріїв JavaScript, а також мови програмування Java і VisualBasic. Крім інтерфейсу стандарту CGI, деякі фірми-розробники веб-серверів створили інтерфейси прикладного програмування (API) такі як, наприклад, Netscape Server API і Internet Server API, які створені компаніями Microsoft і Process Software AG. Ці інтерфейси дозволяють розробникам безпосередньо звертатися до конкретних функцій веб-сервера. Деякі веб-сервери мають сполучною програмним забезпеченням (middleware) для підключення до баз даних, робота з якими може зажадати професійних знань в програмуванні.

Базові функції пошуку допомагають користувачам відсортовувати потрібну їм інформацію, а утиліти для зв'язку з базами даних надають користувачам веб-браузерів доступ до цієї інформації.

Огляд веб-серверів

Критеріями для вибору веб-сервера можуть бути різні характеристики: установка, настройка конфігурації, управління сервером, адміністрування, управління розміщується на сервері інформації, захист цієї інформації, контроль доступу, функції розробки додатків, а також продуктивність.

Більшість веб-серверів інсталюється легко і швидко.

Найскладніша частина процесу інсталяції - це проведення конфігурації декількох імен доменів на одному фізичному пристрої або іншими словами організація віртуальних серверів.

Веб-сервери мають засоби для управління інформаційним модулем, що характеризують загальну організацію веб-вузла, а також володіють інструментами для перевірки правильності внутрішніх і зовнішніх гіпертекстових зв'язків. Пакет LiveWire фірми Netscape Communications, який поставляється разом з Novell Open Enterprise Server (OES) і додатково пропонований з сервером FastTrack, володіє інструментом керування вузлом, яка формує список всіх зв'язків обраної сторінки. Ця утиліта також надає загальний перелік усіх некоректних зв'язків, які виявляє. Програма WebView компанії «O" Reilly & Associates »володіє такою ж функцією і може виводити на екран докладний дерево файлів, в якому все некоректні зв'язку виділяються червоним кольором.

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

Зі збільшенням популярності веб-серверів і все більш широкого їх застосування в інтрамережі, посилюється комерційна активність в Інтернеті, тому зростає важливість захисту інформації. Найчастіше системи забезпечення безпеки веб-сервера виявляються або надмірними, або недостатніми для сучасних интрасетей. Якщо необхідно обмежити доступ до певної інформації всередині компанії, тобто вибір між використанням незашифрованих паролів, які передаються по каналах зв'язку, і застосуванням протоколу SSL (англ. Secure Sockets Layer - рівень захищених сокетів) - складного і повільного методу, який використовується для шифровки паролів і даних.

Для того щоб організувати роботу окремих користувачів і їх груп можуть бути використані внутрішні програми сервера або певні функції операційної системи. Для того щоб організувати роботу окремих користувачів і їх груп можуть бути використані внутрішні програми сервера або певні функції операційної системи. В пакетної службі Microsoft IIS передбачено застосування засобів базової мережевої ОС Windows NT.

Пакет NetWare Web Server фірми Novell, Inc. цілком інтегрований зі службами адресних каталогів (NetWare Directory Services, NDS). Налагоджувати роботу користувачів із загального центру зручно, але це може нести загрозу безпеці. Паролі поширюються по каналах зв'язку в незашифрованому вигляді, і якщо їх перехоплять, то піддасться ризику не тільки веб-сервер, але і безпеку всієї мережевої операційної системи.

Розробка додатків - це одна з основних функцій веб-сервера. Середовище розробки додатків і інструменти підключення до баз даних дуже важливі для розширення можливості веб-сервера, оскільки розробка додатків залежить від різних своєрідних деталей інтерфейсу прикладного програмування (англ. Application programming interface, API), а також від особливостей мов програмування або індивідуальних переваг програмістів.

Веб-сервери можуть обслуговувати різні системи від малої интрасети підприємства до великих інформаційних веб-центрів, якими користуються мільйони людей.

Для малих корпоративних интрасетей найкраще підійде пакет Internet Information Server (IIS), створений і поширюваний компанією Microsoft. IIS відрізняється досить простий інсталяцією і простими налаштуваннями конфігурації. Цей пакет веб-сервера відмінно інтегрований із засобами управління доступом, інструментом контролю параметрів системи Performance Monitor (Системний монітор), а також з програмою перегляду журналу подій Event Viewer. Ще веб-сервером IIS видається дещо інструментів для динамічної передачі інформації з баз даних. IIS відрізняється дуже високою швидкодією. Компоненти IIS підтримують такі протоколи, як: HTTP, HTTPS, FTP, NNTP, SMTP, POP3.

З метою полегшити створення інформаційних веб-центрів, з більшістю веб-серверів поставляються утиліти і інструменти для управління змістовним матеріалом. Крім HTML-редакторів і конвертерів форматів документів, найкориснішими є засоби контролю URL, які гарантують працездатність всіх гіпертекстових зв'язків вашого веб-вузла.

Будь персональний комп'ютер, який підключений до мережі Інтернет, можна зробити веб-сервером, якщо встановити на нього спеціальне серверне програмне забезпечення.

Найпоширеніші веб-сервери: Apache (компанія Apache Software Foundation), IIS (компанія Microsoft) і iPlanet server (від компаній Sun Microsystems і Netscape Communications Corporation). Зараз на ринку програмного забезпечення для веб-серверів, існує величезний вибір продуктів, як комерційних, так і безкоштовних.

Одним з найбільш поширених веб-серверів, є Apache від компанії Apache Software Foundation. За орієнтовними підрахунками, він використовується на 65% всіх веб-серверів в світі. Одна з основних переваг програмного забезпечення Apache - безкоштовне розповсюдження. Розробники регулярно усувають знайдені помилки і надають хорошу підтримку користувачів. Даний веб-сервер підтримує велику кількість модулів, утиліт і доповнень. Оскільки з самого початку Apache розроблявся як програмне забезпечення для адміністраторів і досвідчених користувачів, тобто недолік - складність настройки і обслуговування для недосвідчених вебмайстрів.

Далі за популярністю йде веб-сервер IIS від компанії Microsoft. За даними компанії Netcraft веб-сервер IIS становить 12,46% від загального числа веб-серверів. Цей продукт входить до складу серверного програмного забезпечення сімейства Windows NT. Його основні переваги - стабільність, висока швидкість роботи, можливість підключення додаткових модулів. Компанія Microsoft прагне до того, щоб будь-який користувач зміг користуватися її продуктами без допомоги фахівців, якщо йому потрібно вирішити стандартні завдання. Тому система IIS дуже проста в установці, налаштуванні і обслуговуванні. Веб-сервер підтримує технологію.NET, набирає, останнім часом, популярність в середовищі розробників і професійних користувачів. Ці гідності виводять веб-сервер IIS на новий рівень і можна очікувати, що його використання зросте.

Інші відомі веб-сервери:

  • nginx - вільний веб-сервер і поштовий проксі-сервер, що розробляється Ігорем Сисоєва. Простий, швидкий і надійний сервер. Працює в Linux та інших Unix-подібних операційних системах, а також в Windows. Користується популярністю на великих веб-сайтах;
  • lighttpd - вільний веб-сервер. Розробник Ян Кнешке. Швидкий і безпечний веб-сервер. Працює в Linux та інших Unix-подібних операційних системах, а також в Windows;
  • Google Web Server - веб-сервер, який заснований на Apache і використовується компанією Google для організації своєї веб-інфраструктури;
  • Resin - вільний веб-сервер і сервер додатків для Java. Розробник - компанія Caucho Technology Inc .;
  • Cherokee - вільний веб-сервер, який управляється тільки через веб-інтерфейс. Написаний на мові програмування Сі;
  • Rootage - веб-сервер, який написаний на мові програмування Java. Працює в Linux і Windows;
  • THTTPD - простий, маленький, швидкий і безпечний веб-сервер. Розробник компанія ACME Labs Software.

Клієнти веб-сервера

Зазвичай, клієнтом є веб-браузер. Але також звертатися до веб-сервера можуть і інші різноманітні пристрої і програми:

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

Веб-хостінг індустрія, вимагає, по крайней мере, деяких базових знань для работи.Есть кілька термінів веб-хостингу, і кожен веб-майстер повинен бути в курсе.Однім з найосновніших з них є: веб-сервер.Насправді, веб-хостинг побудований з web-серверів, що надають місце для вашого веб-сайту. Сервер HP Micro AMD N40L - це універсальний сервер, який може забезпечити платформу для організації та захисту бізнес-інформації, забезпечити ефективне спілкування з клієнтами і зробити більшу частину для вашого існуючого офісного обладнання та ресурсів. HP MicroServer є економічно ефективним стартовим сервером для підприємств з менш 10 клієнтами, і це може вивести ваш бізнес на новий рівень продуктивності і еффектівності.Чтоби дізнатися більше про сервер HP Micro AMD N40L, пройдіть по цьому посиланню http://vint.com.ua/product/computers/dir_3010558/dir_3010559 .

Веб-сервер може означати дві речі - комп'ютер, На якому розміщується веб-сайт і програма, Яка працює на такому компьютере.Поетому термін відноситься до веб-сервера як обладнання, так і програмне забезпечення . Ми розглянемо ці два види по одному.

Устаткування веб-сервера

Веб-сайт-це колекція веб-сторінок які представляють собою цифрові файли, які зазвичай написані з використанням мови розмітки гіпертексту HTML. Веб-сайт буде доступний всьому світу весь час, для цього він повинен бути збережений або на хостингу або на комп'ютері, підключеному до Інтернету в режимі 24/7/365. Такий комп'ютер називається Веб-Сервер (Зверніть увагу на перші літери у верхньому регістрі).

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

Існує ряд вимог для сервера комп'ютера - він повинен бути досить швидким, мати великий обсяг оперативної пам'яті і жорсткий диск з великим об'ёмом.Но найбільш важливо мати постійну адресу в Інтернет, також відомий як IP - адреса Інтернет-протоколу. Якщо IP адреса веб-сайту не буде знайдений і він буде працювати в автономному режимі - браузер буде відображати помилку не вдається знайти веб-сайт.

Програми та програмне забезпечення web-сервера

програми веб-сервера це програмне забезпечення, яке працює для веб-сайту на хостинг-сервер комп'ютері. Його основна мета: видавати веб-сторінки; це означає, що він очікує запити від web-браузерів (також відомих як клієнти ) І відповідає, посилаючи необхідні дані назад. Ця взаємодія клієнта і сервера відмітна частина роботи веб-сервера.

Є багато веб-серверних програм. Найвідомішою і популярною з них є Apache , Розроблена Apache Foundation.Apache не тільки безкоштовна, але вона також доступна для декількох операційних систем, включаючи Windows, Macintosh і Linux / Unix.

Ця стаття буде корисна тим людям, у яких вже є свій сайт, або які планують його відкрити. Особливо цікава стаття буде амбітно налаштованим веб-майстрам, які відчувають, що зоряний час їх проекту не за горами і хочуть підготуватися до напливу відвідувачів сторінки.

Навіть ті, хто поки тільки мріють про тисячі користувачів на своєму сайті, напевно задавалися питанням: "А скільки ж користувачів мій сайт витримає, якщо вони зайдуть одночасно?" Відразу пригадується відомий вислів "Хабраеффект" - явище відмови сайту, який виявився не готовий до численних переходах на нього після появи в інтернеті посилання.

Припустимо, що сайт вже є (або скоро буде): де ж його розмістити? Це повинен бути класичний хостинг або vps-сервер? Якщо vps, то який і як його краще налаштувати? А може бути взагалі немає ніякої різниці і простіше вибрати те, що подешевше? У цій статті ми розглянемо кілька варіантів і на практиці переконаємося, який з них підійде краще для нашого сайту.

Будемо експериментувати: ставити різні режими роботи сервера і заміряти продуктивність. Навантаження на сайт будемо імітувати за допомогою сервісу Loaddy.com. Там можна задати кількість користувачів, наростаючий тип навантаження і за графіком буде видно, як сервер реагує на них. Вважається, що один користувач генерує приблизно один запит до сайту протягом 10 секунд. Як випробуваного сайту візьмемо демонстраційний інтернет-магазин на cms moguta. Він буде заповнений тестовими «товарами», які виводяться на головну сторінку за кількома критеріями (тобто при формуванні сторінки йде робота з базою даних і т.п.). Так чи інакше, це дозволить порівнювати режими між собою.

В якості тестової майданчика створимо ВПС-сервер на ос Ubuntu. Конфігурація його буде. Будемо вважати, що саме такі сервери початкового рівня створюють в більшості випадків для нових проектів. Тестова версія інтернет-магазину буде доступна по ip адресою http://130.193.44.219/

Ще знадобиться класичний хостинг, на який ми також заллємо той же самий інтернет магазин, щоб провести випробування. Ви можете пройти наш шлях самі і провести такі ж тести на своєму проекті!

Так як в більшості випадків разом з vps пропонується панель управління, основні зміни налаштувань будемо виробляти в ній. На vps сервері нам доступно 3 режими його роботи:

  • Apache;
  • Apache в режимі CGI;
  • Nginx + php-fpm (без Апача).
Але спочатку проведемо випробування на хостингу:

Класичний недорогий хостинг

Помилки з'являються, коли кількість відвідувачів перевищує 50 чол. Хостинг перестає віддавати контент, при цьому, якщо зайти в панель управління хостингом, то ми можемо побачити приблизно наступне:

Ваш сайт піддавався обмеженням протягом останніх 24 годин. Ресурси процесора обмежувалися для Вашого сайту. Ви досягали меж по вхідним процесам (кількості одночасно запущених PHP і CGI скриптів, завдань за розкладом і консольних сесій) 126 разів.
Що ж, зрозуміло, хостинг є хостинг, тим більше недорогий. Можна, звичайно, знайти такий тариф, який буде надавати більше можливостей, але це все потрібно враховувати, якимось чином дізнаватися точні дані обмежень, причому у кожного хостинг-провайдера.

VPS: Apache

Наступний на черзі - наш тестовий ВПС з режимом апач, який до речі пропонується за замовчуванням, при установці панелі управління ISP.

Проблеми починаються, коли число користувачів перевалює за 90. Якщо ми зайдемо на наш сервер по ssh і подивимося в цей момент на список процесів по команді top, відсортоване за допомогою Shift + M (за кількістю споживаної пам'яті), то побачимо приблизно таку картину:

Ми бачимо, що процес apache2 розрісся на багато дочірніх і вони з'їли всю оперативку нашого vps сервера.

Тут потрібно зробити невелику ремарку. Справа в тому, що для сервера апач теоретично існує режим, який дозволяє замість цього великого числа дочірніх процесів для кожного з'єднання створити кілька так званих мультітредових, кожен з яких обслуговував би по кілька з'єднань. Називається цей режим worker, На відміну від дефолтного prefork. Але встановити його непросто, в панелях типу ISP це зробити неможливо, а якщо замислитися і спробувати це здійснити через ssh, то з'ясується, що для цього мало вимкнути prefork і включити worker, ще потрібна тредобезопасная версія php. А якщо використовуються модулі типу Zend або IonCube, то вони теж повинні бути тредобезопаснимі. Та й взагалі, офіційний сайт PHP не рекомендує встановлювати цей режим.

VPS: CGI

Давайте подивимося, що буде при використанні режиму CGI. Для цього потрібно в панелі управління ISP дозволити використовувати PHP в режимі CGI, це робиться в розділі «Облікові записи - користувачі - настройки для користувача».

Безрадісна картина вийшла. Сервер відмовляється видавати контент вже при 55+ відвідувачів, оперативна пам'ять вся з'їдена процесами "php". Далі йде спроба відновлення працездатності, але все одно все закінчується практично 100% відмовами.

VPS: Nginx + PHP-FPM

Настав час режиму, в якому сервер Apache не використовується зовсім, замість нього працює Nginx, а php обробляється модулем php-fpm. Якщо ви використовуєте панель управління ISP, то необхідно вирішити цей режим для користувача. Це також робиться в розділі «Облікові записи - користувачі - настройки для користувача». Також цей режим повинен бути доступний в розділі «Налаштування - Можливості - Веб-сервер (www)».

Те що потрібно! 100% доступності, при цьому швидкість завантаження і час відповіді сервера знаходяться на прийнятних рівнях, хоч і зростають з ростом навантаження. Проте сервер справляється!

Подивимося на таблицю процесів в момент максимального навантаження на сервер:

Ми бачимо, що у нас є ще запас за доступною оперативної пам'яті. А дочірні процеси php-fpm7.0 НЕ розростаються у великих кількостях, а обмежені 5-ма примірниками, кожен з яких обслуговує кілька потоків.

Що ж, схоже «режим-переможець» визначено. Давайте з'ясуємо, скільки ж одночасних відвідувачів зможе обслужити наш сервер в такому режимі. Але перед цим зробимо невеликий «тюнінг». По-перше, тому що apache не використовується при такій роботі сервера, його можна зовсім відключити. Це зробимо в панелі управління ISP в розділі «Система - Служби». По-друге, змінимо трохи принцип запуску процесів php-fpm. За замовчуванням він динамічний. Це означає, що дочірні процеси будуть висіти в пам'яті навіть коли вони не потрібні. При цьому пам'ять не звільняється і з часом ці процеси можуть розростися більше ніж нам би хотілося. Тому пропонується встановити режим "ondemand" - на вимогу. І поставити кількість дочірніх процесів і час таймаута для них.

Для цього потрібно буде зайти на сервер по ssh і прописати ці настройки в конфігураційний файл php. Це зручно зробити в файлі для користувача, для якого був створений домен в ISP.

Зазвичай він знаходиться в /etc/php/7.0/fpm/pool.d

Отже: sudo nano /etc/php/7.0/fpm/pool.d/www-root.conf

Бачимо там за замовчуванням такі настройки:

Pm \u003d dynamic pm.start_servers \u003d 1 pm.min_spare_servers \u003d 1 pm.max_children \u003d 5 pm.max_spare_servers \u003d 5
Щоб заробив режим ondemand, потрібно замінити це на:
pm \u003d ondemand pm.max_children \u003d 5 pm.process_idle_timeout \u003d 10s
І перезапустити php-fpm командою

Sudo service php7.0-fpm restart
Після цього процеси php-fpm7.0 будуть створюватися на вимогу (за наявності навантаження), максимальне їх кількість буде \u003d 5, а після 10 секунд простою процес буде побиватися, звільняючи оперативну пам'ять.

Про всяк випадок, запустимо наш тест ще раз, щоб переконатися, що вся ця самодіяльність не вплинуло в гіршу сторону на продуктивність сайту:

Тепер давайте запустимо Loaddy з великою кількістю відвідувачів, щоб зрозуміти, скільки з'єднань здатний витримати наш сервер:

Радує те, що всі запити були оброблені, нехай і з великою затримкою, при великій їх кількості в секунду. Час відповіді сервера наближається до 10 секундам при кількості звернень 190+ Але давайте згадаємо графік режиму apache, де 4 секунди відповіді сервера ми отримали вже при 80+ користувачів, тоді як в режимі php-fpm аналогічні лаги спостерігаються при 130 запитах, які ми спеціально виділили курсором на графіку вище.
А адже це той же самий VPS.

Таблиця процесів top в кінці випробування (при 200 користувачів):

Зауважимо, що після закінчення тестування, пам'ять, використовувана pfp-fpm звільнилася:

А значить наш сервер готовий до нових навантажень.

Необхідно пам'ятати, що сайт працює в режимі nginx + php-fpm, це означає що в роботі не використовується apache2 і як наслідок - НЕ іспользуется.htaccess. Це може здаватися не зручним, але це найшвидший з можливих варіантів, а пошуковики краще ранжируют сайти, які працюють швидко.

висновок

На завершення ще один невеликий момент: Якщо ви налаштували на сервері все що хотіли і вирішили відключити панель управління ISP, або у вас скінчилася на неї ліцензія, врахуйте, що процес "core" від неї так і залишиться висіти у вас на сервері. Після місяців він може розростися, так що краще його "вбити" і видалити з автозапуску і crona.

Якщо хочете самостійно протестувати сайт за допомогою Loaddy або ж іншими методами, він доступний за адресою

У цій статті ми дізнаємося, що з себе представляють веб-сервери, як вони працюють, і чому вони так важливі.

Вступ

Поняття «веб-сервер» може ставитися як до апаратної начинки, так і до програмного забезпечення. Або навіть до обох частин, які працюють спільно.

  1. З точки зору "заліза", "веб-сервер» - це комп'ютер, який зберігає файли сайту (HTML-документи, CSS-стилі, JavaScript-файли, картинки та інші) і доставляє їх на пристрій кінцевого користувача (веб-браузер і т . Д.). Він підключений до мережі Інтернет і може бути доступний через доменне ім'я, подібне mozilla.org.
  2. З точки зору програмного забезпечення, веб-сервер включає в себе кілька компонентів, які контролюють доступ веб-користувачів до розміщених на сервері файлів, як мінімум - це HTTP-сервер. HTTP-сервер - це частина програмного забезпечення, яка розуміє (веб-адреси) і HTTP (протокол, який ваш браузер використовує для перегляду веб-сторінок).

На самому базовому рівні, коли браузеру потрібен файл, розміщений на веб-сервері, браузер запитує його через HTTP-протокол. Коли запит досягає потрібного веб-сервера ( "залізо"), сервер HTTP (ПО) приймає запит, знаходить запитуваний документ (якщо немає, то повідомляє про помилку) і відправляє назад, також через HTTP.

Статичний веб-сервер, Або стек, складається з комп'ютера ( "залізо") з сервером HTTP (ПО). Ми називаємо це «статикою», тому що сервер посилає розміщені файли в браузер «як є».

Динамічний веб-сервер складається з статичного веб-сервера і додаткового програмного забезпечення, найчастіше сервера додаткиі бази даних. Ми називаємо його «динамічним», тому що сервер додатків змінює вихідні файли перед відправкою в ваш браузер по HTTP.

Наприклад, для отримання підсумкової сторінки, яку ви переглядаєте в браузері, сервер додатків може заповнити HTML-шаблон даними з бази даних. Такі сайти, як MDN або Вікіпедія, складаються з тисяч веб-сторінок, але вони не є реальними HTML документами - лише кілька HTML-шаблонів і гігантські бази даних. Ця структура спрощує і прискорює супровід веб-додатків і доставку контента.

активне вивчення

Активне вивчення поки не доступно. .

занурюємося глибше

Щоб завантажити веб-сторінку, як ми вже говорили, ваш браузер відправляє запит до веб-сервера, який приступає до пошуку запитуваної файлу в своєму власному просторі пам'яті. Знайшовши файл, сервер зчитує його, обробляє як йому це необхідно, і відсилає в браузер. Давайте розглянемо ці кроки більш докладно.

Хостинг файлів

Перш за все, веб-сервер повинен містити файли веб-сайту, а саме все HTML-документи і пов'язані з ними ресурси, включаючи зображення, CSS-стилі, JavaScript-файли, шрифти і відео.

Технічно, ви можете розмістити всі ці файли на своєму комп'ютері, але набагато зручніше зберігати їх на виділеному веб-сервері, який:

  • завжди запущений і працює
  • завжди підключений до Інтернету
  • має незмінний IP адреса (не всі провайдери надають статичний IP-адресу для домашнього підключення)
  • обслуговується третьої, сторонньою компанією

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

Як тільки ви вирішили проблему з хостингом, вам знадобиться тільки завантажити свої файли на ваш веб-сервер.

Зв'язок по HTTP

По-друге, веб-сервер забезпечує підтримку HTTP (англ. Hyper text Transfer Protocol - гіпертекстовий транспортний протокол). Як випливає з назви, HTTP вказує, як передавати гіпертекст (тобто пов'язані веб-документи) між двома комп'ютерами.

Протокол являє собою набір правил для зв'язку між двома комп'ютерами. HTTP є текстовим протоколом без збереження стану.

текстовий Всі команди є простим человекочітаемим текстом. Чи не зберігає стан Ні клієнт, ні сервер не пам'ятають про попередні з'єднаннях. Наприклад, спираючись тільки на HTTP, сервер не зможе згадати введений вами пароль або на якому етапі транзакції ви перебуваєте. Для таких завдань, вам буде потрібно сервер додатки. (Ми зупинимося на цих технологіях в наступних статтях.)

HTTP задає суворі правила взаємодії клієнта і сервера. Ми розглянемо сам протокол HTTP в технічній статті трохи пізніше. Поки досить знати про ці правила:

  • виключно клієнти можуть виробляти HTTP-запити, і тільки на сервера. Сервера здатні тільки відповідати на HTTP- запити клієнта.
  • При запиті файлу по HTTP, клієнт повинен сформувати файловий.
  • Веб-сервер повинен відповісти на кожен HTTP-запит, по крайней мере повідомленням про помилку.

На веб-сервері HTTP-сервер відповідає за обробку вхідних запитів і відповідь на них.

  1. При отриманні запиту, HTTP-сервер спочатку перевіряє, чи існує ресурс з даного URL.
  2. Якщо це так, веб-сервер відправляє вміст файлу назад в браузер. Якщо немає, сервер додатки генерує необхідний ресурс.
  3. Якщо ніщо з цього не можливо, веб-сервер повертає повідомлення про помилку в браузер, найчастіше "404 Not Found". (Це помилка настільки поширена, що багато веб-дизайнери витрачають велику кількість часу на розробку 404 сторінок про помилки.)

Статичний і Динамічний контент

Грубо кажучи, сервер може віддавати статичне або динамічне вміст. «Статична» означає «віддається як є». Статичні веб-сайти робляться найпростіше, тому ми пропонуємо вам зробити свій перший сайт статичним.

«Динамічний» означає, що сервер обробляє дані або навіть генерує їх на льоту з бази даних. Це забезпечує більшу гнучкість, але технічно складніше в реалізації і обслуговуванні, через що процес створення сайту дуже сильно ускладнюється.

Візьмемо для прикладу сторінку, яку ви зараз читаєте. На веб-сервері, де вона хоститься, є сервер додатки, який витягує вміст статті з бази даних, форматує його, додає в HTML-шаблони і відправляє вам результат. У нашому випадку, сервер додатки називається Kuma, написаний він на мові програмування Python (використовуючи фреймворк Django). Команда Mozilla створила Kuma для конкретних потреб MDN, але є безліч подібних додатків, побудованих зовсім на інших технологіях.

Існує так багато серверів додатків, що досить важко запропонувати якийсь один. Деякі сервери додатків заточені під певні категорії веб-сайтів, такі як блоги, вікі-сторінки або інтернет-магазини; інші, звані CMSs (системи управління контентом), більш універсальні. Якщо ви створюєте динамічний сайт, витратьте трохи часу на вибір інструменту, який відповідає вашим потребам. Якщо ви не хочете вивчати веб-програмування (хоча це захоплююче саме по собі!), То вам не потрібно створювати свій власний сервер додатки. Це буде винаходом чергового велосипеда.

наступні кроки

Тепер, коли ви познайомилися з веб-серверами, ви можете:

  • прочитати наскільки складно робити що-небудь в веб
  • дізнатися більше про різноманітність ПО, яке може стати в нагоді для створення веб-сайту
  • рухатися до практики: наприклад,.


Сподобалася стаття? поділіться їй