Articles of ruby on rails

为什么我的Rails应用程序挂起?

我有一个运行在Apache / Passenger下的适度复杂的Rails应用程序,闲置一段时间后变得没有响应。 这需要几分钟的时间来响应,但可以通过重新启动Web服务器暂时恢复。 服务器负载是微不足道的,因为它是一个内部应用程序,很less有并发用户。 我也试过nginx,所以这不是Apache导致的问题。 Apache或Rails日志中没有任何有用的东西。 根据Passenger文档,我发送了一个SIGABRT并且有一个堆栈跟踪(在下面)。 它的数据库不是重载,我试过禁用任何可能导致locking的后台处理。 SignalException(SIGABRT): 乘客(3.0.17)lib / phusion_passenger / abstract_request_handler.rb:443:在`block in install_useful_signal_handlers' activerecord(3.2.8)lib / active_record / connection_adapters / mysql2_adapter.rb:73:在`call' activerecord(3.2.8)lib / active_record / connection_adapters / mysql2_adapter.rb:73:在'ping' activerecord(3.2.8)lib / active_record / connection_adapters / mysql2_adapter.rb:73:在`active?' activerecord(3.2.8)lib / active_record / connection_adapters / abstract_adapter.rb:219:在`verify!'中 activerecord(3.2.8)lib / active_record / connection_adapters / abstract / connection_pool.rb:327:in`block in […]

如何解决高CPU +过多stat(“/ etc / localtime”)和clock_gettime(CLOCK_REALTIME)调用

我一直在Ruby on Rails应用程序上遇到了非常高的CPU(请参阅下面的堆栈),并试图诊断可能的原因无济于事。 堆栈: ruby1.9.3 导轨3.2.6 Apache / 2.2.21(Debian) Phusion Passenger 3.0.11 每当我对spiking Rack进程PID运行strace ( 见下面的顶部摘录 ),我看到一吨stat("/etc/localtime")和clock_gettime(CLOCK_REALTIME)调用,不知道如何停止这些。 摘录自顶部showin运行PID: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 11674 www-user 20 0 313m 182m 5076 R 99 2.3 63:04.60 Rack: /var/www/my_rails_app/current 11634 www-user 20 0 411m 216m 5144 S 10 2.7 197:55.63 Rack: […]

对于RoR应用程序,强制URL根为HTTPS而不是HTTP

我试图通过Apache反向代理运行Redmine(RoR)。 Mongrel提供Apache保护的纯文本页面,并向我的用户提供服务。 问题是,Redmine中的各种链接和redirect将用户发送到http://而不是https://。 pipe理页面上的设置为httpsconfiguration,但这似乎没有帮助。 我也将这一行添加到environment.rb来解决一个相对的根问题(解决它,但不是https问题): ActionController::AbstractRequest.relative_url_root = "/r/" 我如何强制Redmine总是使用https? 请注意,redirect将无法正常工作,因为我的服务器只有:443打开,因此:80个请求将不会被重写。 重写网站的数据可能工作,但似乎不理想。

尝试在我的VPS上安装RVM时出错

我正在部署我的第一个Rails应用程序到我的mediatemple(DV),我第一次尝试使用此命令安装RVM: bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer) 我得到以下错误: curl: (60) SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed More details here: http://curl.haxx.se/docs/sslcerts.html curl performs SSL certificate verification by default, using a "bundle" of Certificate Authority (CA) public keys (CA certs). The default bundle is named curl-ca-bundle.crt; you […]

Mongodb制作服务器与升级相比太慢了

我们有两套在Rackspace VPS上运行的db和app服务器。 生产和舞台。 该应用程序在Rails上,db是MongoDB。 虽然升级(与许多文件,产品,55K)工作得很好,生产服务器是非常缓慢的。 20倍或更多。 即使简单的查询接近18秒! 这是我到目前为止所做的,我仍然无法深究。 重新启动Mongo服务。 检查ping时间黑/白应用程序和数据库服务器,看看networking是否是问题。 事实并非如此。 在模型上显式运行create_indexes,但无济于事。 启用mongo分析选项,但它没有给我任何额外的信息,而我已经有了。 下面是一些db调用正在运行时的mongostat生产快照: insert query update delete getmore command flushes mapped vsize res faults locked % idx miss % qr|qw ar|aw netIn netOut conn time 0 0 0 0 0 1 0 1.95g 4.55g 122m 76 0 0 0|0 1|0 62b 1k 2 09:07:25 […]

FastCGI具体做什么(对于Ruby,Java和Python)?

如果我有一台运行Apache的服务器,并且安装了FastCGI,那么是否可以运行Ruby和Python脚本? 如果服务器上已经安装了Python,是不是可以将.py添加到httpd.conf文件中的CGI部分来使Python脚本工作? 对于Ruby和Java,如果安装了Ruby和Java,是否消除了对Mongrel和Tomcat的需求? 除非我错过了一些东西,FastCGI似乎只能让你做你已经做的事情。

Ec2实例向下错误:无法为这里的文件创build临时文件

Iam运行我的网站build立在开​​发模式在轨道上的ruby在EC2实例,当我SSH的那个实例,它说.. Welcome to Ubuntu 12.10 (GNU/Linux 3.5.0-17-generic x86_64) * Documentation: https://help.ubuntu.com/ System information as of Thu Mar 28 05:10:40 UTC 2013 System load: 0.48 Processes: 84 Usage of /: 94.9% of 7.87GB Users logged in: 0 Memory usage: 49% IP address for eth0: 10.130.18.205 Swap usage: 0% => / is using 94.9% of 7.87GB Graph […]

连接到AWS负载平衡器时,实例会变慢

我在AWS负载平衡器后面安装了5个t1.micro EC2。 一旦连接到LB,所有实例都会减速。 即使我直接向实例发送请求(绕过LB),10个请求中的8个请求也会花费30多秒。 实例的CPU负载似乎不成问题。 当我从LB中删除一个实例时,它的响应很好。 一旦它被添加回LB,请求再次减慢。 任何人都可以给我一些线索,为什么一旦LB连接起来,实例响应速度就会变慢? 提前致谢

带有Rails 3环境的Apache Passenger?

我正在通过Apache Passenger运行一个新的Rails 3应用程序,并试图在stage环境中运行它。 根据文档以及之前的Apache Passenger应用程序,我的configuration文件已经正确设置,但是我无法让它在合适的环境下运行,即使我在我的VirtualHostconfiguration中指定了它,如下所示: RailsEnv stage 有什么build议么? 注意:如果有问题,我使用Ruby 1.9.2-p0

透明地在一个地址上提供多个Web应用程序

我有多个Web应用程序在自己的http服务器上运行,例如8080端口上的ruby / rails应用程序和8081上的python / cherrypy应用程序。 是否可以通过单个端口地址使这些透明地可用? 也许通过添加转换所有请求的第三个http服务器(例如http:// localhost / app1 & http:// localhost / app2 )。 我select的平台是Linux