我使用"www.xip.io"作为DNS通配符,在不同的设备上进行测试.我将我的主域设置为我的IP地址.我用bundle exec rails server启动一个rails服务器,然后我转到这里www.<ip_address>.xip.io:3000,注意到我的rails服务器没有响应.

然而,如果我将rails服务器绑定到0.0.0.0,比如so bundle exec rails server -b 0.0.0.0,它就可以工作了!我不明白0.0.0.0是怎么告诉我的服务器让它工作的.有人能理解吗?

推荐答案

绑定到0.0.0.0告诉服务在您的机器上绑定到all IP addresses.Rails服务器默认情况下会这样做,但4.2版本改为仅绑定到localhost.

基本上,如果它只绑定到localhost,那么它只会在本地响应localhost127.0.0.1,因为它不是公共IP地址,所以无法通过DNS服务工作.

当您使用0.0.0.0时,它会将本地主机and绑定到您的可路由IP地址.

Ruby-on-rails相关问答推荐

在VP中部署rails 7和nginx

如何在不触发每次编译的情况下运行`bin/rails测试`?

Rails:比枚举更惯用的排序/可比较列表方法?

Rails/Rspec中的测试文章创建

组织和/或存储我一直在 RSpec 中使用的模拟对象的最佳方式是什么?

Rails - 如何使用子对象的嵌套属性和强参数填充父对象ID?

在 Rails 3.2 中更新多行

在允许用户使用设计(rails)登录之前判断用户是否处于活动状态

SQLite3::BusyException

Rails:删除级联与依赖销毁

将 Amazon SES 与 Rails ActionMailer 结合使用

删除链接在 Rails 3 视图中发送Get而不是Delete

我可以将默认值传递给 rails 生成迁移吗?

如何检测导致 Rake 中的弃用警告的原因

在 Rails 中,在特定时区创建特定时间(不是现在)的最佳方式是什么?

ActiveRecord 中多列的索引

Ruby 安装的 RVM 不工作?

ActiveModel::MissingAttributeError:无法使用 FactoryGirl 写入未知属性ad_id

如何为 Rails 迁移定义布尔字段

如何删除删除选项表单 activeAdmin?