问题标签 [passenger]

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 投票
1 回答
303 浏览

ruby-on-rails - Ubuntu 上的 Phusion Passenger 没有在供应商目录中看到插件

在 Ubuntu Hardy Heron 上运行的 Phusion Passenger 正在轰炸要求的“lingua/en/readability”。该插件安装在插件目录中,并且可以与脚本/服务器一起正常工作,但不能与乘客一起工作。

错误信息:

应用程序需要的源文件丢失。

有关错误的更多信息可能已写入应用程序的日志文件。请检查它以便分析问题。

错误消息:没有要加载的文件 -- lingua/en/readability (MissingSourceFile)

0 投票
2 回答
469 浏览

apache - 在同一个开发框中使用 apache 和 nginx 的乘客

我的笔记本上有 Apache 和乘客。我想在同一台机器上测试 Nginx 和乘客。我可以在 8080 上安装 Nginx,在 80 上安装 apache。但是我可以在同一台机器上安装同一个服务器的乘客吗?

0 投票
3 回答
1349 浏览

ruby-on-rails - 回形针作为宝石和 Phusion 乘客 (mod_rails) - 找不到回形针

我正在使用 thinkbot 的回形针作为模型的附件,并且在运行 mac os x 和 mongrel 的开发机器上一切正常。但是,当我将 may 应用程序部署到运行 apache/mod_rails (2.2.5) 的 debian 机器时,我无法启动它。我得到“未定义的方法 has_attached_file”(或使用初始化程序的“未初始化的常量回形针”)。我确定有一个简单的解决方案,但我似乎是盲人......有什么提示吗?谢谢!

0 投票
1 回答
4173 浏览

ruby-on-rails - Phusion 乘客和数据库池

如果我的 Rails 应用程序在我的 database.yml 文件中将数据库池大小设置为 5(默认值),并且我正在使用 Phusion Passenger 运行,这是否意味着乘客生成的每个进程最多可能有 5 个数据库连接,还是所有进程总共有 5 个?

0 投票
1 回答
1109 浏览

sinatra - 如何为带有乘客的 Sinatra 应用程序配置 VirtualHost?

我在Passenger 上运行了一个Rails 应用程序,一切正常。

我想添加一个 Sinatra 应用程序作为 Rack 应用程序与乘客一起运行,但我收到一个路由错误。

我的 VirtualHosts 文件如下所示:

我的 Sinatra 应用程序非常简单;我有一条get "/do_something" do ....没有公共文件的路线。它只响应一些 JSON。

我怎样才能让它做类似的请求www.sub.domain2.com/do_something

0 投票
1 回答
404 浏览

ruby-on-rails - 将 Rails 应用程序部署到 Fedora 8 w/Passenger 时遇到问题

我正在使用 Capistrano 并配置了所有内容。我遇到的奇怪问题是,之前,我收到了一个很好的乘客错误,说明出了什么问题(我没有完全上传我的 vendor/rails 目录)。然而,在我这样做之后,我现在得到的是一般的 Rails We're sorry, but something went wrong500 错误,而不是乘客错误页面。我的生产日志什么也没有显示(只有创建了日志)。Apache 日志什么也没显示。我不明白为什么我不再看到告诉我究竟出了什么问题的乘客错误;修复乘客抱怨的错误不应该阻止它到达那里,不是吗?

谁能帮我?

仅供参考,我在同一台服务器上运行多个基于 PHP 的应用程序,并将 rails 应用程序设置为子域(例如 railsapp.mydomain.com)。完整的堆栈是:

  • 费多拉核心 8
  • 阿帕奇 2.2.9
  • MySQL 5.0.45
  • 导轨 2.3.4
  • 乘客 2.2.5
0 投票
4 回答
666 浏览

ruby-on-rails - Phusion-Passenger 似乎创建了许多(140 多个)孤立进程

