ファイルの独立アドレスアクセス構成手順
多くのブラウザでは、同一アドレスへの同時リクエスト数は最大6件に制限されています。そのため、ワークシートビューに多数の画像ファイルが含まれている場合、該当ビューを開くとブラウザ内でリクエストがキューに入 る可能性があります。すべてのリクエストが完了する前にユーザーが別のページへ遷移すると、閲覧速度の低下やブラウザ停止が発生する場合があります。 この問題への対策として、まずファイルサービスインスタンスに十分なリソースおよびネットワーク帯域が確保されているか確認してください。加えて、本ドキュメントの手順に従い、ファイルリクエスト用に独立したアドレスを構成することで、ファイルリクエストが他のインターフェースリクエストを妨げることを防止できます。
シングルホスト環境
ファイルストレージ用の独立アドレスがHTTP/HTTPSのデフォルトポート(80/443)を利用する場合、関連する環境変数設定でこれらのデフォルトポートの指定は不要です。
シングルアクセスアドレスシステム
現行システムのアクセスアドレス http://hap.domain.com に対し、ファイル用独立アドレス http://file.domain.com を追加する例です。
設定手順
- マイクロサービスの
docker-compose.yaml設定ファイルを編集します。
version: '3'
services:
app:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-hap:7.5.1
environment:
ENV_ADDRESS_MAIN: "http://hap.domain.com"
ENV_APP_VERSION: "7.5.1"
ENV_API_TOKEN: "******"
ENV_FILE_DOMAIN: "http://file.domain.com" # ファイル独立アドレス指定用新変数
ENV_FILE_ADDRESS_MAIN: "http://file.domain.com" # ファイル独立アドレス指定用新変数
ENV_HAP_INTRANET_FILE_ENDPOINT: "app:8880/file" # 固定値の新変数
ports:
- 8880:8880
volumes:
- ./volume/data/:/data/
- ../data:/data/mingdao/data
sc:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-sc:3.2.0
environment:
<<: *app-environment
volumes:
- ./volume/data/:/data/
ports:
- 9000:9000 # 新規ポートマッピング: ホストにファイルサービスポートを割り当て
command:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-command:node1018-python36
doc:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-doc:2.0.0
新規変数設定の説明:
ENV_FILE_DOMAIN: ファイルストレージサービス用の独立アドレスを指定ENV_FILE_ADDRESS_MAIN: マイクロサービス用のファイル独立アドレスを指定ENV_HAP_INTRANET_FILE_ENDPOINT: 固定値「app:8880/file」- ファイル独立アドレスがデフォルトのHTTP/HTTPSポート(80/443)の場合、上記変数へのポート記載は不要
新規ポートマッピングの説明:
- 9000:9000: コンテナのファイルサービス用ポートをホストへ割り当て、後続Nginxプロキシからのアクセスを許可
docサービス変数の変更点:
ENV_FILE_INNER_URIのデフォルト値をsc:9000へ変更
-
マイクロサービスを再起動します。
-
ファイル独立アドレス用Nginxクロスオリジンプロキシ設定を追加します。以下は参考構成例です。
upstream file {
server 192.168.0.10:9000; # バックエンドマイクロサービスのIPとファイルストレージ用ポートを指定
}
server {
listen 80;
server_name file.domain.com; # ファイル独立アドレスを指定
access_log /data/logs/weblogs/file.domain.com.log main; # ログパスは任意
error_log /data/logs/weblogs/file.domain.com.error.log; # ログパスは任意
location / {
if ($request_method = OPTIONS) {
return 204 "";
}
proxy_set_header HOST $http_host;
proxy_pass http://file;
proxy_hide_header Access-Control-Allow-Origin;
add_header Access-Control-Allow-Headers authorization,content-type;
add_header Access-Control-Allow-Origin "http://hap.domain.com"; # HAPシステムアクセスアドレスを指定
}
}
- プロキシ設定後はブラウザのキャッシュをクリアしてください。その後、ブラウザの開発者ツールのNetworkタブで、ファイル関連リクエストが独立アドレスにルーティングされていることを確認できます。
マルチアクセスアドレスシステム
マルチアクセスアドレスシステムの場合、システムアクセスアドレスごとにファイル独立アドレスの設定が必要です。
例として、システムのメインアクセスアドレス hap-external.domain.com と拡張アドレス hap-internal.domain.com に対し、それぞれ独自のファイルアクセスアドレス file-external.domain.com および file-internal.domain.com を追加します。
システムアドレスとファイル独立アドレスの対応表:
| アドレスタイプ | メインアドレス | 拡張アドレス |
|---|---|---|
| システムアクセスアドレス | hap-external.domain.com | hap-internal.domain.com |
| ファイル独立アドレス | file-external.domain.com | file-internal.domain.com |
設定手順
- マイクロサービスの
docker-compose.yamlファイルを編集し、各アドレスの設定を追加してマイクロサービスを再起動します。
version: '3'
services:
app:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-hap:7.5.1
environment:
ENV_ADDRESS_MAIN: "http://hap-external.domain.com"
ENV_APP_VERSION: "7.5.1"
ENV_FILE_DOMAIN: "http://file-external.domain.com,http://file-internal.domain.com" # 複数ファイル独立アドレスを指定
ENV_FILE_ADDRESS_MAIN: "http://file-external.domain.com" # メインファイル独立アドレスを指定
ENV_HAP_INTRANET_FILE_ENDPOINT: "app:8880/file" # 固定値
ports:
- 8880:8880
- 18880:18880
volumes:
- ./volume/data/:/data/
- ../data:/data/mingdao/data
sc:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-sc:3.2.0
environment:
<<: *app-environment
volumes:
- ./volume/data/:/data/
ports:
- 9000:9000 # ファイルサービス用新規ポートマッピング
command:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-command:node1018-python36
doc:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-doc:2.0.0
新規変数設定の説明:
ENV_FILE_DOMAIN: ファイルストレージサービス用の複数独立アドレスを指定ENV_FILE_ADDRESS_MAIN: マイクロサービス用のメインファイル独立アドレスを指定ENV_HAP_INTRANET_FILE_ENDPOINT: 固定値「app:8880/file」- ファイル独立アドレスがデフォルトのHTTP/HTTPSポート(80/443)の場合、変数へのポート記載は不要
新規ポートマッピングの説明:
- 9000:9000: ファイルサービス用のポートをホストに割り当て、Nginxプロキシからの利用を許可
docサービス変数の変更点:
ENV_FILE_INNER_URIのデフォルト値をsc:9000へ変更
-
マイクロサービスを再起動します。
-
メインファイル独立アドレス用Nginxクロスオリジンプロキシ設定(参考例):
upstream file {
server 192.168.0.10:9000; # バックエンドマイクロサービスのIPとポートを指定
}
server {
listen 80;
server_name file-external.domain.com; # メインファイル独立アドレス
access_log /data/logs/weblogs/file-external.domain.com.log main;
error_log /data/logs/weblogs/file-external.domain.com.error.log;
location / {
if ($request_method = OPTIONS) {
return 204 "";
}
proxy_set_header HOST $http_host;
proxy_pass http://file;
proxy_hide_header Access-Control-Allow-Origin;
add_header Access-Control-Allow-Headers authorization,content-type;
add_header Access-Control-Allow-Origin "http://hap-external.domain.com"; # HAPシステムメインアクセスアドレス
}
}
- 拡張ファイル独立アドレス用Nginxクロスオリジンプロキシ設定(参考例):
upstream file {
server 192.168.0.10:9000; # バックエンドマイクロサービスのIPとポートを指定
}
server {
listen 80;
server_name file-internal.domain.com; # 拡張ファイル独立アドレス
access_log /data/logs/weblogs/file-internal.domain.com.log main;
error_log /data/logs/weblogs/file-internal.domain.com.error.log;
location / {
if ($request_method = OPTIONS) {
return 204 "";
}
proxy_set_header HOST $http_host;
proxy_pass http://file;
proxy_hide_header Access-Control-Allow-Origin;
add_header Access-Control-Allow-Headers authorization,content-type;
add_header Access-Control-Allow-Origin "http://hap-internal.domain.com"; # HAPシステム拡張アクセスアドレス
}
}
- システム拡張アドレス側のプロキシ設定を変更し、
location /およびlocation ~ /mds2下にpdfileaddrヘッダーを追加します。
......
location / {
set $real_ip '';
if ($http_x_real_ip) {
set $real_ip $http_x_real_ip;
}
if ($http_x_real_ip = '') {
set $real_ip $remote_addr;
}
proxy_set_header X-Real-IP $real_ip;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header pdaddr http://hap-internal.domain.com;
proxy_set_header pdfileaddr http://file-internal.domain.com; # 拡張ファイル独立アドレス用新ヘッダー追加
proxy_pass http://hap-ext;
}
location ~ /mds2 {
proxy_set_header Host $http_host;
proxy_hide_header X-Powered-By;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://hap-ext;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header pdaddr http://hap-internal.domain.com;
proxy_set_header pdfileaddr http://file-internal.domain.com; # 拡張ファイル独立アドレス用新ヘッダー追加
}
location ~ ^/(agent|api/workflow/api/sse/chat) {
set $md_real_ip '';
if ($http_x_real_ip) {
set $md_real_ip $http_x_real_ip;
}
if ($http_x_real_ip = '') {
set $md_real_ip $remote_addr;
}
proxy_buffering off;
proxy_read_timeout 30m;
proxy_send_timeout 30m;
client_max_body_size 16m;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $md_real_ip;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-HTTP-Method-Override "";
proxy_set_header pdaddr http://hap-internal.domain.com;
proxy_set_header pdfileaddr http://file-internal.domain.com; # pdfileaddrヘッダーを追加し、ファイルの拡張独立アドレスを指定
proxy_pass http://hap-ext;
proxy_redirect default;
}
......
- プロキシ設定完了後は、ブラウザのキャッシュをクリアしてください。その後、ブラウザの開発者ツールのNetworkタブで、ファイル関連リクエストが独立アドレスへルーティングされていることを確認できます。
クラスタ環境
ファイルストレージ用の独立アドレスがHTTP/HTTPSのデフォルトポート(80/443)を利用する場合、関連環境変数設定でこれらデフォルトポートの指定は不要です。
シングルアクセスアドレスシステム
現行システムアクセ スアドレス http://hap.domain.com に対し、ファイル独立アドレス http://file.domain.com を追加する例です。
設定手順
-
関連マイクロサービス構成を編集します。
-
マイクロサービスの
config.yamlで以下の環境変数を追加します。
ENV_FILE_ADDRESS_MAIN: "http://file.domain.com"
ENV_HAP_INTRANET_FILE_ENDPOINT: "www:8880/file"
ENV_FILE_ADDRESS_MAIN: ファイルの独立アクセスアドレス用変数
- マイクロサービスの
service.yamlで、docサービスのENV_FILE_INNER_URI変数をファイルストレージの内部アドレスに変更します。
env:
- name: ENV_FILE_INNER_URI
value: "192.168.0.10:9000" # ファイルストレージの内部ネットワークアドレス
-
マイクロサービスを再起動します。
-
ファイルストレージサービスの
file.yaml設定ファイルを編集し、関連設定追加後、ファイルストレージサービスを再起動します。 -
file.yamlにファイルストレージサービスの独立アドレスを指定する環境変数ENV_FILE_DOMAINを追加します。
ENV_FILE_DOMAIN: "http://file.domain.com"
-
ファイルストレージサービスを再起動します。
-
ファイル独立アドレス用のNginxクロスオリジンプロキシ設定(参考例):
upstream file {
server 192.168.0.10:9000; # ファイルストレージサービスのIPおよびポート
}
server {
listen 80;
server_name file.domain.com;
access_log /data/logs/weblogs/file.domain.com.log main;
error_log /data/logs/weblogs/file.domain.com.error.log;
location / {
if ($request_method = OPTIONS) {
return 204 "";
}
proxy_set_header HOST $http_host;
proxy_pass http://file;
proxy_hide_header Access-Control-Allow-Origin;
add_header Access-Control-Allow-Headers authorization,content-type;
add_header Access-Control-Allow-Origin "http://hap.domain.com";
}
}
- プロキシ設定後はブラウザキャッシュをクリアし、ブラウザ開発者ツールのNetworkタブでファイル関連リクエストの独立アドレス向き先を確認してください。
マルチアクセスアドレスシステム
マルチアクセスアドレスシステムの場合、システムアクセスアドレスごとにファイル独立アドレス設定が必要です。
例として、システムのメインアクセスアドレス hap-external.domain.com と拡張アドレス hap-internal.domain.com に対し、ファイルアクセスアドレス file-external.domain.com および file-internal.domain.com を追加します。
システムアクセスアドレスとファイル独立アドレスの対応表:
| アドレスタイプ | メインアドレス | 拡張アドレス |
|---|---|---|
| システムアクセスアドレス | hap-external.domain.com | hap-internal.domain.com |
| ファイル独立アドレス | file-external.domain.com | file-internal.domain.com |