このセクションの内容:
リバース プロキシは、高可用性を実現したりネットワーク セキュリティを強化するために使用されることがあります。アプリケーションがホストされているポートにユーザー リクエストを転送するようリバース プロキシ サーバーを構成することによって、リバース プロキシ環境で DTP を実行できます。さらに、必要なヘッダーを DTP に送信するようにリバース プロキシ サーバーを構成するか、あるいは DTP Tomcat サーバー構成を更新する必要があります。
以下の図は基本的なリバース プロキシのフローです。
次の図は、コンテキスト パスを使用するように構成された環境のリバース プロキシのフローを示しています。
次のヘッダーを DTP に送信するようにリバース プロキシを設定します。
X-Forwarded-Prefix ヘッダーは、DTP アプリケーション (Enterprise Pack、Data Collector など) でコンテキスト パス設定を構成した場合にのみ必要です。ヘッダーの値は、Enterprise Pack ネットワーク構成設定のコンテキスト パス フィールド ( ネットワークの設定 を参照)、および/または Data Collector のコンテキスト パス設定の Data Collector 構成ファイルの <dc-reverse-proxy-path>
要素の値 ( Data Collector の設定 を参照) と一致する必要があります。
Host ヘッダーは、元のリクエストのホスト、つまりリバース プロキシ ホストでなければなりません。
リクエストを転送する方法の詳細については、リバース プロキシ サーバーのドキュメントを参照してください。以下は、nginx の場合の設定例です。
次の例は、異なるコンテキスト パスの 1 つのポートから DTP アプリケーション (Extension Designer を含む) にアクセスできるように構成した場合に nginx を設定する方法を示しています。
server { listen 80; server_name proxy.company.com; location /dtp/data-collector/ { proxy_pass http://dtp.host.com:8082/; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Prefix /dtp/data-collector; } location /dtp/enterprise-pack/ { proxy_pass http://dtp.host.com:8314/; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Prefix /dtp/enterprise-pack; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location /dtp/ { proxy_pass http://dtp.host.com:8080/; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-Forwarded-Proto $scheme; set $proxy_x_forwarded_prefix /dtp; if ($uri ~ "^/dtp/(pst|pstsec|grs|tcm|licenseserver)(?:/.*)$") { set $proxy_x_forwarded_prefix $proxy_x_forwarded_prefix/$1; } proxy_set_header X-Forwarded-Prefix $proxy_x_forwarded_prefix; } } |
次の例は、ポート 3001 のリバース プロキシを介してポート 8443 でホストされている DTP にアクセスするように nginx を設定する方法を示しています。
# DTP: HTTPS 3001 -> HTTPS 8443 server { listen 3001 ssl; listen [::]:3001 ssl; ssl on; ssl_certificate /etc/nginx/certs/ssl-certificate-bundle.crt; ssl_certificate_key /etc/nginx/certs/ssl-certificate-key.key; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; ssl_prefer_server_ciphers on; location / { proxy_pass https://dtp.yourcompany.com:8443; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-Forwarded-Proto https; proxy_read_timeout 90; } } |
次の例は、ポート 3002 のリバース プロキシを介してポート 8314 でホストされている Enterprise Pack にアクセスするように nginx を設定する方法を示しています。リバース プロキシ環境で DTP Enterprise Pack を使用する方法については、「ネットワークの設定」を参照してください。
# Enterprise Pack: HTTPS 3002 -> HTTP 8314 server { listen 3002 ssl; listen [::]:3002 ssl; ssl on; ssl_certificate /etc/nginx/certs/ssl-certificate-bundle.crt; ssl_certificate_key /etc/nginx/certs/ssl-certificate-key.key; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; ssl_prefer_server_ciphers on; location / { proxy_pass http://entpack.yourcompany.com:8314; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-Forwarded-Proto https; proxy_read_timeout 90; # websocket proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } |
次の例は、ポート 3003 のリバース プロキシを介して、ポート 8082 でホストされている Data Collector にデータを送信するように nginx を設定する方法を示しています。リバース プロキシ環境で Data Collector を使用する方法については、「Data Collector の設定」を参照してください。
# Data Collector: HTTPS 3003 -> HTTPS 8082 server { listen 3003 ssl; listen [::]:3003 ssl; ssl on; ssl_certificate /etc/nginx/certs/ssl-certificate-bundle.crt; ssl_certificate_key /etc/nginx/certs/ssl-certificate-key.key; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; ssl_prefer_server_ciphers on; location / { proxy_pass https://dc.yourcompany.com:8082; proxy_set_header X-Forwarded-Host $http_host; proxy_set_header X-Forwarded-Proto $scheme; proxy_read_timeout 90; } } |
WebSockets の通信のためにリバース プロキシ サーバーを構成する方法については次を参照してください: http://nginx.org/en/docs/http/websocket.html