我的目标是通过 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 上或它关闭下。
我显然在做一些不太正确的事情。
这非常接近,但最终通过两个不同的命令行命令运行两个服务器: 在不同端口上启动瘦服务器
任何帮助深表感谢。