我有Rails应用程序。 如果我启动它rails s
(3000端口),它通过IP地址(在我的情况192.168.0.3)完美的作品都在我的机器,并在每个设备上我的本地网络上。
我有西纳特拉应用。 如果我启动它ruby app.rb
(端口4567),它完美的作品在我的机器上,但它不是从我的本地网络上的其它设备访问。
这两个应用程序中使用薄作为应用服务器。
它说的是涉及到如何西纳特拉的作品?
我有Rails应用程序。 如果我启动它rails s
(3000端口),它通过IP地址(在我的情况192.168.0.3)完美的作品都在我的机器,并在每个设备上我的本地网络上。
我有西纳特拉应用。 如果我启动它ruby app.rb
(端口4567),它完美的作品在我的机器上,但它不是从我的本地网络上的其它设备访问。
这两个应用程序中使用薄作为应用服务器。
它说的是涉及到如何西纳特拉的作品?
尝试ruby app.rb -o 0.0.0.0
或ruby app.rb -e production
。 要么应该工作。
让我补充到伊万的回答一些进一步的信息。 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”就像伊万说。 否则服务器无法从服务器计算机的外部访问。 多么奇怪!
只是要添加到伊万的回答和罗伯特的澄清。
默认情况下,在开发模式,而不是生产模式下,您西纳特拉运行。 在开发模式下,默认主机到西纳特拉将绑定是“本地主机”,这意味着只有本地机器可以与之交互。
一旦您指定“-e生产”你西纳特拉的webapp的生产模式,在默认主机绑定到为0.0.0.0,这意味着它可以与所有其他人交流运行。
另外,如果你想留在发展中,指定“-o 0.0.0.0”