最終更新日:2021/11/10 原本2018

NGINX Unit

NGINXとの統合

NGINXの背後にUnitをインストール

NGINXを静的なwebサーバでUnitの前のリバースプロキシとして設定します。

NGINX はファイルシステムから直接静的なファイルを提供し、アプリケーションへのリクエストはUnitに転送されます。

NGINX設定のhttp コンテキストの中のupstreamブロックを生成し、UnitサーバのIPとポートをupstreamブロックに追加します。例えば:

upstream unit_backend {
    server 127.0.0.1:8300;
}

NGINX設定のhttp コンテキスト内のserver および locationブロックを生成あるいは修正します。静的ファイルのディレクトリおよびUnit upstreamの名前を指定します。

例 1

PHP アプリケーションについては、.phpで終了するURLを持つ全てのリクエストはUnitへプロキシされるでしょう:他の全てのファイルは直接NGINXによって提供されるでしょう:

server {

    location / {
        root /var/www/static-data;
    }

    location ~ \.php$ {
        proxy_pass http://unit_backend;
        proxy_set_header Host $host;
    }
}

例 2

以下のアプリケーションでは、全ての静的ファイルは /var/www/files ディレクトリ内に配置されなければならず、 /staticで始まるURLによって参照されます。他の全てのリクエストはUnitにプロキシされるでしょう:

server {

    location /static {
        root /var/www/files;
    }

    location / {
        proxy_pass http://unit_backend;
        proxy_set_header Host $host;
    }
}

更なる情報は https://nginx.orgのドキュメントを参照してください。商用サポートと上級機能が https://www.nginx.com で利用可能です。

Unit APIの安全化とプロキシ

デフォルトでは、Unit APIはUnixドメインソケットを使って利用可能です。APIがリモートで利用可能にするために、NGINを使ってリバースプロキシを設定します。

NGINXはセキュリティ、認証、およびAPIへのアクセス制御を提供します。安全では無いUnit APIを公開することはお勧めできません。

NGINXのための以下の設定例を使ってください:

server {

    # Configure SSL encryption
    server 443 ssl;
    ssl_certificate /path/to/ssl/cert.pem;
    ssl_certificate_key /path/to/ssl/cert.key;

    # Configure SSL client certificate validation
    ssl_client_certificate /path/to/ca.pem;
    ssl_verify_client on;

    # Configure network ACLs
    #allow 1.2.3.4; # Uncomment and change to the IP addresses and networks
                    # of the administrative systems.
    deny all;

    # Configure HTTP Basic authentication
    auth_basic on;
    auth_basic_user_file /path/to/htpasswd.txt;

    location / {
        proxy_pass http://unix:/path/to/control.unit.sock;
    }
}
TOP