Ruby Sinatra Webservice running on localhost:4567 but not on IP

前端 未结 4 399
小鲜肉
小鲜肉 2020-12-13 13:28

I have a ruby(using sinatra) webservice on windows 7 32 bit OS. Its running on port 4567. Its working fine when I use localhost:4567 but when I replace loca

相关标签:
4条回答
  • 2020-12-13 13:53

    When using the built-in server through the run! if app_file == $0 check, Sinatra's doc explains that set :bind, '0.0.0.0' is required to make the interface available outside the localhost layer.

    It is not required to use a custom IP address or a reverse DNS (mydomain.com…): '0.0.0.0' is the legit value expected by Sinatra, which will be interpreted correctly.

    Therefore, a minimal, self-contained Sinatra application made available on all interfaces, not only localhost, would be:

    require 'sinatra/base'
    
    class MyApp < Sinatra::Base
      set :bind, '0.0.0.0'
    
      get '/' do
        'Hello World'
      end
    
      run! if app_file == $0
    end
    
    0 讨论(0)
  • 2020-12-13 14:02

    To set server hostname or IP-address use sinatra setting bind like

    set :bind, '192.168.103.99'
    
    0 讨论(0)
  • 2020-12-13 14:03

    this

    require 'rubygems'
    require 'sinatra'
    require "dbi"
    
    set :bind, '192.168.200.185'
    get '/' do
        'hello word'
    end
    
    0 讨论(0)
  • 2020-12-13 14:12

    From the comment of @SudarshanShubakar following worked for me.

    ruby app.rb -o 0.0.0.0

    0 讨论(0)
提交回复
热议问题