我们正在运行 3 台 Apache Passenger 服务器共享相同的文件系统,每台服务器运行 11 个 Rails 应用程序。

我们已经设置

  1. PassengerPoolIdleTime = 0 以确保没有任何应用程序完全消失,并且

  2. PassengerMaxPoolSize = 20 以确保我们有足够的进程来运行所有应用程序。

问题是当我在其中一台服务器上运行乘客内存统计时,我看到了 210 个虚拟机!

当我运行乘客状态时,我看到了 20 个应用程序实例(如预期的那样)!

有谁知道发生了什么?我如何确定这 210 个实例中的哪些仍在使用,以及如何定期杀死这些实例?PassengerMaxInstancesPerApp 会做些什么来减少那些看似孤立的实例吗?

0 投票
4 回答
1757 浏览

ruby-on-rails - 如何检查 HTTP 请求延迟/等待时间的原因?

我向我的服务器发出一个简单的 GET 请求,它平均在大约 1.2 秒后返回(使用 firebug NET 选项卡,“等待 reqponse”部分 - 甚至不是整个响应时间)

我对服务器的 ping 是 0.250

使用带有 rails 2.3.3 的乘客,在 rails 日志中,请求占用 ~0.023

我的服务器在 GoDaddy 上,所以我也用 firebug 检查了他们的主页——他们页面的“等待 reqponse”时间约为 0.320

最坏的情况应该是 0.4 左右......那么我在哪里失去了另外的 0.8 秒?

我还能检查什么?

编辑:

似乎它与 Rails 无关 - 图像请求(只有 apache 响应,根本没有碰到 Rails)也需要约 1.2 秒

0 投票
4 回答
1103 浏览

ruby-on-rails - 发布一个大的身体会使我们的堆栈崩溃——但只在生产模式下?

我们的 Rails 应用程序有两个部署到服务器的环境,一个是暂存环境,另一个是默认的生产环境。

staging.rb 文件是 config/environments 文件夹中的 production.rb 的副本。两者的区别在于 whiny nils 设置为 true:

由于 Rails 应用程序主要用于它的 API,因此我们在我们的一个内部临时服务器上运行它以供开发人员使用。这行得通,顺利进行了近 4 个月。当需要转移到我们的生产服务器时,每当 POST 或 PUT 带有很大(有时非常非常大)的主体时,堆栈就会开始持续崩溃。在两台服务器之间进行测试时,登台服务器完美地处理了相同的请求。

崩溃/挂起中最令人沮丧的部分是缺少日志或追踪堆栈中发生崩溃的位置(nginx、phusion 乘客、ruby 1.9 补丁级别 243、rails 2.3.4)。nginx 错误日志、rails 日志或我们能找到的任何地方都没有出现任何内容。由于我们使用更新版本的 nginx、passenger 和 ruby​​ 运行生产服务器(补丁级别高于 staging,但仍然是 1.9),我们开始一次恢复每个组件,甚至转移所有可执行文件和支持文件(基本上我们在 /usr/local 中安装的所有内容)到生产机器无济于事。就在我们即将擦拭机器并再次尝试每一步时,有人建议将生产机器切换到“暂存”环境。. . 就像魔术一样,问题解决了!

想知道可能导致错误的原因,我们开始梳理 Rails 核心、我们自己的代码和我们所有的插件,寻找一些线索,了解是什么可能导致生产环境中出现如此大规模的挂起/崩溃,一次再次无济于事。

我能找到的唯一线索是行为。当测试“on”应用程序(rails 应用程序实际提供的页面之一)时,我会通过发送请求使应用程序崩溃,然后在频繁刷新(通常是 3-4 次)后,我将能够从Nginx 日志,最终应用程序将再次开始处理请求。错误如下:

通常当出现字符编码错误时,我的第一轮是 ruby​​ 1.9 。. . 但是,从我的测试中您可以看出,两台机器上的版本相同!

