Я искал повсюду и либо ничего не могу найти, либо не могу найти ничего, что работает ... так что я здесь.
Как я могу настроить SSL / HTTPS в отношении Mongrel?
Заранее спасибо!
Конечно, следует отметить, что Mongrel просто "не делает" SSL сам.
Сначала вы запускаете его через настоящий веб-сервер, такой как nginx или Apache, который выполняет SSL-работу за вас, а затем возвращает заголовок, сообщающий, было ли соединение выполнено через SSL (это важно, только если вы выполняете такие действия, как перенаправление, если доступ к странице, требующей защиты, был осуществлен без SSL).
Теоретически, я думаю, вы могли бы воткнуть станнель перед дворнягой и сделать это таким образом, но причины не делать этого огромны и страшны, так что просто не делайте этого.
Некоторое время я боролся с этим. Монгрел предпочитает «Рубиновый путь», который отличается от пути апачей.
Настройте Apache HTTP для обслуживания трафика HTTPS. Затем проксируйте соединения открытого текста / HTTP на бэкэнд.
Установите mod_proxy. Мне действительно пришлось перекомпилировать httpd, чтобы включить поддержку прокси.
LoadModule модули proxy_module / mod_proxy.so
LoadModule модули proxy_http_module / mod_proxy_http.so
LoadModule модули proxy_connect_module / mod_proxy_connect.so
Используйте параметр [proxy] mod_rewrite, чтобы перезаписать весь трафик на хост Mongrel. Мой хост - это VirtualHost с именем вроде ruby.example.org.
RewriteRule ^ / (. *) http://127.0.0.1:3000/$ 1 [прокси]
Ограничьте доступ к прокси. См. Httpd.apache.org/docs/2.2/mod/mod_proxy.html#access
<Proxy *>
Order Deny,Allow
Deny from all
# Restrict access from my local network
Allow from 192.168.0
</Proxy>