Sinatra — это минималистичный веб-фреймворк для языка Ruby, предназначенный для создания простых веб-приложений. Он предоставляет гибкий способ обработки HTTP-запросов с минимальными зависимостями и легко интегрируется с другими библиотеками. Sinatra идеально подходит для небольших проектов, где важна скорость разработки и простота архитектуры.
В статье рассмотрим, как установить Sinatra на виртуальный выделенный сервер, работающий под управлением Windows Server 2016.
Установка Ruby
Поскольку Sinatra написан на Ruby, и создаваемые приложения полностью используют его синтаксис и возможности, то для работы Sinatra требуется установленный интерпретатор Ruby.
Установка Ruby на Windows Server описана в соответствующей статье нашего справочника.
По окончании установки Ruby можно переходить непосредственно к инсталляции фреймворка Sinatra.
Как установить Sinatra на Windows Server
Откройте командную строку от имени администратора и выполните команду, которая установит Sinatra при помощи такого инструмента, как gem
:
gem install sinatra
Затем таким же образом установите библиотеку Rackup, которая нужна для запуска Rack-приложений, использующихся в том числе и фреймворком Sinatra:
gem install rackup
Теперь создайте простейшее приложение на Sinatra, для чего перейдите в корень диска C:
cd c:\
Где создайте каталог, в котором будут находиться файлы вашего проекта, например, your-project
:
mkdir your-project
После чего перейдите в созданную директорию:
cd your-project
И в ней создайте файл вашего приложения, например, your-app.rb
:
type nul > your-app.rb
Затем откройте файл your-app.rb
при помощи блокнота и вставьте в него следующий текст:
require 'sinatra'
set :bind, '0.0.0.0'
get '/' do
"Hello! It is Your Sinatra Site!"
end
После того, как вы сохраните файл your-app.rb
, созданное приложение уже можно будет запустить, для чего в командной строке выполните команду:
ruby your-app.rb
Пока приложение запущено, вы можете открыть сайт в браузере, введя в строке навигации его адрес — http://localhost:4567
.
Обратите внимание, что по умолчанию сайт, созданный Sinatra, доступен по порту 4567
.
Запуск Sinatra как службы
Чтобы каждый раз не запускать приложение из командной строки, можно установить Sinatra в качестве службы. Это также позволит выполнять запуск приложения при каждом старте системы.
Так как в Windows Server отсутствует штатная возможность создания служб, для запуска сервиса придётся использовать какой-либо сторонний инструмент. В нашем случае мы применим такое решение, как NSSM (Non-Sucking Service Manager).
Для установки в систему NSSM перейдите на его официальную страницу и загрузите zip-архив актуального релиза.
По окончании загрузки распакуйте архив на диск C:
и в командной строке перейдите в каталог, содержащий исполняемый файл nssm.exe
:
cd C:\nssm-2.24\win64\
Находясь там, установите службу SinatraApp
:
nssm install SinatraApp
При этом откроется окно инсталлера NSSM следующего вида:
Здесь укажите параметры:
Path
— путь к исполняемому файлу Ruby:C:\Ruby33-x64\bin\ruby.exe
;Startup directory
— каталог исполняемого файла Ruby:C:\Ruby33-x64\bin
;Arguments
— путь к файлу вашего приложения:C:\your-project\your-app.rb
.
Затем нажмите кнопку Install service
. Таким образом, вы создадите службу для приложения Sinatra, которая называется SinatraApp
.
Теперь откройте список служб, для чего нажмите Win
R
, где введите services.msc
и нажмите OK
.
В списке найдите и откройте службу SinatraApp
. В её свойствах в строке Startup type
выберите Automatic
и запустите сервис при помощи кнопки Start
. Затем закройте окно, нажав кнопку OK
.
Настройка брандмауэра
Чтобы получить доступ к созданному сайту не только через браузер, запущенный на удалённом сервере, но и со своей локальной рабочей станции, необходимо в брандмауэре создать разрешающее правило для используемого фреймворком порта.
Для запуска брандмауэра используйте комбинацию клавиш WIn
R
, где введите firewall.cpl
и нажмите OK
.
В открывшемся окне брандмауэра кликните Advanced settings
.
Затем перейдите в раздел Inbound Rules
и нажмите New Rule
для создания нового правила.
В стартовом окне мастера создания правила укажите его тип как Port
.
Затем выберите тип порта TCP
и укажите его номер — 4567
.
Далее определите правило как разрешающее, выбрав опцию Allow the connection
.
На следующем шаге укажите типы сетей, на которые создаваемое правило будет распространяться. По умолчанию правило действует на все типы сетей.
Теперь введите имя для создаваемого правила. В нашем примере это — Sinatra App
.
Правило будет создано, как только вы нажмёте кнопку Finish
.
После чего вы сможете подключиться к сайту из браузера, запущенного на локальном компьютере. Для этого в строке навигации введите IP-адрес удалённого сервера с номером порта, используемого Sinatra.