Как написать небольшой рубиновый веб-сервер? - PullRequest
4 голосов
/ 13 декабря 2011

У меня есть скрипт ruby, который также должен обслуживать несколько статических файлов в каталоге (таких как каталоги index.html, CSS и JS).Как лучше написать небольшой встроенный веб-сервер для обслуживания этих файлов?

Решение:

require 'webrick'
web_server = WEBrick::HTTPServer.new(:Port => 3000, :DocumentRoot => Dir.pwd + '/web')
trap 'INT' { web_server.shutdown }
web_server.start

Или добавьте это к своему .bash_profile, чтобы упростить обслуживаниефайлы в любом каталоге:

alias serve="ruby -rwebrick -e\"s = WEBrick::HTTPServer.new(:Port => 3000, :DocumentRoot => Dir.pwd); trap('INT') { s.shutdown }; s.start\""

Ответы [ 4 ]

8 голосов
/ 22 октября 2013

Вы можете использовать простейший сервер ruby ​​HTTP, который вы можете найти:

ruby -run -e httpd . -p 5000

Он будет обслуживать содержимое из работающего каталога на порту 5000.

2 голосов
/ 13 декабря 2011

Если вы ищете что-то чистое Ruby и простое, WEBrick - хороший выбор. Поскольку это чистый Ruby, он не будет очень быстрым.

Mongrel частично реализован на C и Ruby и лучше по производительности, чем WEBrick. (Режим разработки Ruby on Rails будет использовать Mongrel вместо WEBrick, если Mongrel установлен.)

Если вы хотите, чтобы ваш сервер масштабировался лучше, чем WEBrick или Mongrel, тогда thin , вероятно, является выбором - он склеивает Mongrel поверх EventMachine для масштабирования дальше, чем другие, более простые системы могут масштабироваться.

Ничто не заменит полноценного веб-сервера, такого как nginx, но интеграция этого в ваше приложение значительно больше работы для вас и ваших пользователей.

1 голос
/ 09 июня 2013

Как @sarnold упомянул, что thin - хороший сервер, стойка будет использовать thin с очень высоким приоритетом. И ниже приведен однострочный способ, если у вас установлен стеллаж:

rackup -b "use Rack::Static, :index => 'index.html'; run Rack::File.new('.')"

Если в текущем каталоге нет index.html, содержимое каталога будет отображено.

0 голосов
/ 13 декабря 2011

Вы смотрели на Синатра ?

Это может быть то, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...