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;
}
}