読者の皆様へ:ノイズを減らすための一連の機能を開発しました。関心のあるトピックについて電子メールとWeb通知を受け取ることができます。新機能の詳細をご覧ください。
NGINXは最近、オープンソースのWebアプリケーションサーバであるUnitのバージョン1.0をリリースした。サーバはリモートおよび動的設定をサポートし、設定変更に対するサービス中断は発生しない。Unit 1.0は複数の言語(Go、Perl、PHP、Python、Ruby)を同一インスタンス上での実行をサポートしており、同じ言語で複数のバージョンについても同様にサポートする。
NGINX Unitは静的な設定ファイルを使わずに、代わりにJSONを使ってREST APIを介して設定される。すべての設定はメモリに直接保存され、実行中のサービスを再起動せずに変更を行うことができる。ルータプロセスは永続的であり、再起動する必要はない。
基本設定には、少なくとも1つのリスナーと1つのアプリケーションが必要である。リスナーは、どのポートとIPアドレスでUnitがリッスンし、指定されたアプリケーションにリダイレクトするかを指定する。アプリケーション定義では、言語仕様、アプリケーションのファイルのディレクトリ、プロセスの数を指定することができる。
たとえば、最大20のプロセスを使用して、/www/blogs/scriptsにあるPHPアプリケーションを提供するために、ポート8300上にリスナーを定義することができる。
{
"listeners": {
"*:8300": {
"application": "blogs"
}
},
"applications": {
"blogs": {
"type": "php",
"processes": 20,
"root": "/www/blogs/scripts",
"index": "index.php"
}
}
}
Unitのドキュメントに記載される推奨は、設定を(バージョン管理された)ファイルに保存し、それをサーバーにPOSTすることである。上記のデータがstart.jsonというファイルに格納されている場合、次のように初期設定を作成できる。
# curl -X PUT -d @/path/to/start.
json
--
unix
-socket /path/to/control.unit.sock http://localhost/
Unitは、ルータプロセスをアプリケーションプロセスとは別に持ち、アプリケーションコードを実行する。各アプリケーションプロセスプールは、他のプロセスから独立していることを保証するために、独自のサンドボックス内で実行される。この独立性により、異なる言語で動作する複数のアプリケーションを同じサーバ上で実行することができる。
次の例では、GoとPerlアプリケーションが同じUnitサーバ上で実行されるように設定されている。
{
"listeners": {
"*:8500": {
"application": "go_chat_app"
},
"127.0.0.1:8600": {
"application": "bugtracker"
}
},
"applications": {
"go_chat_app": {
"type": "go",
"user": "www-chat",
"group": "www-chat",
"working_directory": "/www/chat",
"executable": "bin/chat_app"
},
"bugtracker": {
"type": "perl",
"processes": 3,
"user": "www",
"group": "www",
"working_directory": "/www/bugtracker",
"script": "app.psgi"
} }
}
NGINXの製品責任者Owen Garrett氏によると、Unitはスタンドアロンまたはマイクロサービスベースのアーキテクチャに適している。プロセスのオンデマンドスケーリングをサポートし、各プロセスを独自のサンドボックスで実行する。
NGINXは今後のリリースでJavaとNode.jsの言語サポートを追加する予定である。同社は、SSLとHTTP/2をサポートする計画と、静的コンテンツの配信とURIとホスト名を使用したルーティングのサポートを計画している。
NGINX Unitはオープンソース(Apache License 2.0)であり、Debian、CentOS、Ubuntuなどを含むほとんどのオペレーティングシステムで利用可能なビルド済みパッケージがある。Docker HubのDockerコンテナも利用できる。
Rate this Article
- Editor Review
- Chief Editor Action