У мене є питання щодо використання комп’ютера як веб-сервера. Чому певний комп'ютер може бути веб-сервером? Які функції дозволяють зробити його веб-сервером? Чи є випадок, коли комп'ютер не може виконувати функції веб-сервера?
У мене є питання щодо використання комп’ютера як веб-сервера. Чому певний комп'ютер може бути веб-сервером? Які функції дозволяють зробити його веб-сервером? Чи є випадок, коли комп'ютер не може виконувати функції веб-сервера?
Відповіді:
Практично будь-який комп'ютер може використовуватися як [веб] сервер, за умови, що він може підключитися до мережі та може запускати програмне забезпечення веб-сервера. Оскільки веб-сервер може бути досить простим, а існують безкоштовні та відкриті веб-сервери, на практиці будь-який пристрій може виступати як веб-сервер.
Більша проблема полягає в роботі мережі. Для того, щоб система діяла як сервер, інші машини повинні мати доступ до неї. Якщо це просто для використання в локальній мережі, проблем немає; однак, якщо він використовується для широкого Інтернету, то дані потрібно перенаправляти до нього. Для цього потрібна або статична IP-адреса, пов'язана з сервером (або переадресований через маршрутизатор порт), або зовнішня служба, яка може зіставити доменне ім’я / піддомен на зміну динамічної IP-адреси.
(FWIW, ви можете придбати комп’ютери за 10 доларів, які можуть виконувати функції основного веб-сервера.)
Звичайно, хоча будь-який пристрій може діяти як веб-сервер, функціональність веб-сайтів може сильно відрізнятися, а дешевий пристрій (або повільне підключення) може не встигати відповідати вимогам залежно від конкретного веб-сайту.
Зауважу, що все вище йдеться про веб-сервери - але те саме можна сказати і для будь-якого сервера.
Це зовсім не хитро. Це просто залежить від вашого визначення поняття "веб-сервер".
Цілком можливо запустити "веб-сервер" на таких пристроях, як простий мікроконтролер.
Давайте розглянемо, що потрібно буде зробити мінімальним веб-сервером. Було б потрібно вивести якийсь текст - не обов'язково навіть у HTML для клієнта. Потрібно знати, що запит - це запит, і відповісти належним чином. Вам навіть не потрібно мережевого підключення, якби ваш "клієнт" був локальним. Це був би абсолютно безглуздий веб-сервер.
Це було б еквівалентом одного із цих веб-серверів .
Додавання мережевого підключення для клієнта (Ethernet приємно, але немає технічної причини, що ви не можете підключитися до веб-сервера, що працює на wifi), і можливість маршрутизації з клієнта було б краще.
$ 5 ESP8266 - дешевий мінімальний мікроконтролер з Wi-Fi може впоратися з великою частиною цього, а може бути, і з базовим динамічним вмістом
Я використовую щось подібне для швидкого обміну файлами за допомогою Python. Все ще цілком можливо написати щось подібне на мікроконтролері або навіть запустити це по телефону.
Статичний вміст нудний. Додайте динамічні мови, і вам потрібно буде почати думати про більш важкі системи ваги. Корисні речі, які працюють під управлінням Linux або Windows.
На даний момент ви говорите про маршрутизатори споживачів, невеликі додатки, що використовують веб-сторінки в інтерфейсі та все таке.
Веб-сервер навіть не є складною проблемою, і його можна записати в п'ять рядків bash і запустити в Linux. Тепер дум ... Але будь-яка система, яка може запустити дому, може запустити веб-сервер.
Хороша настройка веб - сервер , здатний обробляти задану навантаження дещо складніше.
Буквально будь-який комп'ютер може стати веб-сервером, якщо він має наступне:
Але чи вистачило б це? Тепер це складне питання.
Щоб комп'ютер став веб-сервером, який обслуговує сучасні веб-сторінки або веб-додатки для всієї спільноти (наприклад, школи, компанії, музею):
Але це був лише мінімум для невеликих операцій. Коли ваша операція зростає (тобто ви отримуєте більший трафік і обслуговуєте складні веб-програми замість статичних сторінок), ваші потреби зростають. Вам з часом знадобиться:
Щоб використовувати Інтернет-інфраструктуру для обслуговування всього світу, вам знадобляться:
Без цього все, що у вас є, - це потенційний веб-сервер.
Програмування / перспектива програмного забезпечення:
Програма, яка здатна прослуховувати порт 80 на мережевому адаптері. Це працює на вашій ОС. І може обробляти запити відповідно до визначення HTTP.
Програма, яка слухає будь-який порт, доступна на кожному комп’ютері в одній мережі. В ідеалі це повинен бути відомий стандартний порт (80 і 8080 для серверів HTML; вибирайте понад 1024 для користувацьких додатків). Це навіть звичайна практика запускати розробку мережі з доступною мережею на тому ж комп'ютері, на якому ви займаєтеся розробкою.
Якщо ви можете дістатися до нього через localhost, ви можете дістатися до нього з будь-якого місця в межах однієї мережі, а з будь-якого місця є шлях до цієї машини та її мережевого адаптера.
Caveat: Дуже багато середовищ розробки все в одному в установках за замовчуванням обмежують доступ до Localhost. Зрештою, ви не хочете, щоб ваші інструменти адміністратора були доступні з Інтернету.
Обладнання:
Апаратне забезпечення починається десь із "того 10-річного комп'ютера, який працює під управлінням XP або Linux" і закінчується десь біля "128-ядерної, з 2 TiB оперативної пам’яті та 256 TiB SSD в рейді", і БД також працює на іншому сервері . Веб-додатки, як правило, приємно паралелізуються, тому ви можете / доведеться ще більше доповнювати це кластерами цих серверів. І Geocast. І розподілений дизайн. І багато іншого. Це повністю залежить від того, про який масштаб ми говоримо.
Найпростіший веб-сервер, який ви, мабуть, зустрінете - це маршрутизатор, який ви використовуєте, btw. Всі вони запускають веб-сервер для цілей конфігурації, розміщений на Linux (що робить усі роботи DHCP та NAT).
Мережа:
Маючи шлях від інших мереж - в тому числі в будь-якому місці в Інтернеті - тепер , що це зовсім інша історія , а частина навіть складніше , ніж програмування додатки. Між NAT вашого маршрутизатора і NAT-класу, цей матеріал став дуже важким.