6.2. Nginx¶
NginxはオープンソースのWebサーバです。HTTPサーバやリバースプロキシサーバ等の機能を持ちます。ICEではバックエンド内で動作する様々なHTTPサービスに対するリバースプロキシサーバと、エッジへファイルを配信するためのファイルサーバして動作します。
6.2.1. サービス¶
- サービス開始(CentOSの場合)
$ service nginx start
- サービス停止(CentOSの場合)
$ service nginx stop
- 設定ファイル変更の反映(CentOSの場合)
$ service nginx reload
6.2.2. リバースプロキシ マッピングルール¶
サービス | 受け付けURL | 転送先URL |
---|---|---|
ICE Backend API | ホスト名/api/v1/ | localhost:22401/api/v1/ |
ファイルサーバ | ホスト名/fileserver/ | localhost:22402/ |
MQTT Broker管理コンソール | ホスト名/rabbitmq/ | localhost:22404/ |
mongo-express | ホスト名/mongo-express/ | localhost:22405/mongo-exp ress/ |
6.2.3. ファイルサーバ¶
ファイルサーバでは/var/www/html配下を公開します。 公開ディレクトリ配下の下記のディレクトリは、アプリケーションにより予約されているため使用することはできません。
/var/www/html
├─ man/ ICEのマニュアルが格納されます(マニュアルをインストールした場合のみ)。
└─ upload/ エッジからアップロードされたファイルが格納されます。
6.2.4. 設定ファイル¶
バックエンドで使用するNginxの設定ファイルは/etc/nginx/conf.d/配下にあります。
/etc/nginx/conf.d/
common-proxies.conf 共通の設定を行います。
file-server.conf ファイルサーバの設定を行います。
locations/ リバースプロキシを受け付けるURLを指定します。
upstreams/ リバースプロキシで転送するURLを指定します。
/etc/nginx/conf.d/locations/
fileserver.conf ファイルサーバのリバースプロキシ設定です。
backend_restapi.conf Backend APIのリバースプロキシ設定です。
mongo-express.conf mongo-expressのリバースプロキシ設定です。
rabbitmq_management.conf RabbitMQの管理コンソールのリバースプロキシ設定です。
/etc/nginx/conf.d/upstreams/
fileserver.conf ファイルサーバのリバースプロキシ設定です。
backend_restapi.conf Backend APIのリバースプロキシ設定です。
rabbitmq_management.conf RabbitMQの管理コンソールのリバースプロキシ設定です。
6.2.6. Nginxのアップデート¶
バックエンドにインストールされるNginxは、公式サイトで公開されている最新のバージョンです。 インストール後にバージョンアップする場合は次のコマンドを実行します。
$ sudo yum update nginx
6.2.7. Nginx設定ファイルの更新¶
ICEで設定可能なNginxの設定項目一覧です。
6.2.7.1. client_max_body_size¶
Nginxで扱うリクエストのボディサイズを制限します。 この値を超えるボディを持つHTTPリクエストが来た場合、サーバは403エラーを返します。 0を設定した場合、ボディサイズを制限しません。
既定値 | 1m |
playbookの設定箇所 | ice.backend.reverse_proxy.max_body_size |
関連する機能 | リバースプロキシ |
6.2.7.2. proxy_request_buffering¶
リバースプロキシ経由のリクエストをバッファリングするかどうかを指定します。
バッファする(”on”)場合、リバースプロキシがHTTPリクエストを全て受け取り メモリあるいはファイルシステムに一度記憶してから、リクエストを次のサーバに 転送します。
バッファしない(”off”)場合、リバースプロキシはHTTPリクエストをすべて受け取る前に HTTPリクエストを次のサーバに転送します。
既定値 | “on” |
playbookの設定箇所 | ice.backend.reverse_proxy.max_body_size |
関連する機能 | リバースプロキシ |
6.2.8. 公式サイト¶
Nginxに関する一般的な情報は公式サイト( https://nginx.org/ )をご参照ください。