Tag: 公众

如何让我的ruby on rails app响应外部请求(互联网上的公众可见)?

问题:我的rails应用程序(在我的本地计算机上)仅响应从同一台计算机发送到localhost,127.0.0.1或我的内部IP地址的请求。 当我尝试使用我的互联网IP或任何其他机器,在我的网络内部或外部,它只是超时。 我使用的是Mac OS 10.9.1,ruby 1.9.3,rails 4.0.0。 我已经做了很多搜索,但我能找到的只是人们没有转发端口或绑定正确的ip的问题。 以下是我调查的领域: 端口 – 我尝试了几个不同的端口。 我配置我的路由器转发我尝试的每个端口但得到相同的结果。 我想也许路由器有问题,所以我用Java构建了一个简单的服务器,绑定了我用rails应用程序绑定的所有相同端口。 果然,当我使用我的互联网IP点击Java应用程序时它工作得很好,所以路由器/防火墙/端口转发不是问题。 此外,我在端口80上运行一个apache服务器,从来没有遇到任何问题。 我关闭了apache并为我的rails应用尝试了端口80,但这并没有解决问题。 Rails服务器 – 我开始使用WEBrick,我认为可能有一些设置阻止了外部请求。 我广泛搜索谷歌,并没有发现任何事情。 为了安全起见,我安装了Thin,并得到了与WEBrick完全相同的结果。 有趣的是,当rails服务器启动时,外部请求需要很长时间才能超时,但服务器控制台根本不显示任何输出。 但是,如果我尝试发送相同的请求w / out启动服务器,它会立即失败。 用户权限 – 我用root启动服务器(我开始只是在黑暗中拍摄)并且它没有任何效果。 环境 – 我最初是在开发环境中开始的,因为我正在开发,但只是为了好玩,我尝试从生产开始,它也没有任何区别。 请帮助我的聪明人 更新:我在我的Ubuntu机器上安装了应用程序,它没有这个问题! 这表明问题可能与Mac OS有关。 已解决:事实certificate,在Mac OS中的系统偏好设置 – >安全和隐私 – >防火墙中,它以某种方式设置为阻止与Ruby 1.9.3的传入连接。 我不得不在前一段时间意外地设定。

保护Rails应用程序中的public / content内容

我正在维护一个Rails应用程序,其中包含公共/文件夹中的内容,现在需要通过登录进行保护。 我们正在考虑将这些文件夹移动到public / public之外的路径中,并编写Rails控制器来提供内容。 在我们开始写这篇文章之前,我很好奇是否还有其他人遇到过这类问题? 我找了一些可能已经这样做但没有找到任何东西的gem/插件。 有没有人为此创造了一个gem?