ruby:ruby_server
webサーバ・アプリケーションサーバ
元記事:
A Web Server vs. An App Server
http://www.justinweiss.com/articles/a-web-server-vs-an-app-server/
webサーバ
・原文
A web server is a program that takes a request to your website from a user and does some processing on it. Then, it might give the request to your Rails app.
・機械翻訳+α
webサーバーはユーザーからの自サイトへのリクエストを受け取り、いくつかの処理をするプログラムです。そして、場合によってはあなたのRailsアプリにリクエストを投げます。
ApacheやNginxなど、ユーザーからのリクエストを最初に受け取る一般的な「webサーバ」。
静的コンテンツやキャッシュなど、自身でレスポンスまで処理する場合もあれば、Railsアプリに処理させるために後ろに構えている「アプリケーションサーバ」に投げることもある。
アプリケーションサーバ
・原文
An app server is the thing that actually runs your Rails app.
・機械翻訳+α
アプリケーションサーバは、実際にあなたのRailsアプリを実行する物である。
Railsアプリをメモリに保持しておき、webサーバからのリクエストを受け取るとアプリに受け渡す。
アプリがリクエストを処理すると、アプリケーションサーバがwebサーバにレスポンスを返す。
Unicorn、Thin、Pumaなど。
Passenger
・原文
But it can also be built right into a web server, so you don’t need a separate app server to run your Rails apps.
・機械翻訳+α
しかし、webサーバに組み込むこともできます。そうすれば、Railsアプリを動作させるためのアプリケーションサーバを別に用意する必要はない。
「アプリケーションサーバ」のように動くこともできるが、ApacheやNginxの拡張モジュールとして組み込む事例が大半。
ただし、Apacheは拡張モジュールとしての扱いは容易だが、Nginxでは若干の改造やリビルドが必要。
Rack
・原文
You can think of Rack as a common language that Ruby web frameworks (like Rails) and app servers both speak.
・機械翻訳+α
RackはRailsのようなRuby製のフレームワークとアプリケーションサーバの両方が話せる共通言語と思ってください。
まとめると
・Passenger以外の場合
- webサーバ(Nginxなど)がwebリクエストを受け取り、Railsで処理するものであればアプリケーションサーバに渡す
- アプリケーションサーバ(Unicornなど)はRackを使ってRailsアプリケーションに処理を依頼する
- Railsアプリケーションがリクエストを処理すると、Rackを使ってアプリケーションサーバに返す
- アプリケーションサーバはwebサーバに返す
- webサーバはクライアントにレスポンスを返す
・Passengerの場合
- webサーバ(Apacheなど)がwebリクエストを受け取り、Railsで処理するものであればPasseger+Rackを経由してRailsアプリケーションに渡す
- Railsアプリケーションがリクエストを処理すると、Rack+Passenger経由でwebサーバに返す
- webサーバはクライアントにレスポンスを返す
ruby/ruby_server.txt · 最終更新: 2016/04/28 04:50 by clownclown