
У меня есть вопрос об использовании компьютера в качестве веб-сервера. Почему определенный компьютер может быть веб-сервером? Какие особенности позволяют ему быть веб-сервером? Есть ли случаи, когда компьютер не может выступать в качестве веб-сервера?
решение1
Практически любой компьютер может использоваться как [веб]сервер, при условии, что он может подключаться к сети и может запускать программное обеспечение веб-сервера. Поскольку веб-сервер может быть довольно простым, и существуют бесплатные и открытые веб-серверы, на практике любое устройство может выступать в качестве веб-сервера.
Более серьезная проблема — это сетевая сторона. Чтобы система могла работать как сервер, другие машины должны иметь к ней доступ. Если она используется только в локальной сети, то проблем нет; однако, если она используется из более широкого Интернета, то данные должны быть направлены на нее. Для этого требуется либо статический IP-адрес, связанный с сервером (или порт, перенаправленный через маршрутизатор), либо внешняя служба, которая может сопоставить доменное имя/поддомен с изменяющимся динамическим IP-адресом.
(Кстати, вы можете купитькомпьютеры за 10 долларов(который может выступать в качестве базового веб-сервера.)
Конечно, хотя любое устройство может выступать в качестве веб-сервера, функциональность веб-сайтов может существенно различаться, и дешевое устройство (или медленное соединение) может не справиться с требованиями в зависимости от того, какой именно веб-сайт.
Отмечу, что все вышесказанное касается веб-серверов, но то же самое можно сказать практически о любом типе сервера.
решение2
Это совсем не сложно. Это просто зависит от вашего определения "веб-сервера".
Вполне возможно запустить «веб-сервер» на таком простом устройстве, как микроконтроллер.
Давайте рассмотрим, что должен делать минимальный веб-сервер. Он должен выводить клиенту какой-то текст — не обязательно даже в формате HTML. Он должен знать, что запрос — это запрос, и отвечать соответствующим образом. Вам даже не понадобится сетевое подключение, если ваш «клиент» будет локальным. Это будет совершенно бессмысленный веб-сервер.
Это был бы эквивалент веб-сервераодин из них.
Было бы лучше добавить сетевое подключение для клиента (Ethernet — это хорошо, но нет никаких технических причин, по которым вы не можете подключиться к веб-серверу, работающему по Wi-Fi) и возможность маршрутизации с клиента.
5 долларовESP8266– дешевый, минимальный микроконтроллер с Wi-Fi может справиться со многим из этого, и, возможно, даже с базовым динамическим контентом
Я использую что-то подобное для быстрого обмена файлами с помощью Python. Вполне возможно написать что-то подобное на микроконтроллере или даже запустить на телефоне.
Статический контент скучен. Добавьте динамические языки, и вам придется начать думать о более тяжелых системах. Все, что работает под управлением Linux или Windows, — это хорошо.
На данном этапе речь идет о потребительских маршрутизаторах, небольших приложениях, использующих веб-страницы в пользовательском интерфейсе и тому подобном.
Веб-сервер даже не является сложной проблемой и может быть написан напять строк bashи запустить на Linux. Сейчасрок... Но любая система, способная запустить Doom, может запустить веб-сервер.
АхорошийНастройка веб-сервера, способного справиться с заданной нагрузкой, несколько сложнее.
решение3
Абсолютный минимум
Буквально,любойКомпьютер может стать веб-сервером, если он имеет следующее:
- Сетевое подключение
- Очень простое приложение веб-сервера,так.
Но будет ли этого достаточно? Вот это сложный вопрос.
Обслуживание интрасети
Чтобы компьютер стал веб-сервером, обслуживающим современные веб-страницы или веб-приложения для целого сообщества (например, школы, компании, музея):
- Аппаратное обеспечение, способное отвечать нескольким компьютерам одновременно. Возможно, подойдет старый компьютер с Linux или Windows XP.
- Высокоскоростное сетевое соединение с достаточной пропускной способностью, например, Ethernet 1 Гбит/с или Wi-Fi 802.11g.
- Хорошее приложение веб-сервера, напримерИИС,Апачи,Nginxилидругие. (Удивительно, но эти три бесплатны.)
Но это был лишь минимум для небольших операций.Когда ваша деятельность становится больше (т. е. вы получаете более интенсивный трафик и обслуживаете сложные веб-приложения вместо статических страниц), ваши потребности растут. В конечном итоге вам понадобится:
- Аппаратное обеспечение серверного класса, например, стоечные серверы с несколькими процессорами Xeon и сотнями гигабайт оперативной памяти.
- Волоконно-оптические сети
Служение внешнему миру
Чтобы использовать инфраструктуру Интернета для обслуживания всего мира, вам понадобится:
- Публичный IP-адрес
- Публичный DNS-сервер
- Цифровые сертификаты, выданныеавторитетные органы сертификациидля установления безопасного соединения
Без них у вас есть толькопотенциалвеб сервер.
решение4
Если у вас есть под рукой любой компьютер (ПК, ноутбук, смартфон, RaspberryPI...) с установленным Python, просто введите:
$ python -m SimpleHTTPServer
Или, если у вас установлен Node.js:
$ npm install http-server -g
$ http-server
Поздравляем, у вас есть веб-сервер!