[解決済み] ウェブリックを本番サーバーにする vs. シンかユニコーンか?
質問
Webrick を本番用サーバとして使ってはいけないというのは当たり前のような気がしますが、その理由を書いているところがありません。コンセンサスは次のようなものだと思われます。 Webrick は開発用として OK ですが、本番環境では Thin または Unicorn を選択する必要があります。
私は Thin サーバーのホームページを調べ、それはリクエスト/秒について話しますが、注釈がないので、私はグラフを本当に理解していません。
Webrick と比較して、なぜ Thin または Unicorn を使用する必要があるのか、どなたか教えていただけませんか。また、開発用に Webrick を使用する利点はありますか。私はrailsに付属しているときからWebrickを使用していますが、それがデフォルトである理由があるはずだと思うのです。
ちなみに私はHerokuを使っています。
どのように解決するのですか?
いくつかの重要な理由
- Rubyで書かれていること ( http://github.com/ruby/ruby/tree/trunk/lib/webrick )
- 編集 マルチワーカー(特にプリフォーク、ライフサイクル管理、非同期処理など)、リダイレクト、リライトなど、本番用Webサイトに通常必要な機能があまり備わっていない。
リダイレクト/リライトについて言及するとき、Webrick を使用すると、別のレイヤー (Rack, Sinatra, Rails, カスタム Webrick コードなど) でリライトを処理しなければならないという事実を指しています。このため、書き換えコードを実行するために、追加の ruby "handlers" をスピンアップする必要があります。トラフィックの少ないサイトでは、すでに何もしていないプロセスがあらかじめ用意されている可能性があるため、これは問題ないかもしれません。しかし、トラフィックの多いサイトでは、フロントエンド サーバー (Apache、Nginx など) が Ruby* をスピンアップせずに処理でき、おそらく桁違いに高速であるため、これはサーバーへの余分な負荷となります。
* たとえば、ロード バランサーの背後で実行している場合、すべての書き換えトラフィックを ruby がインストールされていないサーバーにルーティングし、メイン サーバーに主要なトラフィックのみを管理させることができます。この書き換えトラフィックは、SEOのためのサイト変更などによるものかもしれません。また、複数のコンポーネントを持つサイトで、あるセクションはRails、別のセクションはPHPで、両方の書き換えが必要な場合(古いPHPのパスをRailsに書き換えるなど)にも有効でしょう。
関連
-
[解決済み] Ruby/Rails の「フック」とは何ですか?
-
[解決済み] Ruby on Railsのランナー
-
[解決済み] Errno::EACCESS: パーミッションが拒否された @ dir_s_mkdir
-
[解決済み] Paramが無いか、値が空である。ParameterMissing in ResultsController#update
-
[解決済み] Railsマイグレーションを利用してカラムをドロップする方法
-
[解決済み] nil:NilClass の未定義メソッド `each' - しかし、なぜ?
-
[解決済み] railsアプリケーションでCookieのオーバーフロー?
-
[解決済み] gemのアップデート後、"Asset was not declared to be precompiled in production "でテストが失敗する。
-
[解決済み] サーバーはRailsで既に稼働している
-
[解決済み] ActionController::RoutingError: 初期化されていない定数MicropostsController
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】TypeError: SymbolからIntegerへの暗黙の変換がない。
-
[解決済み】コントローラでJSONをレンダリングする
-
[解決済み】bcrypt LoadError: Cannot load such file
-
[解決済み] Rails のインストールに失敗する: activesupport には Ruby のバージョン >= 2.2.2 が必要です。
-
[解決済み] erbでコメントを追加する最適な方法
-
[解決済み] rails erb フォームヘルパー options_for_select :selected
-
[解決済み] Ruby: public static メソッドを作るには?
-
[解決済み] railsで':remote => true'はどのように動作するのでしょうか?
-
[解決済み] rails/rubyでgroup_byを使用する。
-
[解決済み] Rails 4で、以前のバージョンのRailsでattr_accessibleを使用していた状況に遭遇した場合、Forbidden Attributes Errorが発生する。