以下是两个GitHub存储库:
每个* *都包含默认的样板程序,当您在终端中输入“rails new APP_NAME”时会生成该程序。
我将它们部署到远程服务器(特别是AWS中的EC2实例)。
对于第一个,可以远程访问端口3000上的“rails服务器”。
对于第二个,端口3000上的“rails server”无法远程访问。
是否有人能够阐明为何会出现这种情况?
提供一些背景知识:
第一个是在2014年5月生成的,第二个是在2015年3月生成的。
*第一个我可能会略微修补,但我不记得我改变了什么(这是我的问题的驱动因素)。第二个是未经修改的。
答案 0 :(得分:4)
您可能会注意到您的早期项目(rails 4.1.1)在启动时打印了类似的内容:
=> Rails 4.1.1 application starting in development on http://0.0.0.0:3000
然而,后一个项目(rails 4.2.0)打印出如下内容:
=> Rails 4.2.0 application starting in development on http://localhost:3000
这里的区别在于第一个项目正在监听0.0.0.0
(任何IP),第二个项目正在监听localhost
(127.0.0.1
),只能从{{1}访问}}
您可以使用localhost
选项将rails服务器绑定到任何IP:
-b
有关更改的详情,请参阅http://guides.rubyonrails.org/4_2_release_notes.html#default-host-for-rails-server;有关如何更改默认值,请参见How to change the default binding ip of Rails 4.2 development server?。