问题标签 [puma]

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 投票
2 回答
3024 浏览

ruby-on-rails - 如何在 puma 服务器中启用 gzip

请帮我。puma服务器可以使用gzip压缩吗?如果是,我该如何配置它?

我尝试使用 config/puma.rb 文件

就像是:

但没有任何帮助。

我使用:rails 4.0.0、jruby、puma。

0 投票
2 回答
524 浏览

ruby - Rubinius + Puma 不会同时处理请求

我有一个简单的基于 Sinatra 的应用程序,它将每个请求冻结 30 秒:

我使用以下 puma 配置在 rubinius 2.0.0-rc1 上设置了 puma (2.5.1) Web 服务器:

我期待这个配置能够同时处理 3 个请求,而第 4 个和后续请求将等待未使用的线程。但似乎请求是按顺序运行的。只有在第一个请求完成后才开始处理第二个请求。为什么?

0 投票
2 回答
433 浏览

ruby-on-rails - 使用 MRI Ruby2 或 JRuby 1 的新 Rails 项目?

我是 Ruby on Rails 的新手,很快就开始了一个项目。在阅读了不同的 Ruby 实现之后,我想知道使用哪种设置。我的项目预计会有相当多的流量。

我正在考虑两个选项:MRI Ruby (v 2.0) 和 JRuby (v 1.9)。我担心 MRI Ruby 不是多线程的,并且担心这会对 Web 应用程序产生影响。也许应用服务器可以消除这个问题?现在看起来我们将使用 Puma 作为应用程序服务器。

简而言之,我应该使用 JRuby,因为它在 1.9 上是多线程的,还是应该在 2.0 上使用 MRI Ruby?

0 投票
2 回答
10165 浏览

ruby-on-rails - 为什么 gitlab 6 切换回独角兽?

Gitlab 6.0昨天发布。我很想知道他们为什么从Puma转到Unicorn。5 之前的版本使用Unicorn。我认为切换到Puma会更好。

这个开关有技术原因吗?

0 投票
2 回答
8481 浏览

ruby-on-rails - 多进程 VS 多线程服务器最受益的是什么?

谁能解释每种并发方法的瓶颈是什么?

Unicorn(基于进程)和Puma(基于线程)这样的服务器。

每种方法是否更喜欢 CPU 内核?线程?或者只是时钟速度?还是特殊的组合?

在使用专用服务器的情况下,如何确定所需的最佳 CPU 特性?

以及如何确定 Unicorn 的最佳工人数量,或 Puma 的线程数量?

0 投票
1 回答
1569 浏览

ruby-on-rails - 服务器发送事件和 Rails 流

我正在试验 Rails 4ActionController::Live和服务器发送事件。我正在使用 MRI 2.0.0 和 Puma。

就我所见,每个连接的客户端都与服务器保持活动连接。我想知道是否可以在不保持所有响应流运行的情况下利用 SSE。

Puma 使用线程管理多个连接,我想 cuncurrent 连接的数量是有限制的。
如果我想支持一个真实的场景,成千上万的客户注册到我的 Rails 应用程序以进行 SSE 事件?

有什么例子吗?

此外,我通常在 nginx 反向代理后面运行 Rails 应用程序服务器。它需要任何特定的设置吗?

0 投票
1 回答
5953 浏览

ruby - 使用 Ruby / Puma 的本地 SSL

我正在运行本地 puma 服务器,但无法在 SSL 下加载资源。

我有一个本地签名的证书。

我正在尝试使用以下配置运行服务器:

现在,当我访问https://localhost:9292or时https://127.0.0.1:9292,浏览器只是旋转并且服务器没有响应。不返回任何资源。它两次向我显示了 HTML 标题标签,但几乎总是我什么也没得到。

任何想法?其他想法?真的需要在本地运行这个应用程序的 https 版本,我不知道该怎么做。

编辑:记录了初始请求,但没有响应:

有时我会收到此错误:

0 投票
5 回答
5463 浏览

ruby-on-rails - Puma fork 后重新连接 Redis

我在 Rails 应用程序中使用全局变量来存储使用redis gem的 redis 客户端。在 aconfig/initializers/redis.rb中,我有

然后在应用程序代码中,我$redis用来处理 Redis 存储中的数据。

我还在生产环境中使用puma作为 Web 服务器,并使用 capistrano 来部署代码。在部署过程中,capistrano 重启 puma。

每次我启动或重新启动 puma web 服务器时,当我第一次使用$redis访问 Redis 存储中的数据时,总是会收到“内部服务器错误”。我看到了类似的错误Redis::InheritedError (Tried to use a connection from a child process without reconnecting. You need to reconnect to Redis after forking.)

用 google 和 stackoverflow 搜索让我认为在 puma fork 子进程之后我需要重新连接到 Redis。所以,我在我的添加config/puma.rb

但我仍然收到由Redis::InheritedError (Tried to use a connection from a child process without reconnecting. You need to reconnect to Redis after forking.).

我看到这篇文章http://qiita.com/yaotti/items/18433802bf1720fc0c53。然后我尝试添加config/puma.rb

那没有用。

我试着config/initializers/redis.rb$redis.ping之后Redis.new。那也没有用。

如果 puma 在没有运行 puma 进程的情况下启动,或者在运行 puma 进程的实例时重新启动,我会收到此错误。

刷新页面会让我克服这个错误。但即使在第一次尝试使用$redis. 我在想我没有使用redisgem 或正确配置它的重新连接。有人可以告诉我:

  1. 这是在 Rails 应用程序中使用redisgem 的正确方法吗?
  2. 应该如何redis重新连接puma

pumagem 文档说,“你应该在这个块中放置关闭全局日志文件、redis 连接等的代码,这样它们的文件描述符就不会泄漏到重新启动的进程中。否则将导致描述符慢慢耗尽并最终由于服务器多次重新启动,因此出现了模糊的崩溃。” 这是在谈论on_restart街区。但它没有说明应该如何做。

0 投票
2 回答
1201 浏览

ruby-on-rails - 最佳调优实践,Puma + Heroku + Rails 4 + Ruby 2.0 的经验

我一直在阅读几乎所有关于 Heroku 上 Puma 调优的文章,但我无法在这里找到最佳位置。

我有一个每天访问量约为 100k 的网站。

我尝试使用 2x Dynos。该应用程序是一个普通的 Rails 应用程序,主要执行选择直接命中内存缓存的 80%。每个工人的 RAM 使用量可以在 160-180mb 之间。

我试过了:

也是这样的:

没有一个结果让我信服。与上周相比,网页浏览量始终下降 %,网站流量没有变化。

有没有人有调整高流量网站的经验并想分享?几乎所有文章都解释了大部分相同的配置,但是当有 100 人同时访问该站点时,事情开始变得令人讨厌。

0 投票
15 回答
485470 浏览

nginx - NGINX:从上游读取响应头时上游超时(110:连接超时)

我让 Puma 作为上游应用服务器运行,Riak 作为我的后台数据库集群。当我发送一个请求,该请求为大约 25K 用户减少一大块数据并将其从 Riak 返回到应用程序时,我在 Nginx 日志中收到错误消息:

从上游读取响应标头时上游超时(110:连接超时)

如果我在没有 nginx 代理的情况下直接查询我的上游,使用相同的请求,我会得到所需的数据。

一旦放入代理,Nginx 超时就会发生。

Nginx 有一堆超时指令。我不知道我是否遗漏了一些重要的东西。任何帮助将不胜感激....