通过HTTP和HTTPS使用Thin Web Server

时间:2012-03-04 23:09:22

标签: ruby-on-rails ruby-on-rails-3 ssl https

我正在使用Thin Web服务器来提供我的Rails应用程序。

  • 使用thin start启动服务器提供http次请求。
  • 使用thin start --ssl启动服务器提供https次请求。

有没有办法让thin同时同时提供httphttps个请求?

我问的原因是因为当我在控制器中使用redirect_to some_path时,它们会重定向到http。由于thin正在处理https个请求,因此不会呈现任何内容。

注意:我在Rack::SSL中使用Rails 3.0.7

2 个答案:

答案 0 :(得分:8)

(评论转换为按要求回答。)

最简单的选项可能是运行两个单独的瘦实例:一个接受SSL请求,另一个接受明文请求。你有什么理由不想这样做吗? (或者,如果瘦是在另一个Web服务器(如Apache或Nginx)后面运行,则只需要一个瘦实例:前端服务器可以通过SSL报告请求是否来自。)

您不能在同一端口上同时接受HTTP和HTTPS连接。 (这就是为什么,默认情况下,HTTP在端口80上运行,而HTTPS在端口443上运行。)

答案 1 :(得分:4)

你可以使用工头(https://github.com/ddollar/foreman);

使用2个进程创建一个Procfile,然后使用forman start命令启动它。

将此文件放在名为Procfile的文件中:

web: thin start
ssl: thin start --ssl

然后使用foreman start并启动2进程。 这就是我的使用方式......希望这能帮到你!