标签: phusion

使用Phusion Passenger和Rails时,初始服务器启动缓慢

为了跳上Phusion Passenger的乐队,我们为一个小型rails应用程序设置了一个临时服务器来测试.

到目前为止,使用它非常好,它使安装/配置和部署应用程序变得轻而易举.问题是我们使用的网站不会经常受到影响,似乎在后台关闭服务器.这意味着当某人进入该站点时,他们会等待很长时间,直到它启动一个新服务器来处理该请求.我们已经阅读了文档,尝试了很多不同的设置(智能/智能-lv2模式,乘客时间等),但仍然没有找到真正的解决方案.

在浏览Google结果后,我们无法真正找到有用的信息.目前,我们有一个cron作业,每隔一段时间发出一次请求,试图让服务器保持运行.

是否有其他人遇到此问题,您对修复有任何建议吗?

deployment ruby-on-rails passenger phusion

87
推荐指数
3
解决办法
2万
查看次数

modrails - 流氓ruby进程消耗100%cpu

我从mod_rails获得ruby实例变为"流氓" - 这些进程不再列在乘客状态并使用100%cpu.

除了安装god/monit来杀死实例,有人能给我一些关于如何防止这种情况的建议吗?我无法在日志中找到任何有帮助的内容.

ruby ruby-on-rails passenger mod-rails phusion

19
推荐指数
2
解决办法
7124
查看次数

mod_rails或Phusion Passenger最终是Ruby on Rails部署的答案吗?

我从一些书中读到,Phusion Passenger是轻松实现Ruby on Rails部署的答案.但我的朋友说,首先是Apache +一堆Mongrels,然后是lighttpd,然后是nginx,现在是Passenger,它似乎无穷无尽......

他还说他使用了使用Passenger的dreamhost,有时他看到他的请求没有被处理.

所以我想知道Passenger是否是RoR部署的最终答案?你使用它并使用"ab"命令来测试网站是否做得很好?

ruby ruby-on-rails passenger mod-rails phusion

14
推荐指数
1
解决办法
1986
查看次数

如何限制Phusion Passenger内存使用?

有没有办法限制Phusion Passenger在提供应用程序时使用的内存量?

我收到大量流量后,我的主人来了并杀了这个过程,所以我最终提供了空白页面.有什么我可以说的"嘿,不要使用超过100Mb,只产生3个进程,无论网站如何超载"

ruby-on-rails passenger phusion

11
推荐指数
1
解决办法
8740
查看次数

使用phusion/baseimage还值得吗?

我的问题很简单:为什么要使用phusion/baseimage

我已经阅读了该网站.我一直都喜欢它.它的销售优于基础,专为Docker而设计的超薄.话虽如此:那么为什么现在不使用它的官方版本呢?

phusion/baseimage 现在已经出去了一段时间,但是php,mysql等的官方版本仍然直接使用debian或ubuntu ...为什么?

我没有找到任何从phusion/baseimage继承自己的简单docker-esque(单实例)包.php7和nginx直接使用debian:jessie.mysql使用ubuntu.

整个问题phusion/baseimage是远离基于完全膨胀的"VM"容器.

那么,我的问题又来了:使用phusion/baseimage还值得吗?

php mysql nginx phusion docker

8
推荐指数
1
解决办法
3395
查看次数

Phusion Passenger无法使用Apache

更新:当输入'passenger-memory-stats'时,我显示:

---Passenger processes---
Processes: 0
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?为什么即使我在httpd.conf中添加并重启apache,乘客也不会启动?

我无法让Phusion Passenger在服务器上运行Ruby on Rails.我已按照Phusion网站上的所有说明操作并安装了乘客,并修改并创建了Apache VirtualHost以指向新目录并验证所有.conf文件是否已成功加载.还加载了httpd -M passenger_module.我还成功地在localhost上运行了Passenger Standalone和Rails服务器webrick,并且能够验证它是否适用于curl.

但是当我尝试从浏览器运行我的域时,我只得到404找不到的或者我在VirtualHost下由DocumentRoot指定的文件夹中创建的空索引文件(所以我知道它正在加载.conf并进入正确的目录)但它没有加载Rails应用程序....有人可以指出我做错了什么?这是我的设置和配置:

ruby -v:
ruby 2.1.2p95

rails -v:
Rails 4.2.3

passenger -v:
Phusion Passenger version 5.0.15

httpd -v:
Apache/2.2.27 (Unix)

opearting system:
CentOS

uname -i: 
x86_64
Run Code Online (Sandbox Code Playgroud)

httpd.conf中:

Include "/usr/local/apache/conf/includes/mydomain.conf"
LoadModule passenger_module /usr/local/rvm/gems/ruby-2.1.2/gems/passenger-5.0.15/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /usr/local/rvm/gems/ruby-2.1.2/gems/passenger-5.0.15
PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.1.2/wrappers/ruby
</IfModule>
Run Code Online (Sandbox Code Playgroud)

/usr/local/apache/conf/includes/mydomain.conf:

