LINUX.ORG.RU

Ruby, rack, web server

 ,


0

2

Как функционирует сабж? Мне привычны традиционные веб сервера, nginx тот же. Там сервер отдельно, cgi скрипты с файлами отдельно. Здесь один скрипт и конфигурация сервера, и генерация страниц.

rack_app = lambda { |env|
  page = '<a href="link.html">link.html</a>'
  [200, {"Content-Type" => "text/html"}, [page]]
}

Rack::Server.start(app: rack_app)

Получается при модификации сайта надо все перезапускать? Вообще, как-то все непонятно, не могу в инфраструктуре разобраться.

Еще вот детальный вопрос. Приведенный код генерит страничку с ссылкой на файл link.html. При переходе по ней ничего не происходит. Для выдачи файлов с диска какие-то настройки есть, или это в принципе невозможно?


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

Spirit_of_Stallman ★★★ ()

В свое время я посмотрел вот этот конфиг http://trac.nginx.org/nginx/browser/nginx/conf/nginx.conf и, меньше чем за час, запустил ресурс с пыхом и постгре.

Получается в случае руби сначала надо на хорошем уровне изучить специализированные фреймворки, прежде чем хоть что-то начать делать?

louty ()

Как функционирует сабж?

Я вижу, у вас есть опыт с PHP. Попробуйте тогда почитать вот эту статью.

Получается при модификации сайта надо все перезапускать?

Нет, необязательно.

Для выдачи файлов с диска какие-то настройки есть, или это в принципе невозможно?

Возможно.

В свое время я посмотрел вот этот конфиг http://trac.nginx.org/nginx/browser/nginx/conf/nginx.conf и, меньше чем за час, запустил ресурс с пыхом и постгре.

Держу пари, у вас не возникнет трудностей с тем, чтобы начать что-то делать на sinatra. Для этого не обязательно понимать, как sinatra использует rack внутри; вы просто начали с изучения довольно низкоуровневых вещей.

Anatolik ★★ ()
Ответ на: комментарий от louty

Здесь один скрипт и конфигурация сервера, и генерация страниц.

Это по-разному.

В свое время я посмотрел вот этот конфиг http://trac.nginx.org/nginx/browser/nginx/conf/nginx.conf и, меньше чем за час, запустил ресурс с пыхом и постгре.

Вероятно ты уже знал про пых и постгрес.. а теперь хочешь чтобы руби работал так, как ты привык в пхп.

Получается при модификации сайта надо все перезапускать?

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

Для выдачи файлов с диска какие-то настройки есть, или это в принципе невозможно?

Ты думаешь руби не умеет читать файлы?)

special-k ★★★ ()

Спасибо за советы, еще буду к этому возвращаться. Пока что работающий минимум есть. Несколько sqlite файлов с небольшими документами. На стартовой странице две формы: точный запрос по идентификаторам из баз и поисковый запрос в xapian. Обработка запросов и выдачи формируется через env[«QUERY_STRING»]. Все это запущено на отдельном порте и с окружением не взаимодействует, так даже лучше пока.

Держу пари, у вас не возникнет трудностей с тем, чтобы начать что-то делать на sinatra.

Можно попробовать. По крайней мере не так наворочено, как рельсы, смотрится.

Вероятно ты уже знал про пых и постгрес..

Но сейчас я знаю про руби, только sqlite вместо postgre. Просто концепция рэка и веб сервера руби-стайл оказалась непривычной.

louty ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.