EMS設定ファイル
webconfig.json
EvoStream Web Server(EWS)の主要構成ファイルです。Webルートフォルダー、サーバーの秘密鍵及び証明書、ホワイト/ブラックリスト、ログなど重要なWebサーバファイル/フォルダーの位置を定義しています。またHTTPポートやグループ名、エイリアス、SSLモード、接続数/メモリ制限、MIMEタイプななどその他のWebサーバー設定も含まれています。
configuration
EWSサーバーが必要とする全ての設定が含まれています。
configuration =
{
logAppenders
{
-- content removed for clarity
},
applications =
{
-- content removed for clarity
}
}
・webServer Configuration構成テーブル
Key | Type | 必須 | 説明 |
---|---|---|---|
loggers | Object | ○ | log appenderが記述されています。 各ログメッセージは、この設定セクションに列挙された各log appenderに送られます。 |
applications | Object | ○ | ロードされたアプリケーションが記述されています。その他いくつかの設定も含まれています。 |
Webサーバーが起動すると、次の一連の処理が実行されます。
1. loggers
の設定値が読み込まれ、全てのlog appenderが初期化・実行されます。
2. applications
の設定値が読み込まれます。
この後全てのアプリケーションが完全に機能し、サーバーがオンラインとなりスタンバイ状態となります。
loggers
Webサーバーのログ及びログファイルの設定
"loggers":
{
"console":
{
"colorize": true,
"json": false,
"level": "silly"
},
"file":
{
"filename": "evo-webserver",
"extension": "log",
"dirname": "C:\\EvoStream_2.1\\logs",
"json": false,
"maxsize": 1048576,
"level": "silly"
}
},
このセクションにはlog appenderのリストが含まれています。このリストは初期化の際にlogger内にロードされます。
ログはコンソールとファイルの2種類があります。
console
はEMSコンソールログの設定です。 file
は保存されたログファイルの設定です。
・webServer loggers構成テーブル
Key | Type | 必須 | 説明 |
---|---|---|---|
colorize | Boolean | ○ | "true"の場合、ログがカラー表示されます。ログタイプにより色は異なります。 config.luaのcoloredConsoleと似ています。 |
json | Boolean | ○ | "true"の場合、ログをjson形式で表示/書き込みします。 |
level | String | ○ | ログレベル。この値以下のログレベルを持つメッセージはすべて記録され、残りは削除されます。 (ログレベル:SILLY,DEBUG,VERBOSE,INFO,WARN,ERROR) |
filename | String | ○ | ファイル名のプレフィックス (fileName.xxxx.timestamp.log) |
extension | String | ○ | ログファイルの拡張子 (fileName.xxxx.timestamp.extension) |
dirname | String | ログファイルの絶対パス | |
maxsize | Number | ログファイル最大サイズ(KB) |
applications
サーバー内の全てのアプリケーションが配置されています。起動時に使用する各アプリケーション属性を保持します。
各アプリケーションには、独自の機能を実行するために必要な特定の属性があります。
name(必須 / Type:String)
Webサーバーアプリケーション名
description(Type:String)
Webサーバーアプリケーションの詳細情報
port(必須 / Type:Number)
Webサーバーの待機ポート
emsPort(必須 / Type:Number)
WebサーバーがEMSと通信するポート
注:config.luaファイルのinboundBinVariant acceptorと一致している必要があります。
webservicesPort(必須 / Type:Number)
Web ServiceがEMSと通信するポート
webuiPort(必須 / Type:Number)
Web UIがEMSと通信するポート
bindToIP(Type:String)
ホストに複数のイーサネットカードがある場合に使用する特定のIP
sslMode(Type:String)
Webサーバー使用時のSSL設定
利用可能な値
- disabled:HTTPを使用
- enabled:HTTPSの使用を強制する
- automatic:最初にHTTPをチェックし、そうでなければHTTPSにフォールバックします。
sslKeyFile(Type:String)
SSLキーファイルのパス
sslCertFile(Type:String)
SSL証明書ファイルのパス
enableIPFilter(Type:Boolean)
"true"の場合、ホワイト/ブラックリストファイルが読み込まれます。
whitelistFile(Type:String)
ホワイトリストファイルのパス
blacklistFile(Type:String)
ブラックリストファイルのパス
hasGroupNameAliases(Type:Boolean)
グループ名のエイリアスを有効または無効にします。
HTTPストリーミング(HLS,HDS,MSS,DASH,メディアファイル)をダイレクトなアクセスから保護します。
webRootFolder(必須 / Type:String)
Webルートフォルダのパス
注:他のWebルートを使用する際には、ポートに注意してください。
mediaFileDownloadTimeout(必須 / Type:number)
メディアファイルのダウンロードセッションのタイムアウト値
supportedMimeTypes
このセクションではファイル拡張子とMIMEタイプとの関連付けについての設定が記述されています。
"supportedMimeTypes":
[
{
"extensions": "mp4,mp4v,mpg4",
"mimeType": "video/mp4",
"streamType":"",
"isManifest":false
},
{
"extensions": "flv",
"mimeType": "video/x-flv",
"streamType":"",
"isManifest": false
},
{
"extensions": "m3u,m3u8",
"mimeType": "audio/x-mpegurl",
"streamType": "hls",
"isManifest": true
},
{
"extensions": "ts",
"mimeType": "video/mp2t",
"streamType": "hls",
"isManifest": false
},
{
"extensions": "aac",
"mimeType": "audio/aac",
"streamType": "hls",
"isManifest": false
},
{
"extensions": "f4m",
"mimeType": "application/f4m+xml",
"streamType": "hds",
"isManifest": true
},
{
"extensions": "ismc,isma,ismv",
"mimeType": "application/octet-stream",
"streamType": "mss",
"isManifest": true
},
{
"extensions": "fmp4",
"mimeType": "video/mp4",
"streamType": "mss",
"isManifest": false
},
{
"extensions": "mpd",
"mimeType": "application/dash+xml",
"streamType": "dash",
"isManifest": true
},
{
"extensions": "m4s",
"mimeType": "video/mp4",
"streamType": "dash",
"isManifest": false
},
{
"//": "needed for supporting adobe player's crossdomain.xml",
"extensions": "xml",
"mimeType": "application/xml",
"streamType": "",
"isManifest": false
}
],
・WebServer supportedMimeTypes構成テーブル
Key | Type | 必須 | 説明 |
---|---|---|---|
extensions | String | ○ | ファイル拡張子 |
mimeType | String | ○ | ファイル拡張子に関連付けるMIMEタイプ |
streamType | String | HTTPストリームの種類 | |
isManifest | Boolean | HTTPストリーミングで使用するマニフェストファイルがあるかどうか |
includeResponseHeaders
このセクションではレスポンスに含まれる追加のヘッダ情報を示します。
"includeResponseHeaders":
[
{
"header": "Access-Control-Allow-Origin",
"content": "*",
"override": true
},
{
"header": "User-Agent",
"content": "Evostream",
"override": false
}
],
・WebServer includeResponseHeaders構成テーブル
Key | Type | 必須 | 説明 |
---|---|---|---|
header | String | ○ | レスポンスヘッダ |
content | String | ○ | レスポンスヘッダに対する固有値 |
override | Boolean | 既存ヘッダに既に追加ヘッダが含まれている場合、ヘッダを上書きするかどうか |
apiProxy
プロキシ認証を用いてHTTPベースのEMS APIを保護します。全てのAPIコマンドはまずEWSを通過しユーザ名/パスワード認証が行われ、その後でEMSにコマンドを渡します。
APIコマンドの戻り値は適切に呼び出し元に戻されます。
プロキシ認証を有効にするには、 webconfig.lua
設定ファイル内にある"apiProxy"セクションのコメントを外します。
"apiProxy":
{
"enable" : true,
"authentication": "basic",
"pseudoDomain": "apiproxy",
"address": "127.0.0.1",
"port": 7777,
"userName": "username",
"password": "password"
}
・apiProxy構成テーブル
Key | Type | 必須 | 説明 |
---|---|---|---|
enable | Boolean | ○ | "true"の場合、apiProxy設定が読み込まれます。 |
authentication | Object | ○ | 認証タイプ。 現在利用可能な値は"basic"(ユーザー名とパスワードを使用する基本的なHTTP認証)と"none"(認証無効)の2つだけです。 |
pseudoDomain | Object | ○ | ドメイン名またはフォルダ |
address | Number | ○ | inboundHTTPJsonCLIを使用するIPアドレス |
port | Number | ○ | config.luaで設定したinboundHttpJsonCliのacceptorポート |
userName | String | basic認証ユーザ名 | |
password | String | basic認証パスワード |