如何使用Rack map在不同的端口上运行两个Thin(或其他)服务器?
我的目标是通过Rack进行HTTP和HTTPS / SSL的自动化测试,无需借助代理服务器设置或类似的东西。 我有一个我想要测试的gem,我希望其他人能够进行测试,所以我希望它尽可能地自我控制。
App的代码在自己运行时运行正常,所以它不包含在这里,问题在于Rack部分。
我想做这样的事情:
app = Rack::Builder.app do map "/" do Rack::Handler::WEBrick.run App, Port: 3000 end map "/ssl" do Rack::Handler::WEBrick.run App, Port: 3001 # more options for SSL here... end end run app
我已经尝试了上面代码的几种组合,例如:
http = Rack::Builder.app do map "/" do run App end end https = Rack::Builder.app do map "/ssl" do run App end end Rack::Handler::WEBrick.run http, Port: 3000 Rack::Handler::WEBrick.run https, Port: 3001 # more options for SSL here...
在两个服务器设置的情况下,我倾向于在列出的第一个端口上运行一个服务器,然后在中断时它将在列出的下一个端口上运行第二个服务器 – 然后,在下一个中断时,在9292上的另一个服务器或它关闭下。
我显然做的事情不太对劲。
这非常接近,但最终通过两个不同的命令行命令运行两个服务器: 在不同的端口上启动瘦服务器
任何帮助深表感谢。
当前的Thin不支持这个 – 我检查了源代码。
瘦v2仍然是预发布的,但配置代码看起来像是通过在配置文件中声明多个侦听器来支持它。
但Thin v2仍然是alpha软件。
您还可以切换到另一台服务器,如Unicorn, 它明确支持绑定到多个端口或地址。