Подтвердить что ты не робот

Есть ли простой способ заставить pow обслуживать https?

pow отлично, но многие вещи в моем приложении предполагают https, и было бы болью пройти через все их и добавить msgstr "если не среда dev". Возможно ли, чтобы pow служил https?

4b9b3361

Ответ 1

Самый простой способ найти туннели: https://github.com/jugyo/tunnels

$ gem install tunnels
$ rvmsudo tunnels   # or just use sudo if using rbenv

Не требуется настройка.

Ответ 2

Вариант 1: Завершить Pow с Tunnelss

У меня возникла проблема с решением туннелей, что отлично, но будет выглядеть как небезопасно браузером, что вызовет головные боли при игре с CORS например.

Я протестировал решение PowSSL (тот, у кого используется "Стад" ), но ему не хватало HTTP_X_FORWARDED_PROTO, что вызовет еще один набор головных болей, когда ваше приложение должно знать, был запрошен через HTTP или HTTPS (ну, он никогда не узнает, что это HTTPS).

Но этот более поздний подход был отличным, потому что он генерировал действительный сертификат для всех настроенных доменов POW .dev!

Итак, я построил tunnelss, который сочетает в себе два подхода: это вилка туннелей, и это добавляет создание сертификата!

Надеюсь, вам понравится, не стесняйтесь отправлять запросы на тягу, если вы хотите его завершить, это просто быстрый взлом, работающий на MacOS X на данный момент...

Вариант 2: Переключитесь на Invoker (используя мой fork... пока)

Invoker - отличная замена для Pow, поскольку она изначально включает поддержку HTTPS. Вам не нужно добавлять еще одно решение поверх Pow, чтобы получить HTTPS!

Однако, по сравнению с Pow, я обнаружил, что у него было 2 ограничения:

  • вам нужно указать команду для каждого процесса, чтобы она могла запускать ее,
  • у вас не может быть правила по умолчанию, обрабатывающего все запросы на localhost и проксирования их в конкретное приложение.

Эти ограничения не были трудными для преодоления, и я сделал тянуть запрос с двумя изменениями. До тех пор, пока он не будет принят, вы можете установить версию forked, используя следующую команду:

git clone https://github.com/rchampourlier/invoker invoker -b proxy-only-mode
cd invoker
gem build invoker.gemspec
gem install invoker-1.5.0.gem

С помощью этой вилки вы сможете использовать глобальную конфигурацию, например ~/.invoker.ini, такую ​​как:

[my-rails-app]
port = 3000

[my-sinatra-app]
port = 9292

[default]
port = 9292

... и запустить Invoker в качестве прокси с помощью этой команды:

invoker ~/.invoker.ini -d

Ответ 3

В настоящее время POW не поддерживает SSL (https://github.com/37signals/pow/issues/5). Тем не менее, у многих других людей есть одно и то же желание, поэтому, надеюсь, он будет включен в будущий выпуск!

Лучшее альтернативное решение, если вы не хотите перебирать проблему изменения кода, - это настроить Apache и создать сертификат SSL для разработки. Это потребует изменения файла ваших хостов и, к сожалению, не является "скользким" как POW, но с плюсовой стороны он избегает требовательных условных условий среды.

Edit:

Последнее обновление состоит в том, что POW может быть настроен с использованием SSL с использованием Nginx, как описано в следующем руководстве:

http://shiny-bits-of-code.tumblr.com/post/4749553253/ssl-proxy-with-nginx

Ответ 4

Используйте stunnel для создания туннеля на сервере pow.

Как

stunnel3 -f -d 443 -r 127.0.0.1:80