Это проблема конфигурации Sinatra или проблема конфигурации Apache? - PullRequest
2 голосов
/ 14 декабря 2010

Я не решил, является ли это проблемой 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

1 Ответ

0 голосов
/ 15 декабря 2010

Это длинный путь, но, возможно, URL-адреса в директивах ProxyPass должны иметь конечный /?Вот как в документации, и я получил несколько странных записей в error.log без них.

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