问题标签 [rack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1031 浏览

ruby-on-rails - 无论如何要让 Rails / Rack 应用程序告诉 Web 服务器断开连接

有许多安全原因导致人们想要在没有响应的情况下断开 HTTP 连接(例如,OWASP 的 SSL 最佳实践)。当这些可以在服务器级别检测到时,这没什么大不了的。但是,如果您只能在应用程序级别检测到这种情况怎么办?

Rails,或者更普遍的 Rack,是否有任何标准的方式告诉服务器在没有响应的情况下断开连接?如果没有,是否有一些标准的标头可以在常见的 Web 服务器中实现(我在想 Nginx 或 Apache)?即使没有标准标头,是否有合理的方法来配置该行为?这是傻子的差事吗?

0 投票
1 回答
1887 浏览

java - android/rails 分段上传问题

我的问题是我尝试将图像和一些文本值上传到 Rails 服务器,文本值最终作为文件,仅包含参数值。

帖子在服务器上的外观

部分安卓代码

0 投票
2 回答
1986 浏览

ruby - Ruby Rack:启动和拆卸操作(Tokyo Cabinet 连接)

我在 Rack 上的 Sinatra 中构建了一个非常简单的 REST 服务。它由 3 个 Tokyo Cabinet/Table 数据存储提供支持,这些数据存储具有需要打开和关闭的连接。我有两个直接用 Ruby 编写的模型类,目前它们只是简单地连接、获取或放置他们需要的东西,然后断开连接。显然,这不会长期有效。

我也有一些 Rack 中间件,比如 Warden,它们依赖于这些模型类。

管理打开和关闭连接的最佳方法是什么?据我所知,Rack 不提供启动/关闭挂钩。我曾考虑在 env 中插入一个提供对 TC/TT 对象的引用的中间件,但随后我必须通过 Sinatra 将其通过管道传递给模型,这似乎也没有效率;这只会是与 TC 的按请求连接。我想每个服务器实例生命周期将是一个更合适的生命周期。

谢谢!

0 投票
3 回答
936 浏览

ruby-on-rails - Rails Metal (& Rack) 是实现高流量 Web 服务 api 的好方法吗?

我正在开发一个非常典型的 Web 应用程序。用户体验的主要组成部分是网站所有者将在其首页上安装的小部件。每次他们的首页加载时,小部件都会与我们的服务器对话并显示一些返回的数据。

所以这个 Web 应用程序有两个组件:

  1. 网站所有者用来配置其小部件的前端 UI
  2. 响应小部件的 web api 调用的后端组件

以前我们在 PHP 中运行所有这些。现在我们正在试验 Rails,这对于#1(前端 UI)来说非常棒。问题是如何有效地执行 #2,即小部件信息的后端服务。显然,这比前端的负载要高得多,因为每次首页加载到我们客户的网站之一时都会调用它。

我可以看到两种明显的方法:

A. Parallel Stack : 建立一个并行堆栈,它使用 Rails 以外的东西(例如我们旧的基于 PHP 的方法),但访问与前端相同的数据库

B. Rails Metal:使用 Rails Metal/Rack 绕过 Rails 路由机制,但将 api 调用响应程序保留在 Rails 应用程序中

我的主要问题:

  1. Rails/Metal 是解决此类问题的合理方法吗?

但是也...

  1. 加载 Rails 环境的开销会不会还是太重?
  2. 有没有办法通过 Rails 更接近金属,绕过大部分环境?
  3. Rails/Metal 的性能是否会接近直接 PHP 的类似任务的性能(只是在这里寻找球场)?

和...

  1. 有没有比 A 和 B 都好得多的“C”选项?也就是说,在将 C 代码编译为二进制并作为 nginx 或 apache 模块安装之前的一些东西?

提前感谢您的任何见解。

0 投票
2 回答
2464 浏览

ruby - 使用 body_stream 和参数发布请求

我正在构建某种代理。
当我在机架应用程序中调用某个 url 时,我将该请求转发到另一个 url。

我转发的请求是一个带有文件和一些参数的 POST。
我想添加更多参数。
但是文件可能很大。所以我用Net::HTTP#body_stream而不是发送它Net::HTTP#body

我将我的请求作为一个Rack::Request对象,并用它创建我的 Net::HTTP 对象。

我尝试了几种添加代理参数的方法。但是在 Net::HTTP 中似乎没有任何东西允许将参数添加到 body_stream 请求中,只能添加到正文中。

有没有更简单的方法来代理这样的机架请求?或者一种将我的参数添加到我的请求的干净方法?

0 投票
2 回答
637 浏览

sinatra - 如何使 Rack::Reloader 重新加载对 haml 文件的更改?

我的 jruby rack sinatra compass haml 应用程序正确地重新加载了对 *.rb 文件的更改,但没有检测到对 *.haml 文件的更改。

这个指南针是在做一些缓存还是 Rack::Reloader 的限制?有关如何修复的任何指示?

0 投票
1 回答
1483 浏览

ruby-on-rails - 让 Rails 应用程序在 IronRuby 机架下运行

还有人在玩ironruby吗?

我已经成功地让 IronRuby.Rails.Example 项目在我的本地机器上运行在 IIS 5.1 下。我现在正试图让我自己的演示 Rails 站点以相同的方式运行。

我的 web.config 与示例项目略有不同。我试图只使用随 IronRuby 1.0 分发的内容以及我使用 gems 安装的内容。

我收到以下错误,这并没有给我太多的帮助:

D:/demo/config/boot.rb:66:in `exit': 退出 (SystemExit)

在尝试了许多不同的事情之后,我认为在寻找宝石时遇到了问题。我附上了我的网络配置和 ironrack.log。有没有人指出我做错了什么?

谢谢!

0 投票
1 回答
74 浏览

ruby-on-rails - 加载 IronRuby.Rack 程序集的问题

我正在尝试让 IronRuby on Rails 与 iis7 服务器 2k8 一起运行,并且只能在它无法加载程序集“IronRuby.Rack”(屏幕截图:http ://grab.by/3VZm )的情况下得到这个工作? 你能给我什么建议吗?

谢谢,-CJ

0 投票
1 回答
1124 浏览

session - 如何使用 curl 将 cookie 传递给 Sinatra 应用程序?

我正在使用本教程http://rubylearning.com/blog/2009/09/30/cookie-based-sessions-in-sinatra/中标题为“A Slightly Bigger Example”的示例中的代码来弄清楚如何将 cookie 发送到 Sinatra 应用程序,但我不知道如何正确设置值

当我在应用程序中将名称设置为“brandon”时,它会创建一个 cookie,其值BAh7BiIJdXNlciIMYnJhbmRvbg%3D%3D%0A是值的 url 编码 ( http://ostermiller.org/calc/encode.html )BAh7BiIJdXNlciIMYnJhbmRvbg==

使用该值,我可以正确地将 cookie 发送到应用程序

我很确定该值是会话的 ruby​​ 哈希的 base64 编码,因为文档(http://rack.rubyforge.org/doc/classes/Rack/Session/Cookie.html)说

session 是一个 Ruby Hash,存储为 base64 编码的编组数据集:key(默认值:rack.session)。

我认为这意味着我所要做的就是 base64 编码{"user"=>"brandon"}并在 curl 命令中使用它。不幸的是,这创造了不同于BAh7BiIJdXNlciIMYnJhbmRvbg==. 接下来,我尝试获取 base64 编码值并在线上在各种 base64 解码器上对其进行解码,但这会导致出现奇怪的字符(框符号等),因此我不知道如何重新创建该值以对其进行编码。

所以我的问题是你知道我需要什么字符/格式来获得正确的 base64 编码和/或你知道另一种使用 curl 传递值的方法,以便它将注册为 Sinatra 应用程序的正确 cookie?

0 投票
1 回答
1588 浏览

ruby - Thin、Sinatra、拦截静态文件请求做CAS认证

我正在使用 casrack-the-authenticator gem 进行 CAS 身份验证。我的服务器在 Sinatra 之上运行 Thin。我已经让 CAS 身份验证位工作了,但我不确定如何告诉 Rack 拦截“/index.html”请求以确认 CAS 登录,如果不允许用户查看页面,则返回 HTTP 403 响应而不是提供实际页面。这个事情谁有经验?谢谢。

我的应用程序:

我的机架文件:

最初尝试让 Rack 了解其文件服务中的身份验证(欢迎发表评论和想法):