Использование тонкого веб-сервера с HTTP и HTTPS

Я использую тонкий веб-сервер для обслуживания своего приложения на Rails.

  • Запуск сервера с thin start служит http Запросы.
  • Запуск сервера с thin start --ssl служит https Запросы.

Есть ли способ иметь thin служить как http а также https запросы одновременно?

Я спрашиваю, потому что, когда я использую redirect_to some_path в моих контроллерах они перенаправляют на http, поскольку thin служит https запросы, ничего не отображается.

Примечание: я использую Rack::SSL в Rails 3.0.7,

2 ответа

Решение

(Комментарий преобразуется в ответ по запросу.)

Простейшим вариантом, вероятно, является запуск двух отдельных экземпляров thin: один принимает запросы SSL и один принимает запросы открытого текста. По какой причине ты не хочешь этого делать? (В качестве альтернативы, если thin работает за другим веб-сервером, таким как Apache или Nginx, вам нужен только один экземпляр thin: внешний сервер может сообщать, поступил ли запрос через SSL.)

Вы не можете принимать соединения HTTP и HTTPS на одном и том же порту. (Вот почему по умолчанию HTTP работает на порте 80, а HTTPS - на порту 443.)

Вы можете использовать мастера (https://github.com/ddollar/foreman);

Вы создаете Procfile с 2 процессами, а затем начинаете с forman start команда.

поместите это в файл с именем Procfile:

web: thin start
ssl: thin start --ssl

Тогда используйте foreman start и он начал 2 процесса. Вот как я использую... надеюсь, это поможет вам!

Другие вопросы по тегам