LoginSignup
4
2

More than 5 years have passed since last update.

unicornについ

Posted at

Ruby on Railsアプリケーションを本番環境で動作させるためのアプリケーションサーバとして、unicornがある

unicornは、Railsなどでつくられたアプリケーションを動かすアプリケーションサーバです。

unicornはプロセス上で動作するサーバで、プロセスには(1)masterプロセスと(2)workerプロセスがあります。 masterプロセスがアプリケーションのソースコードを保持しており、これをforkしたworkerプロセス群が実際のリクエストを処理します。

ソースコードをロードするのがmasterプロセスのみであるため、起動が早い、デプロイ時のダウンタイムがない、などのメリットがあります。

相違機能である nginxとの違い

nginxはクライアントからのリクエストを受け、なんらかの処理(SSLや圧縮など)を行なうWebサーバです。

単にアプリケーションを動作させるだけなら、nginxは必要ありません。
実際に、開発環境などではnginxなどなくても、unicorn(あるいはWEBrick、Puma)単体で動作します。

開発環境と本番環境の違いはリクエストの数で、unicornはworkerプロセスがせいぜい数個であるのに対し、nginxは数千ものコネクション数が存在します。 もしnginxを置かなければ、ネットワークの遅いクライアントが同時に接続してきたときにunicornプロセスをすべて占有してしまい、その他のクライアントからの接続を受け付けられなくなってしまいます。

nginxを置くことで、たくさんのリクエストを受け、それをunicornのプロセスにいい感じに振り分けています。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2