Использование тонкого веб-сервера с 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
.
Ответы
Ответ 1
(Комментарий преобразован для ответа в соответствии с запросом.)
Самый простой вариант - это, вероятно, запустить два отдельных экземпляра тонких: один принимает запросы SSL и один принимает запросы открытого текста. Любая причина, по которой вы не хотите этого делать? (В качестве альтернативы, если тонкий работает за другим веб-сервером, например Apache или Nginx, вам нужен только один экземпляр тонкого интерфейса: внешний сервер может сообщить, прошел ли запрос через SSL.)
Вы не можете принимать соединения HTTP и HTTPS на одном и том же порту. (Вот почему по умолчанию протокол HTTP работает на порту 80, тогда как HTTPS работает на порту 443.)
Ответ 2
вы можете использовать мастер (https://github.com/ddollar/foreman);
Вы создаете файл Procfile с 2-мя процессами, затем запустите команду forman start
.
поместите это в файл с именем Procfile
:
web: thin start
ssl: thin start --ssl
Затем используйте foreman start
, и он начнет процесс 2.
Вот как я использую... надеюсь, это поможет вам!