Я не решил, является ли это проблемой Apache или проблемой Sinatra, в основном, у нас есть несколько небольших приложений, работающих на одном сервере, мы разворачиваем их только с помощью встроенных экземпляров webrick и используем apache дляперенаправить эти запросы по поддомену на правильный порт.Я использую gollum, который является приложением sinatra со слоем постоянства git, но я получаю неожиданную маршрутизацию приложения, когда оно перенаправляет (после действия редактирования).Я не уверен, что смогу это исправить, передав параметр запуска в Sinatra или настроив в объявлении виртуального хоста для приложения правило перезаписи.Пожалуйста, укажите в своем ответе, какой вариант вы считаете лучшим, и пример того, как это можно сделать.Спасибо,
# apache virtualhost declaration
<VirtualHost *:80>
ServerName wiki.domain.com
DocumentRoot "/var/www/html"
ProxyPass / http://localhost:3006
ProxyPassReverse / http://localhost:3006
</VirtualHost>
разрешается со штрафом sinatra для GET, например,
wiki.domain.com/Home
, но происходит сбой при перенаправлении sinatra
# expected
wiki.domain.com/Home
# actual
wiki.domain.com:3006/Home
и вот действие Sinatra: https://github.com/github/gollum/blob/master/lib/gollum/frontend/app.rb)
post '/edit/*' do
name = params[:splat].first
wiki = Gollum::Wiki.new(settings.gollum_path)
page = wiki.page(name)
format = params[:format].intern
name = params[:rename] if params[:rename]
wiki.update_page(page, name, format, params[:content], commit_message)
redirect "/#{CGI.escape(Gollum::Page.cname(name))}"
end