首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何更改Rails 4.2开发服务器的默认绑定ip?

如何更改Rails 4.2开发服务器的默认绑定ip?
EN

Stack Overflow用户
提问于 2015-02-23 15:02:22
回答 9查看 63.3K关注 0票数 89

在将我们团队的rails应用程序升级到4.2之后,正如release note所提到的,rails server绑定到的默认ip从0.0.0.0更改为localhost

我们使用Vagrant进行开发,并希望可以从主机上的浏览器直接访问开发服务器。

从现在开始,我不想知道是否有更好的解决方案,这样我们仍然可以使用像rails s这样简单的东西来启动服务器,而不是每次都输入rails s -b 0.0.0.0。也许:

转发配置文件并读取其中的内容,我可以在其中修改默认绑定ip (无需使用-c)

  • port

  • rails s vagrant (已尝试,但失败,请参见下面遇到的问题)

  • a monkey to rack,这将更改默认绑定ip

这背后的真正目标是,我希望我们的团队能够顺利升级,避免人们由于缺少-b 0.0.0.0部件而不得不不断重启rails服务器的小故障。

我尝试了流浪端口转发,但当我访问主机上的localhost:3000时仍然获得Connection Refused。我尝试的两个配置行是:

代码语言:javascript
复制
config.vm.network "forwarded_port", guest: 3000, host: 3000
config.vm.network "forwarded_port", guest: 3000, guest_ip: '127.0.0.1', host: 3000

在官方文档中没有找到任何相关说明。任何帮助都将不胜感激。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2015-04-10 21:36:02

我在这里遇到了同样的问题,今天我找到了一个更好的解决方案。只需将此代码附加到您的config/boot.rb,它应该可以与vagrant一起工作。

代码语言:javascript
复制
require 'rails/commands/server'
module Rails
  class Server
    def default_options
      super.merge(Host:  '0.0.0.0', Port: 3000)
    end
  end
end

ps: Its基于:this answer

票数 72
EN

Stack Overflow用户

发布于 2015-02-23 16:40:13

您可以使用foreman通过自定义命令运行Procfile

代码语言:javascript
复制
# Procfile in Rails application root
web:     bundle exec rails s -b 0.0.0.0

现在使用以下命令启动Rails应用程序:

代码语言:javascript
复制
foreman start

关于foreman的好处是你可以在Procfile中添加其他的应用程序(比如sidekiq,mailcatcher)。

foreman的缺点是你必须训练你的团队去运行foreman start而不是rails s

票数 47
EN

Stack Overflow用户

发布于 2015-10-21 09:51:24

遇到了同样的问题。找到了博客Make Rails 4.2 server listens to all interfaces

将以下内容添加到config/boot.rb

代码语言:javascript
复制
require 'rails/commands/server'

module Rails
  class Server
    alias :default_options_bk :default_options
    def default_options
      default_options_bk.merge!(Host: '0.0.0.0')
    end
  end
end
票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28668436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档