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 строил ссылки с учетом прокси, или строил относительные ссылки?
  • Вопрос задан
  • 258 просмотров
Решения вопроса 1
AMar4enko
@AMar4enko
Способ "в лоб" - поменять информацию в env перед обработкой запроса.
Как-то так. Можно на уровне Rack, можно на уровне приложения.
before do
    env['PATH_INFO'].sub!(/^\/blah/, '')
end

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

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

Войти через центр авторизации
Похожие вопросы
Level Travel Москва
До 200 000 ₽
iGooods.ru Санкт-Петербург
от 120 000 до 180 000 ₽
22 февр. 2020, в 08:13
100 руб./за проект
22 февр. 2020, в 06:44
500 руб./за проект
22 февр. 2020, в 06:32
70000 руб./за проект