問題タブ [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.
ruby-on-rails - Ubuntu の Phusion Passenger が vendors ディレクトリにプラグインを表示しない
Ubuntu Hardy Heron で実行されている Phusion Passenger は、'lingua/en/readability' を要求しています。プラグインは plugins ディレクトリにインストールされ、Passenger だけでなく script/server で正常に動作します。
エラーメッセージ:
アプリケーションが必要とするソース ファイルがありません。
エラーに関する詳細情報が、アプリケーションのログ ファイルに書き込まれている可能性があります。問題を分析するためにチェックしてください。
エラー メッセージ: no such file to load -- lingua/en/readability (MissingSourceFile)
apache - 同じ開発ボックスに apache と nginx を搭載した Passenger
私のノートにはApacheとパッセンジャーがあります。同じマシンでNginxとパッセンジャーをテストしたい。Nginx を 8080 に、Apache を 80 にインストールできます。しかし、両方のサーバーを同じマシンにインストールすることはできますか?
ruby-on-rails - gem としての Paperclip と Phusion Passenger (mod_rails) - Paperclip が見つからない
私はモデルへの添付用に thinkbot のペーパークリップを使用していますが、Mac OS X と雑種を実行している私の開発マシンではすべて正常に動作します。ただし、apache/mod_rails (2.2.5) を実行している debian マシンにアプリをデプロイすると、開始できません。「undefined method has_attached_file」(または初期化子を使用した「uninitialized constant Paperclip」) を取得します。簡単な解決策があると確信していますが、私は目が見えないようです...ヒントはありますか?ありがとう!
ruby-on-rails - PhusionPassengerとデータベースプーリング
Railsアプリケーションのdatabase.ymlファイルでデータベースプールサイズが5(デフォルト)に設定されていて、Phusion Passengerを使用して実行している場合、Passengerが生成するプロセスごとに最大5つのデータベース接続が存在する可能性があります。 、またはすべてのプロセスで合計5つですか?
sinatra - Passengerを使用してSinatraアプリのVirtualHostを構成するにはどうすればよいですか?
PassengerでRailsアプリを実行しましたが、すべて正常に動作します。
PassengerでRackアプリケーションとして実行するSinatraアプリを追加したいのですが、ルーティングエラーが発生します。
私のVirtualHostsファイルは次のようになります。
私のSinatraアプリは本当にシンプルです。get "/do_something" do ....
パブリックファイルなしで呼び出されたルートがあります。一部のJSONでのみ応答します。
どうすれば次のようなリクエストを実行できますかwww.sub.domain2.com/do_something
ruby-on-rails - Passengerを使用してFedora 8にRailsアプリをデプロイする際に問題が発生しました
Capistrano を使用しており、すべてが構成されています。私が抱えている奇妙な問題は、以前、何が問題なのかを示す素敵な Passenger エラーが発生したことです (ベンダー/レール ディレクトリを完全にアップロードしていませんでした)。We're sorry, but something went wrong
しかし、これを行った後、Passenger エラー ページではなく、一般的な Rails 500 エラーが表示されるようになりました。私の運用ログには何も表示されません (ログが作成されたことのみ)。Apache ログには何も表示されません。何が問題なのかを正確に示す Passenger エラーが表示されなくなった理由がわかりません。Passenger が不平を言っていたエラーを修正しても、そこにたどり着くのを妨げてはいけませんよね?
誰でも私を助けることができますか?
参考までに、同じサーバー上でいくつかの PHP ベースのアプリケーションを実行しています。レール アプリはサブドメイン (例: railsapp.mydomain.com) として設定されています。完全なスタックは次のとおりです。
- フェドーラ コア 8
- アパッチ 2.2.9
- MySQL 5.0.45
- レール 2.3.4
- 乗客 2.2.5
ruby-on-rails - Phusion-Passenger は多くの (140 以上) 孤立したプロセスを作成するようです
同じファイル システムを共有する 3 つの Apache Passenger サーバーを実行しており、それぞれが 11 の Rails アプリケーションを実行しています。
設定しました
PassengerPoolIdleTime = 0 は、どのアプリケーションも完全に停止しないようにします。
PassengerMaxPoolSize = 20 にして、すべてのアプリケーションを実行するのに十分なプロセスがあることを確認します。
問題は、サーバーの1つでpassenger-memory-statsを実行すると、210台のVMが表示されることです!
そして、passenger-status を実行すると、(予想どおり) 20 個のアプリケーション インスタンスが表示されます。
何が起こっているか知っている人はいますか?これらの 210 のインスタンスのうち、まだ使用されているインスタンスを特定するにはどうすればよいですか? また、それらを定期的に削除するにはどうすればよいでしょうか? PassengerMaxInstancesPerApp は、孤立しているように見えるインスタンスを減らすために何かをしますか?
ruby-on-rails - HTTPリクエストのレイテンシ/待機時間の原因を確認するにはどうすればよいですか?
サーバーに単純なGETリクエストを発行すると、平均で約1.2秒後に戻ってきます(firebug NETタブを使用すると、「リクエストを待機中」の部分であり、レスポンス時間全体ではありません)
サーバーへのpingは0.250です
レール2.3.3で乗客を使用すると、レールログでリクエストに約0.023がかかります
私のサーバーはGoDaddy上にあるので、firebugで彼らのホームページもチェックしました-彼らのページの「要求を待っている」時間は〜0.320です
最悪の場合は約0.4になるはずです...では、残りの0.8秒はどこで失われたのでしょうか。
他に何を確認できますか?
編集:
Railsとは関係がないようです-画像リクエスト(apacheのみが応答し、Railsにまったくヒットしない)にも約1.2秒かかります
ruby-on-rails - 大きな本文を投稿するとスタックがクラッシュしますが、本番モードのみですか?
私たちの Rails アプリケーションには、サーバーにデプロイする 2 つの環境 (ステージング環境とデフォルトの本番環境) があります。
staging.rb ファイルは、config/environments フォルダーから production.rb のコピーです。2 つの違いは、whiny nil が true に設定されていることです。
Rails アプリケーションは主にその API に使用されるため、開発者が使用できるように社内のステージング サーバーの 1 つで実行しました。これは、ほぼ4か月間問題なく機能しました。実稼働サーバーに転送するときが来ると、POST または PUT が大きな (場合によっては非常に大きな) 本体で受信されるたびに、スタックが一貫してクラッシュし始めました。2 つのサーバー間でテストすると、同じ要求がステージング サーバーによって完全に処理されました。
クラッシュ/ハングの最も苛立たしい部分は、クラッシュが発生したスタック (nginx、Phusion Passenger、Ruby 1.9 パッチ レベル 243、Rails 2.3.4) のどこにログがないか、追跡できないことでした。nginx エラー ログ、Rails ログ、または見つけた場所には何も表示されませんでした。nginx、パッセンジャー、Ruby の更新されたバージョン (ステージングよりも高いパッチ レベルですが、まだ 1.9) を使用して運用サーバーを実行していたので、実行可能ファイルとサポートのすべてを転送するところまで行って、一度に各コンポーネントを 1 つずつ元に戻し始めました。ファイル (基本的には /usr/local にインストールしたものすべて) を本番マシンに転送しても無駄です。マシンをワイプしてすべてのステップを再試行しようとしたちょうどその時、誰かが本番マシンを「ステージング」環境に切り替えることを提案しました。. . 魔法のように、問題は解決しました!
何がエラーを引き起こしたのかを知りたくて、Rails コア、独自のコード、およびすべてのプラグインをくまなく調べて、本番環境でこのような大規模なハング/クラッシュを引き起こす可能性があるものについての手がかりを探し始めました。再び役に立たない。
私が見つけた唯一の手がかりは、行動でした。アプリ(レールアプリが実際に提供するページの1つ)を「オン」でテストすると、リクエストを送信してアプリをクラッシュさせ、頻繁に更新(通常は3〜4回)した後、 Nginx のログに記録され、最終的にアプリはリクエストの処理を再開します。エラーは次のとおりです。
通常、文字コードのエラーが発生した場合、最初に ruby 1.9 に取り掛かります。. . ただし、私のテストからわかるように、両方のマシンで同じバージョンでした!
結局のところ、私は疑問に思っているのでしょう。. . 何が起こっているのか誰にも考えがありますか?当分の間、アプリをステージングで実行できることは明らかですが、対処しなければならないさらに深い問題が見つかったのではないかと心配しています。これが起こっている場所を探すべき次の場所についてのアイデアはありますか?
セットアップ: Mac OS X Server: 10.6.1、
Rails 2.3.4、
Ruby 1.9p243、
Nginx 0.8.17、
Passenger 2.2.5
必要な Gem :
environment.rb
デーモン
rmagick
test.rb
rspec
rspec-rails
factory-girl
rack-test
インストールされているプラグイン:
act-as-dag (有向非巡回グラフを作成するためのアクティブ レコード プラグイン)
daemon_generator
globalize2
no-peeping-toms (テスト用) think
-sphinx
更新 (khell への応答):
config.whiny_nils = true を実稼働環境に追加しようとしましたが、それでもクラッシュが発生します。
また、ステージング サーバーに戻り、環境を "Production" に設定しました。. .同じクラッシュ!
「大きな」リクエストボディの意味を明確にしました。アプリケーションを一貫してクラッシュさせる POST/PUT の 1 つは、約 20,000 文字 (json) でした。API は小さな PUTS/POSTS で 1 日中一貫して使用され、稼働したままですが、これらの大きなリクエストが行われたときにのみクラッシュ/ハングしたため、2 つが接続されていると想定しました。
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 に応答して UPDATE
rails のログにメッセージがまったく記録されていません (これにより、Web スタックで問題をしばらく検索するようになりました)。クラッシュ/ハングが発生しているという私の手がかりは、一度大きなリクエストが行われると、アプリケーションはリクエストごとに 500 エラーしか返さないことですが、これらの 500 エラーは Rails ログには表示されません。
データベース構成は同じです(mysqlクラスターを使用していたため、文字通り同一でしたが、現在はローカルのmysqlデータベースを使用していますが、使用するデータベースに関係なくエラーが発生することを確認しています)
複数のバイト/ユニコードに関する限り。. . 私たちは国際化されたアプリで作業しています。. . しかし、レールが本番環境とその他の間でユニコードの変更を処理する方法は正しくないと思いますか? 上で述べたように、これはPOST
またはで発生しましたPUT
。デバッグ中にテストする方法は、大規模で大きくネストされたモデルの 1 つの同じ編集ページに移動し、それを「保存」しようとすることでした。これにより、本番環境ではアプリがクラッシュしますが、ステージングではアプリがクラッシュしません。同じ文字、同じコンテンツ、同じボタン、同じ動作をテストするたびに. . . 環境によって異なる反応。コショウさえできなかったputs
私のコードのいたるところにステートメントがありました。これは、リクエストが Rails アプリケーションに到達していないように見えたためです。RailsログまたはNginxエラーログにエラーメッセージが表示されませんでした(複数の更新で投稿したものを保存してください)。
ruby-on-rails - OSX10.6で乗客を実行するための権限
OSXでPassengerの権限を設定する方法がわかりません。インストールは正常に完了しましたが、Passengerはenvironment.rbを所有する人として実行されることを理解しました。それは私自身のユーザーとグループであり、apple&appleと呼んでいます。私が理解しているように、Apacheは_www&_wwwとして実行されます。ここでの正しい戦略は何ですか?アプリがにあるとしましょう
/ Users / apple / Documents / projects / my_rails_app
そのパスのすべての所有者とグループを_wwwに設定しないことを前提としています。そして、私はApacheをアップル&アップルとして実行できるとは思いませんよね?
自分を_wwwグループに入れるのは問題ですか?または...??
ありがたいことにどんな助けも受けました。
ダン・ドナルドソン、トロント