毕竟,我想我想知道。. . 有人知道发生了什么吗?显然,我们暂时可以在 staging 中运行我们的应用程序,但我担心我可能发现了一些更深层次的问题需要解决。关于我应该寻找发生这种情况的下一个地方有什么想法吗?

我们的设置:Mac OS X 服务器:10.6.1、
Rails 2.3.4、
Ruby 1.9p243、
Nginx 0.8.17、
Passenger 2.2.5

我们需要的宝石:
environment.rb
守护进程
rmagick
test.rb
rspec
rspec-rails
factory-girl
rack-test

我们安装的插件:
acts-as-dag(用于创建有向无环图的活动记录插件)
daemon_generator
globalize2
no-peeping-toms(用于测试)
thinking-sphinx


更新(响应 khellll):

我试图将 config.whiny_nils = true 添加到生产环境,但是仍然发生崩溃。

另外,我回到我们的登台服务器并将环境设置为“生产”。. .同样的崩溃!

对我所说的“大型”请求主体的含义进行了一些澄清。会持续使应用程序崩溃的 POST/PUT 之一是大约 20,000 个字符(json)。由于 API 在一天中始终以小的 PUTS/POSTS 使用并保持运行,但只有在发出这些较大的请求时才会崩溃/挂起,我假设两者是连接的。

就 Rack/Ruby 1.9 而言。由于那里有大量关于 Rack 和 1.9 的信息,我确实将我们的 Rack gem 升级到了 git 存储库中的最新版本(据说修复了 1.9 的一些问题)。我读过关于 rewindable_input、ruby 1.9 等的大量困难……但是,由于我没有遇到我在其他 1.9 应用程序中遇到的 rewindable_input 错误,我确实认为这是一个不同的问题。此外,我在更改 rails 环境解决问题时排除了 Rack(当我搜索 Rack 源代码时,似乎没有任何特定于环境的方法会导致错误)。

希望这可以帮助!


更新以回应 pauliephonic

根本没有消息命中 Rails 日志(这实际上促使我在我们的 Web 堆栈中搜索了一段时间以查找该问题)。我认为发生崩溃/挂起的线索是,一旦发出大请求,应用程序在每个请求上只返回 500 个错误,但是这 500 个错误不会显示在 Rails 日志中。

我们的数据库配置是一样的(我们使用的是mysql集群,所以字面上是一样的,现在暂时使用本地mysql数据库,但是无论使用什么数据库都确认错误退出)

就多字节/ unicode而言。. . 我们正在一个国际化的应用程序中工作。. . 但是我不认为rails处理生产和其他人之间的unicode更改的方式对吗?正如我上面所说,这发生在POSTor上PUT。我在调试期间测试的方法是转到我的一个大型、高度嵌套的模型的相同编辑页面,然后尝试“保存”它。这会在生产中使应用程序崩溃,但不会在暂存中使应用程序崩溃。每次我测试相同的字符、相同的内容、相同的按钮、相同的行为。. . 根据环境做出不同的反应。我什至不能胡椒puts我的代码中到处都是语句,因为(看起来)请求没有进入 rails 应用程序。我的 Rails 日志或 Nginx 错误日志中没有收到任何错误消息(保存我在多次刷新时发布的那个)。

0 投票
3 回答
1076 浏览

ruby-on-rails - 在 OS X 10.6 上运行乘客的权限

我不确定如何在 OSX 上为乘客设置权限。我已经顺利完成了安装,但我现在明白,Passenger 以拥有 environment.rb 的人身份运行。那是我自己的用户和组,叫它苹果和苹果。据我了解,Apache 以 _www 和 _www 运行。这里的正确策略是什么?假设应用程序位于

/Users/apple/Documents/projects/my_rails_app

我假设我没有将该路径中所有内容的所有者和组设置为_www。而且我不认为我可以像苹果和苹果一样运行Apache,对吧?

是否将自己置于_www组中?或者...??

感激地收到任何帮助。

丹唐纳森,多伦多