Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么rails服务器在tcp上列出_Ruby On Rails - Fatal编程技术网

Ruby on rails 为什么rails服务器在tcp上列出

Ruby on rails 为什么rails服务器在tcp上列出,ruby-on-rails,Ruby On Rails,我正在做一个项目,这是一个新项目的更新版本。使用vagrant加载虚拟环境和运行时 RAILS_ENV=development bundle exec rails s 返回以下内容: => Booting Puma => Rails 5.0.0.1 application starting in development on http://localhost:3000 => Run `rails server -h` for more startup options Puma

我正在做一个项目,这是一个新项目的更新版本。使用vagrant加载虚拟环境和运行时

RAILS_ENV=development bundle exec rails s
返回以下内容:

=> Booting Puma
=> Rails 5.0.0.1 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.6.0 (ruby 2.3.3-p222), codename: Sleepy Sunday Serenity
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop
当我访问浏览器时,我尝试了localhost:3000和127.0.0.1:3000,但一直得到:

ERR_CONNECTION_REFUSED

在加载的另一个存储库上的该项目的早期版本上,可以通过这些URL访问该项目。此项目已更新为Rails 5,但不知道为什么它在侦听TCP而不是HTTP。有什么建议吗?

正如已经建议的那样,请确保服务器已绑定到0.0.0.0,以便所有接口都可以访问它

您可以尝试:

RAILS_ENV=development bundle exec rails s -b 0.0.0.0

HTTP是一种运行在TCP之上的高级协议。TCP提供了一个可靠的低级连接,在数据包丢失等情况下自动处理重传。TCP不定义任何关于通过它发送的数据格式的内容。HTTP在此基础上工作,定义了一种标准化的数据格式,用于从HTTP服务器请求资源和向HTTP服务器发送资源。主机上的端口3000是否映射到vagrant VM上的端口3000?如果可能,提供任何流浪配置。此外,如果您向VM内的服务器发送请求,rails服务器进程必须绑定到
0.0.0
,而不是
localhost
,否则它将不允许“远程”连接(从您的机器,它位于vagrant VM外部)。您可以使用
rails s-b0.0.0.0
绑定到
0.0.0
并允许外部连接。请注意,这将使rails服务器暴露于任何可以连接到它的连接。是否使用docker。如果使用docker,请导出端口3000