rutaka_n
@rutaka_n
softwere engineer

Как строить ссылки в Sinatra с учетом обратного прокси?

В документации к Sinatra к хелперу url написано:
Чтобы сформировать URL, вам следует использовать метод url, например, в Haml:
%a{:href => url('/foo')} foo
Этот метод учитывает обратные прокси и маршрутизаторы Rack, если они присутствуют.

У меня равернуто приложение на Sinatra в котором используется хелпер url для пострения ссылок в шаблонах - это приложение является gem'ом и менять его код крайне не желательно.
У меня возникла необходимость повеситть http-auth на некоторые роуты - для этого я поднял nginx, однако из-за того, что хелпер url строит ссылки с без учета прокси, пользователь попадает на страницы в обход прокси. Вопрос заключается в том каким образом сделать так, чтобы хелпер url строил ссылки с учетом прокси, или строил относительные ссылки?
  • Вопрос задан
  • 266 просмотров
Решения вопроса 1
AMar4enko
@AMar4enko
Способ "в лоб" - поменять информацию в env перед обработкой запроса.
Как-то так. Можно на уровне Rack, можно на уровне приложения.
before do
    env['PATH_INFO'].sub!(/^\/blah/, '')
end

Там дальше Sinatra будет использовать эти значения для своих нужд.
Сделайте pp env, посмотрите, какие ключи за что отвечают и поменяйте.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы