Простой разворачиваемый веб-сервер

Вопрос или проблема

Я ищу самодостаточный HTTP веб-сервер, который я могу развернуть на машинах с Windows и Linux для обслуживания статических файлов.

Он должен быть маленьким и простым. Желательно, чтобы я мог запускать его (и выключать) из командной строки, указывая, на каком порту он будет работать, и указывая, какой каталог будет его домашним каталогом.

Кто-нибудь знает что-то подобное?

Я бы предложил Jetty. Я в процессе встраивания этого в приложение. Он основан на Java и совместим с различными платформами.

Вы также можете встроить Jetty прямо в ваше приложение довольно легко.

Особенности

  • Полнофункциональный и основанный на стандартах
  • С открытым исходным кодом и коммерчески используемый
  • Гибкий и расширяемый
  • Небольшой объем памяти
  • Можно встраивать
  • Асинхронный
  • Масштабируемый для предприятий
  • Двойная лицензия под Apache и Eclipse

ИЗМЕНЕНИЕ: В итоге я использовал встраиваемую версию Tomcat, так что я добавлю это как рекомендацию. Простой и легкий в использовании из кода. И, как указано в вопросе, может быть запущен из командной строки.

Я лично использовал Mongoose. Он полностью кроссплатформенный и является самодостаточным исполняемым файлом. Он обслуживает статические файлы и по умолчанию обслуживает из каталога, в котором вы его запускаете. Вы также можете передать ему путь в командной строке, если хотите обслуживать другой каталог.

Некоторые альтернативы.

  • http-server Требует node.js. Может быть как производственным, так и девелоперским сервером. В остальном он идентичен Mongoose.

Оба этих варианта легковесные, но мощные, полностью кроссплатформенные и могут быть установлены портативно (т.е. не требуют прав администратора для установки).

Вы можете установить Apache после установки Cygwin. https://cygwin.com/

Если вы хотите что-то, что, вероятно, немного легче установить и настроить, вы можете попробовать WAMP. http://www.wampserver.com/en/

Есть также XAMP, который примерно то же самое. https://www.apachefriends.org/index.html

Я не уверен, зачем вам нужен сервер, который может работать в любой среде. Лично я бы настроил виртуальную машину с Linux в VirtualBox, используя Puphpet, чтобы запустить веб-сервер в Windows, если бы я каким-то образом застрял в Windows.

Тем не менее, я бы рекомендовал Nginx. Он в первую очередь предназначен для Linux. Для этого он был разработан. Однако у них есть родная версия для Windows, которая не требует Cygwin для запуска.

Питонистский подход

Мне кажется, самое простое решение было упущено. Установлен ли Python в системе? (если это Linux или MacOS, то да, установлен) Просто выполните это, и он будет обслуживать статические файлы, например, на порту 1337

python -m http.server 1337

В Windows Python не предустановлен, но вместо него можно использовать PowerShell, например, модуль webserver – откройте PowerShell и введите

install-module webserver
import-module webserver
start-webserver

Мне очень понравился MiniWeb.

MiniWeb – это мини-реализация HTTP-сервера, написанная на языке C, отличающаяся низким потреблением системных ресурсов, высокой эффективностью, хорошей гибкостью и высокой портативностью. Он способен обслуживать несколько клиентов с помощью одного потока, поддерживает методы GET и POST, аутентификацию, динамический контент (динамические веб-страницы и подстановку переменных) и загрузку файлов. MiniWeb работает на POSIX-совместимых ОС, таких как Linux, а также на Microsoft Windows (Cygwin, MinGW и родная сборка с Visual Studio). Размер двоичного файла MiniWeb может быть до 20 КБ (на x86 Linux). Цель проекта – предоставить быстрый, функциональный и малозатратный HTTP-сервер, который может быть встроен в другие приложения (как статическая или динамическая библиотека), а также быть отдельным веб-сервером.

Ответ или решение

Простой, развертываемый веб-сервер для статических файлов

В ответ на ваш запрос о создании самодостаточного HTTP веб-сервера для Windows и Linux, который легко разворачивается и управляется через командную строку, я хочу предложить несколько подходящих решений. Эти варианты подходят для обслуживания статических файлов и могут быть легко настроены для различных требований.

1. Mongoose

Mongoose представляет собой удобный и компактный веб-сервер, который работает на любых операционных системах. Это самодостатимый исполняемый файл, который по умолчанию обслуживает файлы из директории, где он запущен. Вы можете указать другое местоположение через командную строку.

Главные особенности:

  • Полная кроссплатформенность.
  • Легковесный и быстрый.
  • Простота в использовании и настройке.

2. Jetty и Apache Tomcat (встраиваемые версии)

Оба решения, Jetty и Apache Tomcat, предлагают возможность встраивания в ваши приложения, что является отличным вариантом для тех, кто ищет более комплексные функциональные возможности. Эти серверы поддерживают динамический и статический контент и могут запускаться и останавливаться из командной строки.

Jetty:

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

Tomcat:

  • Также поддерживает Java.
  • Позволяет использовать множество поддерживаемых технологий для создания веб-приложений.

3. Простой сервер на Python

Если на вашей системе установлен Python (что скорее всего для Linux или macOS), вы можете воспользоваться встроенным модулем для простого развертывания веб-сервера. Выполните следующую команду для запуска сервера на порту 1337:

python -m http.server 1337

Для Windows вы можете использовать PowerShell и модуль WebServer:

Install-Module webserver
Import-Module webserver
Start-WebServer

4. Nginx

Nginx — это мощный веб-сервер и обратный прокси-сервер, который хорошо подходит для Linux, но также предлагает версию для Windows. Его можно использовать для высоконагруженных проектов, а также для обслуживания статических файлов. Главные преимущества включают:

  • Высокая производительность.
  • Надежность и стабильность.
  • Поддержка большого количества одновременных соединений.

5. MiniWeb

MiniWeb — это легкая реализация HTTP-сервера на языке C. Он выделяется низким потреблением ресурсов и высокой производительностью. Размер бинарного файла может составлять всего 20 КБ, что делает его отличным выбором для встраивания и работы в маломощных системах.

Ключевые характеристики:

  • Поддержка многопоточности.
  • Аутентификация и возможность работы с формами.
  • Отличная портируемость на различные операционные системы.

Заключение

Выбор веб-сервера зависит от ваших конкретных требований и того, насколько вы готовы к его настройке и развертыванию. Если вам нужно легкое решение для моментального развертывания, Mongoose или Python встроенный сервер будут отличным выбором. Если вы ищете что-то более мощное и масштабируемое, Jetty, Tomcat или Nginx могут быть наиболее подходящими вариантами. MiniWeb станет хорошей альтернативой для тех, кто ценит компактность и быстроту. Выбирайте тот инструмент, который наилучшим образом соответствует вашим потребностям и простоте использования.

Оцените материал
Добавить комментарий

Капча загружается...