无法通过本地网络访问西纳特拉应用(Cannot access sinatra app through

2019-08-31 14:48发布

我有Rails应用程序。 如果我启动它rails s (3000端口),它通过IP地址(在我的情况192.168.0.3)完美的作品都在我的机器,并在每个设备上我的本地网络上。
我有西纳特拉应用。 如果我启动它ruby app.rb (端口4567),它完美的作品在我的机器上,但它不是从我的本地网络上的其它设备访问。

这两个应用程序中使用薄作为应用服务器。

它说的是涉及到如何西纳特拉的作品?

Answer 1:

尝试ruby app.rb -o 0.0.0.0ruby app.rb -e production 。 要么应该工作。



Answer 2:

让我补充到伊万的回答一些进一步的信息。 Sinatra的README命令行上说:

Sinatra applications can be run directly:

ruby myapp.rb [-h] [-x] [-e ENVIRONMENT] [-p PORT] [-o HOST] [-s
HANDLER] 

Options are:

-h # help
-p # set the port (default is 4567)
-o # set the host (default is 0.0.0.0)
-e # set the environment (default is development)
-s # specify rack server/handler (default is thin)
-x # turn on the mutex lock (default is off)

每个文档的默认HOST为0.0.0.0,但我还是要指定一个“-o 0.0.0.0”就像伊万说。 否则服务器无法从服务器计算机的外部访问。 多么奇怪!



Answer 3:

只是要添加到伊万的回答和罗伯特的澄清。

默认情况下,在开发模式,而不是生产模式下,您西纳特拉运行。 在开发模式下,默认主机到西纳特拉将绑定是“本地主机”,这意味着只有本地机器可以与之交互。

一旦您指定“-e生产”你西纳特拉的webapp的生产模式,在默认主机绑定到为0.0.0.0,这意味着它可以与所有其他人交流运行。

另外,如果你想留在发展中,指定“-o 0.0.0.0”



文章来源: Cannot access sinatra app through the local network