AWS Cloud9 服务器拒绝连接

Mar*_*ana 3 ruby-on-rails amazon-web-services cloud9-ide web server

所以我正在尝试为学校制作一个网站,并且我一直在关注这个关于如何制作网站的教程。但是由于某种原因,当我进入第32课并进入ec2-user:~/environment/blog $ rails server -b $IP -p $PORT command. 我已经正确地遵循了所有步骤(除了他运行它的目录之外,我直接从博客而不是环境中运行它,因为它告诉我我需要以另一种方式制作一个新应用程序)。我尝试禁用防火墙,启用 Cookies 并在互联网上搜索解决方案。我对服务器和编码很陌生,任何帮助将不胜感激! 是我的终端日志

小智 7

来自https://www.reddit.com/r/aws/comments/cwnbt1/aws_cloud9_server_refuses_to_connect/ 的回答

启动 rails 服务器后,单击“预览”按钮。当它告诉你它拒绝连接时,找到看起来像两个重叠方块的按钮,带有一个“弹出到一个新窗口”的箭头。一旦它在一个新标签中,它就像一个魅力。

希望这可以帮助!


小智 6

我也遇到了这个问题。我可以在新选项卡中查看 Rails 应用程序,但不能在 Cloud 9 IDE 选项卡中查看。

如果您在通过选项卡查看时查看浏览器控制台,您将看到以下错误:

Refused to display 'https://xxxxxxxxxxxxxxxxxxxxxxx.vfs.cloud9.xxxxxxxxxxx.amazonaws.com/' in a frame because it set 'X-Frame-Options' to 'sameorigin'.

导致此错误的原因是您正在通过 Cloud 9 IDE 通过 iFrame 查看 Rails 应用程序。默认情况下,为了增加安全性并阻止跨站脚本 (XSS) 攻击,Rails 设置了SAMEORIGINX-Fram-Options头。这将不允许使用 iFrame 在 Cloud 9 IDE 选项卡中显示 Rails 应用程序。

为了绕过这个问题,您需要设置此标头来代替使用ALLOWALL

注意:仅在开发环境中执行此操作,切勿在生产环境中执行此操作。这可能会让您的网站遭受 XSS 攻击。

将以下配置选项添加到您的config/environments/development.rb文件中:

  config.action_dispatch.default_headers = {
    'X-Frame-Options' => 'ALLOWALL'
  }
Run Code Online (Sandbox Code Playgroud)

保存更改后,重新启动 Rails 服务器,应用程序现在应该可以直接在 Cloud 9 IDE 选项卡中看到。