ruby 使用Webrick暴露所有接口上的端口

cunj1qz1  于 12个月前  发布在  Ruby
关注(0)|答案(2)|浏览(124)

我是Ruby的新手。
我正在使用一个使用WEBrick部署HTTPServer的脚本。
当脚本运行时,它将注销:

check_1  | [2018-12-20 17:51:47] INFO  WEBrick::HTTPServer#start: pid=1 port=4567

当我在机器上执行netstat时,我注意到服务只在127.0.0.1上侦听

$ netstat -tulpn

root@c4a20aa7bd8c:/opt/service# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:4567          0.0.0.0:*               LISTEN      1/ruby1.9.3

我想监听所有的IP,这样我就可以从另一个容器与这个服务通信。
如何或什么是必要的?
我的服务器脚本定义是:

#!/usr/bin/ruby

require 'rubygems'
require 'sinatra'
require 'sinatra/reloader' if development?
also_reload 'config.yml'
require "sinatra/config_file"
require 'mechanize'
require "json"
require 'open-uri'
require 'mongo'
require 'uri'
require 'addressable/uri'
require 'cgi'
include Mongo
require 'nokogiri'

set :server, 'webrick'
iecba09b

iecba09b1#

你要找的答案在Sinatra配置文档中:http://sinatrarb.com/configuration.html
:bind选项。示例:set :bind, '0.0.0.0'

acruukt9

acruukt92#

如果从“rackup”启动,在配置中设置:bind似乎不起作用,在这种情况下,

bundle exec rackup --host '0.0.0.0'

相关问题