ページ内コンテンツ
概要
- JupyterHub の configurable-http-proxy の代用となるリバースプロキシサーバ
- configurable-http-proxy との併用も可.
- mod_lticontainer で Charts機能を使用する場合に必要.
機能
- JupyterHub から通知を受けて動作する通信経路制御のための ltictr_api_server と,実際に通信を中継して WebSocketデータを解析する ltictr_proxy_server から成る.
- 通常は ltictr_proxy_server からチャイルドプロセスとして ltictr_api_server が起動される.
- ltictr_proxy_server と ltictr_api_server はそれぞれ独立に起動することも可能.
- ltictr_proxy_server は単体で普通のWeb用リバースプロキシサーバとしても使用可能.
- 機能詳細
- JupyterHub の通信経路制御に対応
- 通信の中継
- WebSocket 通信の解析.
- ユーザの学習状況に関するデータを収集.
- HTTP(S)通信の解析.
- Cookie の挿入.(Moodle のコース識別を行うため)
- 収集したデータを Moodle へXML-RPC 通信で渡す.(MoodleのWebサービスを使用)
ltictr_proxy_server
Usage... %s -p client_side_port [-c] [-h host_url[:port]] [-a [api_url:]port] [-u user] [-d] [--noexecapi] [--chunked] [--conf config_file] [--cert cert_file] [--key key_file] [--pid pid_file]
- -p : Webブラウザの通信を受けるローカルサーバポート番号.必須.
- -c : Webブラウザに対してSSL/TLS接続になる.
- -h : WWWサーバを明示的に指定するためのURL.ltictr_api_server を使用する場合は省略可.
- -a : ltictr_api_server を指定するためのURL.ポート番号のみの場合,URL部分は http://127.0.0.1 となる.
- -u : 実効ユーザ名.
- -d : デバッグモード.
- -n, --noexecapi : ltictr_api_server を起動しない.
- --chunked : chunkデータをchunkデータとして扱う.通常動作では chunkデータは,一旦全部受信されてから転送される.
- --conf : 設定ファイルを指定する(コマンドラインと競合する場合は,設定ファイル優先)
- --cert : -c を指定した場合のサーバ証明書:PEM形式.設定ファイル内でも指定可能.
- デフォルトは /etc/pki/tls/certs/server.pem
- --key : -c を指定した場合のサーバの秘密鍵:PEM形式.設定ファイル内でも指定可能.
- デフォルトは /etc/pki/tls/private/key.pem
- --pid : pid ファイルを指定する.
- デフォルトは /var/run/ltictr_proxy.pid
ltictr_api_server
Usage... %s -a [api_url:]port [-u user] [-d] [--conf config_file] [--cert cert_file] [--key key_file] [--apid pid_file]
- -a : サーバポートのURL.必須.FQDNの部分は無視する.TLS通信を行う場合は https://8001 のように記述する.
- -u : 実効ユーザ名.
- -d : デバッグモード.
- --conf : 設定ファイルを指定する(コマンドラインと競合する場合は,設定ファイル優先)
- --cert : -c を指定した場合のサーバ証明書:PEM形式.設定ファイル内でも指定可能.
- デフォルトは /etc/pki/tls/certs/server.pem
- --key : -c を指定した場合のサーバの秘密鍵:PEM形式.設定ファイル内でも指定可能.
- デフォルトは /etc/pki/tls/private/key.pem
- --pid : pid ファイルを指定する.
- デフォルトは /var/run/ltictr_proxy.pid
systemd を使用する.
# vi /usr/local/etc/ltictr_proxy.conf # vi /usr/lib/systemd/system/ltictr_proxy.service # systemctl enable ltictr_proxy.service # systemctl start ltictr_proxy.service
1. 通常の起動
# ltictr_proxy_server -p 8100 -c -a 8001 --conf /usr/local/etc/ltictr_proxy.conf # jupyterhub -f jupyterhub_XXX_config.py
2. ltictr_api_server と ltictr_proxy_server を別々に起動する場合
# ltictr_api_server -a 8001 --conf ./ltictr_proxy.conf # ltictr_proxy_server -p 8100 -c -a 8001 -n --conf /usr/local/etc/ltictr_proxy.conf # jupyterhub -f jupyterhub_XXX_config.py
3. configarable-http-proxy と併用する場合.または通常の Webリバースプロキシとして使用する場合
# ltictr_proxy_server -p 8100 -c -n -h http://202.26.150.55:8000 --conf /usr/local/etc/ltictr_proxy.conf # jupyterhub -f jupyterhub_XXX_config.py
JupyterHub の設定
- 上記 手動起動 で,1, 2の場合,JupyterHubで自動的に configurable-http-proxy が起動しないようにしなければならない.
- JupyterHub の設定ファイル(jupyterhub_XXX_config.py)
c.JupyterHub.cleanup_proxy = False c.ConfigurableHTTPProxy.should_start = False c.ConfigurableHTTPProxy.api_url = 'http://localhost:8001' c.ConfigurableHTTPProxy.auth_token = "ABCDEFG" # 任意の文字例.下記参照.
設定ファイル (/usr/local/etc/ltictr_proxy.conf)
Moodle_Host = XML-RPC を行うホスト名(FQDNまたはIPアドレス).廃止.クッキーからの自動設定に変更.Moodle_Port = XML-RPC を行うホストのポート番号.廃止.クッキーからの自動設定に変更.Moodle_TLS = XML-RPC を行う際に HTTPS を使用するかどうか..廃止.クッキーからの自動設定に変更.Moodle_Token = Moodle から発行されたトークン.下記参照.必須.廃止.クッキーからの自動設定に変更.- XmlRpc_Path = XML-RPC を行うURLのディレクトリ情報.
- デフォルトは /webservice/xmlrpc/server.php
- XmlRpc_Response = XML-RPC を行った場合の返答を表示するかどうか.
- デバッグ用.デフォルトは FALSE
- XmlRpc_Service = XML-RPC のサービス名.
- デフォルトから変更する必要はない.変更すると動かなくなる.
- デバッグ用.デフォルトは mod_mdlds_write_nbdata
- XmlRpc_HTTPver = XML-RPC を行う際の HTTPのプロトコルバージョン.1.1 か 1.0 を指定.
- 多分 1.1 で問題ない.デフォルトは 1.1
- LTICTR_PID_File = ltictr_proxy_server の pidファイル.
- LTICTR_API_PID_File = ltictr_api_server の pidファイル.
- LTICTR_API_Token = APIサーバの接続用トークン.任意の文字列.JupyterHub の設定ファイルのc.ConfigurableHTTPProxy.auth_token と同じ値にする.ltictr_proxy_server でも必要.
- LTICTR_Server_Cert = HTTPS通信を行う場合のサーバ証明書(PEM形式)
- デフォルトは /etc/pki/tls/certs/server.pem
- LTICTR_Server_Chain = HTTPS通信を行う場合のサーバ証明書のチェイン(PEM形式)
- デフォルトは指定なし(NULL).
- LTICTR_Private_Key = HTTPS通信を行う場合の秘密鍵ファイル(PEM形式)
- デフォルトは /etc/pki/tls/private/key.pem
Moodle 側の設定 (Webサービスを利用するためのトークンの取得)
- 管理者IDで「サイト設定」 -> 「プラグイン」 -> 「ウェブサービス」 -> 「外部サービス」
- 「Jupyter Notebook Data」の項目を確認
- 「Jupyter Notebook Data」の 「許可ユーザ」をクリック
- 適当なユーザ(教師ロールのユーザ)を選択し,許可ユーザとする
- ウェブサービスのメニューまで戻って,「トークンを管理する」を選択.
- 「追加」をクリック.
- ユーザ名に先程選択したユーザ名を入れる.
- サービスは「Jupyter Notebook Data」を選択
- 「変更を保存する」をクリック
- 「トークンを管理する」まで戻ると,ユーザ用のトークンができているので,それをコピーする.
- トークンを設定ファイル(ltictr_proxy.conf)の Moodle_Token に設定する.
Counter: 347,
today: 1,
yesterday: 0
最終更新: 2023-04-25 (火) 09:36:51 (JST) (540d) by iseki