BT

NGINXが動的設定ができるオープンソースのWebサーバをリリース

| 作者: Matt Campbell フォローする 1 人のフォロワー , 翻訳者 編集部T _ フォローする 0 人のフォロワー 投稿日 2018年5月14日. 推定読書時間: 5 分 |

原文(投稿日:2018/05/04)へのリンク

読者の皆様へ:ノイズを減らすための一連の機能を開発しました。関心のあるトピックについて電子メールと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は、ルータプロセスをアプリケーションプロセスとは別に持ち、アプリケーションコードを実行する。各アプリケーションプロセスプールは、他のプロセスから独立していることを保証するために、独自のサンドボックス内で実行される。この独立性により、異なる言語で動作する複数のアプリケーションを同じサーバ上で実行することができる。

NGINX Unit architecture (credit: NGINX)

NGINX Unit architecture (credit: NGINX)

 

次の例では、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)であり、DebianCentOSUbuntuなどを含むほとんどのオペレーティングシステムで利用可能なビルド済みパッケージがある。Docker HubのDockerコンテナも利用できる

Rate this Article

Adoption Stage
Style

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT