Комп'ютери та сучасні гаджети

Якщо ви цікавитеся веб-розробкою, то напевно, вам зустрічалося таке визначення як веб-сервер.

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

Спробуймо розібратися в цьому питанні.

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

Навіщо ж потрібна ця програма? Навіщо нам потрібен веб-сервер?

Основне завдання веб-сервера - приймати HTTP-запити, обробляти їх та видавати HTTP-відповіді.

Що ж це за HTTP-запити та відповіді?

Ми з цим стикаємося щодня і найголовніша програма, яка дозволяє працювати з HTTP-запитами та відповідями – це звичайний браузер, який встановлений у нас в операційній системі (Google Chrome, Яндекс Браузер, Firefox, Internet Explorer і т.д.) .

Тобто. запити до веб-сервера та відповіді від нього, які відбуваються за протоколом HTTP. Це спеціальний набір правил, які дозволяють спілкуватися браузеру та веб-серверу.

Напевно, ви могли звертати увагу на те, що при наборі якоїсь адреси в адресний рядок браузера. Перед доменом сайту насамперед вказується протокол, за яким працює веб-сайт. Або http, чи https.

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

Саме веб-сервер опрацьовує ці запити. Цей веб-сервер може бути встановлений на тому ж комп'ютері, де браузер. Також цей веб-сервер може бути встановлений в іншому місці, іншому комп'ютері в мережі Інтернет. Різниці тут немає. Просто за допомогою браузера ми звертаємося до цього веб-сервера і отримуємо відповідь.

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

Веб-сервер - це така програма, яка є сполучною ланкою із серверними технологіями.

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

Потрібно мати на увазі, що веб-сервер є сполучною ланкою між серверною мовою програмування. Наприклад, мова PHP. Бази даних.

Потрібно мати на увазі, що база даних – це окрема технологія (програма) і вона не відноситься до веб-сервера.

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

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

Крім того, завдання веб-сервера створювати журнал помилок та звернень до файлів (лог).

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

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

Також веб-сервер містить налаштування про те, як і які файли потрібно обробляти на веб-сервері. Що потрібно зробити з якоюсь папкою. Загалом, всі ці правила містить веб-сервер.

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

Мабуть, найпопулярнішими веб-серверами, які є на сьогоднішній день є такі веб-сервера як: Apache, IIS, Nginx.

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

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

Вступ

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

  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 (англ. H yper t ext T ransfer P rotocol - гіпертекстовий транспортний протокол). Як випливає з назви, 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 (системи керування контентом), більш універсальні. Якщо ви створюєте динамічний сайт, витратите трохи часу на вибір інструменту, який відповідає вашим потребам. Якщо ви не хочете вивчати веб-програмування (хоча це захоплююче саме по собі!), то вам не потрібно створювати свій власний сервер програми. Це буде винахід чергового велосипеда.

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

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

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

Ми випустили нову книгу «Контент-маркетинг у соціальних мережах: Як засісти в голову передплатників та закохати їх у свій бренд».

Веб-сервер – це сервер, який приймає запити від користувача та видає їм відповіді – документ, сторінку чи сайт.


Більше відео на нашому каналі - вивчайте інтернет-маркетинг із SEMANTICA

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

Вимоги до технічної частини визначаються кількістю розміщених ресурсів та вимогами до швидкості. Чим вони більші, тим потужнішим повинен бути комп'ютер.
Щоб було зрозуміло, наведемо аналогію. Ви заходите до бібліотеки та просите видати вам книгу. Бібліотекар знаходить потрібну та передає вам. Бібліотека – це сервер, у ній зберігаються всі дані. Бібліотекар – це оболонка, яка прийняла запит та направила відповідь. Ви – клієнт.
Можна відправити бібліотекаря за додатковою інформацією – аналогічно клацання на посилання. Різниця в тому, що той самий ресурс в інтернеті можуть одночасно читати необмежену кількість користувачів.
Обслуговування клієнта здійснюється за схожим принципом: приходячи за книгою, ми можемо поставити запитання бібліотекарю (пошукова система) або заглянути в покажчик (ЯндексКаталог). Це допомагає знайти необхідну інформацію.