<VirtualHost 208.79.235.241:80>
ServerName mydomain.com
DocumentRoot /home/clevert/public_html/rails_apps/mydomain.com/public
PassengerRuby /usr/local/rvm/gems/ruby-2.1.2/wrappers/ruby
<Directory /home/clevert/public_html/rails_apps/mydomain.com/public>
Allow from all
Options -MultiViews
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

有关ruby-command的passenger-config:

Command: /usr/local/rvm/gems/ruby-2.1.2/wrappers/ruby
Run Code Online (Sandbox Code Playgroud)

passenger-config validate-install:

Checking whether this Passenger install …
Run Code Online (Sandbox Code Playgroud)

ruby apache ruby-on-rails passenger phusion

6
推荐指数
1
解决办法
2574
查看次数

Errno::ECONNRESET:使用 rest-client 在 Rails 中由对等方重置连接

我们有一个 Ruby on Rails 应用程序,它具有“搜索”功能(搜索某个公司)。从浏览器用户输入一些名称并点击搜索,这个搜索对外部系统进行一个休息 api 调用,并为我们提供一些搜索结果。

我们正在使用“ rest-client ”(用于 Ruby on Rails)。

我注意到这似乎工作了几个小时,突然间我的搜索似乎突然中断了,我可以在我的日志中看到:

Errno::ECONNRESET: 连接由对等方重置

我们试图通过查看日志来调查这个问题,但我们没有看到任何日志。

如果我们需要再次进行此搜索,我们需要重新启动乘客,然后它会立即生效。这只发生在生产环境中。我在分期测试它似乎工作得很好。

问题:

  1. 什么可能导致这个“重置问题”
  2. 为什么在我的 prod 乘客重置后它又开始工作了。
  3. 我们使用reset-client 应该写一段代码,在这个异常发生时手动关闭连接。
  4. 防火墙中的任何问题都可能导致这种情况?
  5. 是否有任何代码可以放在异常中以重新启动此连接,以便下一次调用成功。

代码:

def call
   resp_data = RestClient.get(@request_url, @header)
   rescue => error
     puts 'Exception: ' error.message
end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails passenger phusion rest-client

6
推荐指数
1
解决办法
6693
查看次数

如何在Ubuntu中清除Ruby Phusion Passenger的缓存?

我已经尝试重新启动apache并且仍然显示缓存的页面,因此必须有某个文件夹.我没有'公共/缓存',所以我应该看看其他地方?是否有可以触发此效果的URL标志?

ruby caching passenger phusion

5
推荐指数
1
解决办法
6852
查看次数

在rails中处理数百个并发请求

我在rails应用程序上写了一个ruby,这个网站最重要的特色之一就是现场投票.我们完全希望在短短1分钟内收到10k的投票请求.与其他请求一起意味着我们可能会收到大量请求.

我最初的想法是将服务器设置为使用apache + phusion,但是,对于投票而言,我正在考虑在侧面编写php脚本并在memcached中写入/读取信息.数据只需要持续大约15分钟,因此在1分钟内写入数据库10,000次似乎毫无意义.我们还需要标记用户的ip,这样他们就不会投票两次,因此在memcached中更加复杂.

如果有人有任何建议或想法尽可能做到最好,请帮忙.

php ruby apache ruby-on-rails phusion

5
推荐指数
1
解决办法
252
查看次数

乘客在启动时和经过几秒钟的空闲时间后变慢

我目前正面临Passenger(4.0.18)与简单的Rails 4.0.0应用程序相结合的问题.问题是,在启动apache之后,第一个请求非常慢(通常为30.x秒).以下请求非常快,但如果应用程序空闲20秒以上,则会再次发生相同的情况.

现在,这个问题一般已经在这里讨论了几次,当然我已经调整了apache配置:

 PassengerSpawnMethod smart
 PassengerPoolIdleTime 1000
 RailsAppSpawnerIdleTime 0
 PassengerMaxRequests 1000
 PassengerMaxPreloaderIdleTime 0
Run Code Online (Sandbox Code Playgroud)

但这根本没有帮助.如果我检查乘客状态,它会告诉我:

 Version : 4.0.18
 Date    : 2014-01-31 13:06:59 +0100
 Instance: 20601
 ----------- General information -----------
 Max pool size : 6
 Processes     : 1
 Requests in top-level queue : 0
Run Code Online (Sandbox Code Playgroud)

有趣的是,当我在做请求时对乘客状态进行"观察"时,这里没有任何改变.(特别是请求行).

我已经摆弄了tcpdump,所有请求都及时到达,因此没有可见的网络延迟.我还启用了apache扩展日志记录(添加了请求时间) - 这非常有趣,假设正常请求大约需要200毫秒,那么其中一个慢速请求只需要30.2秒.

知道这会导致什么吗?

Apache是​​2.2.15.(redhat版本,带有后向安全补丁... :))

提前谢谢,Björn

passenger phusion ruby-on-rails-3

5
推荐指数
1
解决办法
1575
查看次数