【问题标题】:Change my default localhost port in Rails 5在 Rails 5 中更改我的默认本地主机端口
【发布时间】:2017-04-23 16:38:05
【问题描述】:

我正在使用与默认 puma 服务器配合使用的 rails 5 并监听 localhost:3000

我想让它监听一个新的端口,比如 192.168.0.0:3000

谁能帮忙?谢谢

【问题讨论】:

  • 为什么它在 Rails 5 中不是一个有效的解决方案?
  • 但是端口是一样的...
  • 您可以将您的 inet addr:192.168.1.95 地址与它绑定,以便在找到 inet addr:192.168 之后获取地址类型ifconfig(适用于 Linux) .1.95 从结果中并通过rails s -b 192.168.1.95 将您的地址与它绑定

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4


【解决方案1】:

Rails 5 自带 puma,在 config/puma.rb 中配置。您可以更改该文件中的默认端口号,或者通过在启动 rails 之前设置 PORT 环境变量来覆盖它。

@Iceman:在 Rails 5 中,不需要猴子修补 Rails 来覆盖默认端口,因此您提到的答案不再相关。

编辑:重新阅读原始问题后,我注意到您不想更改端口,而是更改绑定地址。您可以通过编辑config/puma.rb 并将port 语句替换为bind 语句来做到这一点:

# Specifies the `port` that Puma will listen on to receive requests; default is 3000.
#
#port        ENV.fetch("PORT") { 3000 }
bind        'tcp://192.168.0.1:3000'

@JohnLinux:Rails 不知道 Puma 使用不同的绑定地址这一事实,因此它会告诉您它传递给 Puma 的内容(Puma 忽略了该地址)。 Rails 和 Puma 的 github 问题跟踪器中都有几个问题来处理这个问题,AFAICT 两端都发生了变化,将绑定地址的控制权传回给 Rails,但我还没有玩弄更新的 gem 来看看如何到此为止。注释掉 port 语句很重要,否则 Puma 实际上会绑定到两者!

【讨论】:

  • 这个很有用,但是为什么启动的时候还是说Rails 5.0.3 application starting in development on http://localhost:3000,虽然在3003上监听。
  • 有趣的是你应该提到这一点。我从来没有注意到这一点。事实证明,它同时监听 3000 和 3003,当您在同一台计算机上运行两个单独的实例时,不用说它会惨遭失败。似乎没有简单的开关来禁用该行为。在 puma 的 github 上打开了许多操作系统问题,这些问题解决了这种情况的一部分,但没有一个是发布 AFAICT。
  • 似乎这个问题已经被最新版本的 Rails 修复了。
【解决方案2】:

你可以使用 -b 选项来绑定服务器

rails s -p 3000 -b 0.0.0.0 其中 -p 用于端口选项,如果 0.0.0.0 是 192.168.0.0 将绑定到您的 localhost ip,您可以使用网络中连接的设备打开您的应用程序。 如果您想更改您的本地 IP 地址..这不是 rails 问题。

【讨论】:

    【解决方案3】:

    更改rails 5中的默认端口

    更改配置/puma.rb

    port        ENV.fetch("PORT") { 3000 }
    

    【讨论】:

      猜你喜欢
      • 2022-07-05
      • 2012-06-12
      • 2019-04-23
      • 2019-01-20
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      • 2013-11-30
      • 1970-01-01
      相关资源
      最近更新 更多