Що робить веб-сервер

Його головне завдання – збереження інформації. Сторінки, файли, зображення, текстовий текст.
Завдання:

  • Отримувати запити.
  • Запускати програми спеціальними мовами програмування (серверних).
  • Формувати веб-сторінки.
  • Надсилати їх назад користувачеві.
  • Захищати інформацію.
  • Проводити ідентифікацію відвідувачів.
  • Вести журнал звернень.
  • Обслуговувати запити інших типів: mailto і т.д.

Щоб зрозуміти, як працює веб-сервер, треба мати уявлення про принципи передачі в мережі. В основі лежать правила, звані протоколами: будь-яка URL починається з вказівки типу (ftp, http://, https:// та ін).
Hyper Text Transfer Protocol – протокол передачі. Сторінки сайту завжди мають вигляд гіпертекстового документа. Це кінцевий результат роботи будь-якої серверної чи клієнтської програми.

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

Що потрібно для веб-сервера

Потрібна машина, яка оброблятиме всі запити. Оцініть навантаження, яке має витримувати сервер. Це залежить від кількості відвідувачів: що більше запитів, то потрібна більша потужність.

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

Коли вирішено питання із сервером, треба прив'язати до нього статичну IP-адресу.

Сайт стає доступним на веб-сервері після того, як зареєстровано доменне ім'я, виконано перетворення адрес служб DNS - зв'язування IP-адреси (наприклад, 111.111.111.111) та доменного імені (www.site.com).

Найпоширеніші сервери

Apache

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

  • Постійна підтримка розробників.
  • Модулі для роботи із серверними мовами програмування PHP, Perl, Python, Ruby, ASP і т.д.
  • Відкритий код. Доопрацюванням під свої потреби займаються різні програмісти. Наприклад, російськомовне співтовариство адаптує його до російського кодування.
  • . Спочатку був створений під Unix, але зараз підтримується Windows, Mac OS, BSD, Linux, OS/2 та Novell NetWare.
  • Безпека.

При інсталяції вкажіть ім'я вашого хоста, наприклад localhost. У папку htdocs, яка лежить усередині папки Apachex.x (де x.x – номер версії), скопіюйте будь-яку html-сторінку. Або створіть її в блокноті, ввівши будь-який текст і зберігши з розширенням HTML.

Коли в папці з'явився файл, відкрийте веб-переглядач і наберіть адресу: localhost://ІМ'Я СТОРІНКИ.html. На екрані з'явиться текст – сторінка відкрита з сервера. Якщо ви побачили помилку "Не вдається отримати доступ до сайту", значить не запущено Apache. Його значок знаходиться в треї.
Натисніть і виберіть «Play». Після цього все почне працювати.

NGNIX

Частка активних майданчиків, що працюють на ньому, становить 21,13% (дослідження Netcraft). Його в основному використовують великі компанії та професійні розробники: Yandex, Mail.ru, Rambler та ін. NGNIX витримує величезне навантаження відвідувачів, надійний, безпечний та продуманий.
Поширюється вільно, але з'явилися платні версії Plus, вартість від 2,500$.

IIS

Його популярність забезпечена гучним ім'ям розробника. Це набір веб служб і інтегрований з Windows. Рідною платформою програмування є ASP.NET, але можна запровадити й альтернативу, наприклад, РНР.

Для повноцінного хостингу потрібне встановлення серверної операційної системи від Microsoft – Windows Server. 6-та версія взагалі не була призначена для хостингу, повноцінна підтримка почалася о 7-й. Купується він автоматично разом з операційною системою та залежить від її характеристик.

Установчі пакети

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

  • OpenServer. Портативне середовище розробки, що включає безліч баз даних, мов програмування та їх версій, а також додаткові послуги. Наприклад, інтерфейс роботи з БД PhpMyAdmin. На сьогоднішній день це найпопулярніший інсталяційний набір. Працює навіть із флешки. Безкоштовно завантажується на низькій швидкості. За 100 рублів швидкість збільшується у рази.
  • Xampp. Активно підтримуваний пакет: Apache, Php, Perl, MariaDB та ін. Має панель керування. Завантажується безкоштовно.
  • . Дуже зручний набір всіх потрібних інструментів, що включає Apache, PHP, MySQL, PhpMyAdmin. На жаль, остання версія включає застарілі дистрибутиви. Загалом для навчання підійдуть і вони. Судячи з форуму, проект більше не підтримується.

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

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

Чому не можна?

Ви вже, напевно, знаєте, щоб помістити свій сайт в Інтернет, потрібно зареєструвати доменне ім'я, купити хостинг, тобто дисковий простір на якомусь комп'ютері з високошвидкісним підключенням, на якому можуть працювати PHP скрипти. Щоб сайти повноцінно працювали, має бути встановлений PHP та MySQL. Все це не доступне на звичайному комп'ютері. Як можна запускати файли HTML та PHP на вашому комп'ютері?

Звичайний файл можна відкрити за допомогою Notepade++ або навіть із блокноту. Там усередині щось написати, зберегти і потім без особливих проблем відкрити цей файл на своєму браузері та подивитися, як би цей файл виглядав на хостингу в Інтернеті. Тобто ми вже бачимо робочу сторінку HTML. У ній ми можемо створювати певний дизайн, контент та спостерігати за проектом без підключення до Інтернету. Все, по суті, ми вже маємо. Якщо ми захочемо запустити PHP файл за допомогою браузера, то у нас нічого не вийде, тому що PHP скрипти в операційній системі Windows без додаткового програмного забезпечення не працюватимуть.

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

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

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

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

Список найкращих веб серверів

В даний час на ринку присутні кілька рішень від різних виробників:

  • (сайт - apache.org) — це найпоширеніший і найпопулярніший безкоштовний сервер у мережі. Він є більш надійним та гнучким. Сервер не вимогливий до ресурсів процесора і здатний обслуговувати багато сайтів. Програма доступна для широкого спектру операційних систем, включаючи Unix, Linux, Solaris, Mac OS X, Microsoft Windows та інші. На даний момент використання Apache складає 71%. Однак це складна програма, з якою не кожен новачок зможе впоратися.

  • (сайт - www.iis.net) - ще один надійний сервер від компанії Microsoft. Він жорстко зміцнився на другому місці з 14% використання у мережі. Після встановлення програми, будуть підтримуватися лише дві мови програмування ( VBScript та JScript). Однак, можна відкрити додаткові можливості, встановивши для цього необхідні розширення. З установкою таких модулів функціональність даного сервера значно підвищується.

  • NGINX (сайт - nginx.org/ru/) - це найбільш популярний веб-сервер у російському Інтернеті. У порівнянні з двома першими, він є найбільш простим і не має зайвих функцій. Також його хвалять за надійність та високу швидкість роботи. Розробником цього продукту є наш співвітчизник Ігор Сисоєв. У 2004 році він випустив першу версію nginx. Зараз цей програмний продукт замикає трійку найпопулярніших веб-серверів у світі. Його використання становить близько 6,5%.

  • (сайт - litespeedtech.com) — цей веб-сервер не має широких можливостей, зате у нього дуже велика швидкість роботи. За швидкодією він сильніший за популярний Apache в 9 разів. Чимало уваги приділено і безпеці ( свій захист від перевантаження системи, сувора перевірка http-запитів, анти-ddos та багато іншого). LiteSpeed ​​доступний для Solaris, Linux, FreeBSD та Mac OS X. Частка використання цієї програми становить 1,5%.

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

Особливості локального сервера

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

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

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

Огляд популярних локальних серверів

Ось деякі збірки, які можуть стати вам у нагоді:

  • (сайт - denwer.ru) — це безкоштовний вітчизняний сервер, який призначений для роботи з сайтами, веб-додатками або веб-сторінками. Його розробниками є Дмитро Котеров та Антон Сущев. Цей продукт містить необхідні дистрибутиви для спрощеної роботи. Наприклад, сюди входить веб-сервер Apache з різною підтримкою, панель phpMyAdmin та MySQL для роботи з базами даних та інші програми. Також можна працювати зі знімною флешкою. На жаль, Denwer підтримує тільки операційну систему Windows.

  • XAMPP (сайт - www.apachefriends.org/en/xampp.html) - Спеціальна збірка сервера від друзів Apache. Необхідні дистрибутиви дозволяють запустити повноцінний веб сервер. Ця програма розповсюджується безкоштовно та підтримує роботу в системі Windows, Solaris, Mac OS X та Linux. Також є наступні переваги: ​​сервер популярний своїм дуже простим інтерфейсом користувача, що робить його улюбленим для багатьох початківців; спостерігаються багаторазові появи оновлених версій; процес оновлення проходить дуже просто та зручно для користувача; є додаткові модулі. Завантажити потрібну версію ви також можете з іншого офіційного сайту sourceforge.net/projects/xampp/files.

  • (сайт - www.appservnetwork.com) - Відмінний сервер від тайського виробника, концепцією якого є легка установка та налаштування всіх дистрибутивів за 1 хвилину. Перший реліз збірки відбувся у 2001 році і відтоді кількість користувачів постійно зростає. AppServ дуже простий в установці, він працює стабільно і не гірше за офіційні та окремі релізи, а його надійна продуктивність дає можливість створити повноцінний веб сервер на вашому комп'ютері.
  • (сайт - vertrigo.sourceforge.net) - ще один непоганий і простий в установці локальний сервер. Складання дуже гнучка, має хорошу продуктивність і займає мало місця на диску. На жаль, поки що працює тільки на ОС Windows.
  • Zend Server Community Edition (сайт - www.zend.com) - Безкоштовний сервер від компанії Zend, призначений для роботи з веб-додатками. Містить всі необхідні компоненти для швидкого розгортання локального сервера на комп'ютері.

  • (сайт - open-server.ru) - це вітчизняний портативний локальний сервер, який володіє високим функціоналом з розробки та створення сайтів та інших веб-проектів. Має мультимовний інтерфейс ( у тому числі і російська) і призначений для роботи в Windows. Підтримується робота зі знімного носія. Цей сервер дуже хороший і служить непоганою альтернативою Денвер.

  • (сайт - wampserver.com) - Ще одна непогана збірка з російським інтерфейсом ( є також інші мови). Є просте і зрозуміле меню, а зручне встановлення та налаштування складання не викликає особливих труднощів. Налаштування можна робити не торкаючись файлів конфігурацій, що дуже корисно веб-майстрам-початківцям. Сервер розповсюджується безкоштовно і працює лише на платформі Windows. На жаль, портативної версії поки що немає.
  • (сайт - easyphp.org) - дуже просте складання з підтримкою російської мови. Складання ні чим не примітне, не має величезного функціоналу і в основному призначене для тестування невеликих проектів. Є підтримка роботи із портативних носіїв. Цей сервер стане непоганою заміною Денверу.

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

P.S.а який сервер для тестування своїх проектів ви використовуєте? Якщо ви знаєте ще якісь непогані сервери, напишіть у коментарях про них. Я потім додам їх до загального списку.

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

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

Припустимо, що сайт вже є (або скоро буде): де його розмістити? Це має бути класичний хостинг чи 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 = dynamic pm.start_servers = 1 pm.min_spare_servers = 1 pm.max_children = 5 pm.max_spare_servers = 5
Щоб запрацював режим ondemand, потрібно замінити це на:
pm = ondemand pm.max_children = 5 pm.process_idle_timeout = 10s
І перезапустити php-fpm командою

Sudo service php7.0-fpm restart
Після цього процеси php-fpm7.0 будуть створюватися на вимогу (за наявності навантаження), максимальна їх кількість буде =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 або іншими методами, він доступний за адресою

Якщо помітили помилку, виділіть фрагмент тексту та натисніть Ctrl+Enter
ПОДІЛИТИСЯ:
Комп'ютери та сучасні гаджети