Sinatra或Rack应用程序可以查看它是否与Apache或Thin一起运行?

Ale*_*xey 0 ruby rack sinatra

我正在尝试对Sinatra应用程序进行一些愚蠢的自动配置,允许从不同的子URI使用它,具体取决于它是使用Apache和Passenger运行,还是使用Thin Web服务器运行.

所以我的问题是:是否有可能从Sinatra应用程序中找出哪个Web服务器运行它?

And*_*all 5

您不能(据我所知)查看它是否在Apache上运行,但您可以检查它是否在Passenger上运行:

if defined?(PhusionPassenger)
  # We are running Passenger!
end
Run Code Online (Sandbox Code Playgroud)

你应该能够为Thin做同样的事情:

if defined?(Thin)
  # We are running Thin!
end
Run Code Online (Sandbox Code Playgroud)