B リバース・プロキシとの統合
リバース・プロキシ・サーバーを構成する方法を学習します。
リバース・プロキシを使用すると、デプロイメント内の異なるマイクロサービスに対して単一のポートを使用して接続できます。プロキシ・サーバーはご使用の環境設定やネットワーク要件に応じて構成できます。
ノート:
リバース・プロキシはオプションですが、マイクロサービスへの容易なアクセスが保証され、セキュリティも強化されるためにお薦めします。リバース・プロキシのサポート
Oracle GoldenGate Microservicesは、リバース・プロキスを使用するように構成できます。Oracle GoldenGate Microservicesには、ReverseProxySettings
というスクリプトが含まれています。このスクリプトによって、NGINXリバース・プロキシ・サーバーのみの構成ファイルを作成します。
たとえば、管理サーバーがHTTPS://goldengate.example.com:9001
にあり、配布サーバーがhttps://goldengate.example.com:9002
にあるとします。リバース・プロキシを使用すると、すべてのマイクロサービスに1つのアドレスから簡単にアクセスできます。たとえば、配布サーバーの場合はhttps://goldengate.example.com/distsrvr
になります。このURLは、サービスごとに異なります。また、ポートごとではなく名前ごとのものになります。
ReverseProxySettings
には、次のオプションを使用できます。
-
-o
または--output
-
出力ファイル名。デフォルトのファイル名は
ogg.conf
です。 -
-P
または--password
-
Service Managerアカウントのパスワード。
-
-l
または--log
-
ログ・ファイル名を指定し、ロギングを開始します。デフォルトではロギングしません。
-
--trailOnly
-
インバウンドの証跡データ専用に構成します。
-
-t
または--type
-
プロキシ・サーバーのタイプ。デフォルトはNginxです。
-
-s
または--no-ssl
-
SSLなしで構成します。
-
-h
または--host
-
リバース・プロキシの仮想ホスト名。
-
-p
または--port
-
リバース・プロキシのポート番号。デフォルトは80または443です。
-
-?
または--help
-
使用方法の情報を表示します。
-
-u
または--user
-
使用するService Managerアカウントの名前
-
-v
または--version
-
バージョンを表示します。
これらの値は、Service Managerへの接続時に使用されます。認証が有効になっている場合は必須です。
前提条件
Microservicesでは、任意のリバース・プロキシ・サービスを使用できます。次の例では、その他のリバース・プロキシ・サービスを構成するための手順と、対象プロキシ・サーバーのドキュメントを示します。
次の前提条件では、NGINXリバース・プロキシを構成するための最小要件に関する詳細を示します。NGINXを使用しない場合でも、目的の環境とリバース・プロキシに対して同様の要件が必要になることがあります。対象のリバース・プロキシのドキュメントを参照してください。
-
NGINXをインストールします(「NGINXリバース・プロキシのインストール」を参照)。Oracle Linuxの場合、NGINXをインストールするコマンドは次のとおりです。
yum —y install NGINX
-
JREのバージョンがJRE 8以降であることを確認します。
-
Oracle GoldenGate Microservicesをインストールします。
-
1つ以上のアクティブなMicroservicesデプロイメントを作成します。
-
Oracleユーザーに
sudo
権限があることを確認します。
NGINXリバース・プロキシの構成
Oracle GoldenGate Microservicesのインストールには、ReverseProxySettings
ユーティリティが含まれています。ReverseProxySettings
ユーティリティは、$OGG_HOME/lib/utl/reverseproxy
ディレクトリにあります。ReverseProxySettings
ユーティリティで使用できる追加のコマンドを確認するには、--help
オプションを指定してユーティリティを実行します。
$OGG_HOME/lib/utl/reverseproxy/ReverseProxySettings --help
NGINX証明書を信頼できる証明書としてDistribution Serverのクライアント・ウォレットに追加するには、信頼できる証明書の設定を参照してください。
-
NGINXリバース・プロキシ用の構成ファイルを生成するには、
ReverseProxySettings
ユーティリティを使用して同様のコマンドを実行します。安全な構成を使用するようにNGINXを構成する場合は、-s
オプションを省略して、HTTPではなくHTTPSを確実に使用する必要があります。$OGG_HOME/lib/utl/reverseproxy/ReverseProxySettings -u adminuser -P adminpwd -o ogg.conf HTTPS://localhost:9100
-
既存のNGINX構成を、Microservicesデプロイメントの
ReverseProxySetting
ユーティリティを使用して生成された構成に置き換えます。sudo mv ogg.conf /etc/nginx/conf.d/nginx.conf
ただし、このNGINX構成は、
events
セクションがなくhttp
内にmap
およびserver
セクションが含まれていないと完成ではありません。オプションで、デフォルトの
nginx.conf
ファイルを使用することや、次のようなinclude
文を追加して、生成されたogg.conf
を追加することができます。include /etc/nginx/conf.d/ogg.conf;
この場合は、他の
servers
セクションをコメント・アウトする必要があります。 -
NGINXの自己署名証明書を生成します。
sudo sh /etc/ssl/certs/make-dummy-cert /etc/NGINX/ogg.pem
リバース・プロキシを経由する配布パスの場合は、有効な証明書を使用する必要があります。デプロイメントでの受信リクエストの処理に使用されているのと同じ証明書を指定することをお薦めします。そうしないと、パスの起動は、配布サーバーにおいて次のエラーで失敗します。
2019-03-26T11:26:00.324-0700 ERROR| ERROR OGG-10351 Oracle GoldenGate Distribution Server for Oracle: Generic error -1 noticed. Error description - Certificate validation error: Unacceptable certificate from test00abc: application verification failure. (A4)
-
NGINX構成を検証します。
sudo NGINX -t NGINX: the configuration file /etc/NGINX/NGINX.conf syntax is ok NGINX: configuration file /etc/NGINX/NGINX.conf test is successful
-
新しい構成でNGINXをリロードします。
sudo NGINX -s reload
構成ファイルに対する変更がロードされていない場合は、プロキシを停止して再起動します。
-
cURLを使用して、リバース・プロキシが機能していることを確認します。
curl -sv HTTPS://localhost/services/v2 {"$schema":"api:version","catalog":{"links":[ {"href":"HTTPS://localhost/service s/v2/metadata-catalog","rel":"canonical"}]},"isLatest":true,"lifecycle":"active","links":[ {"href":"HTTPS://localhost/services/v2","mediaType":"application/js on","rel":"canonical"}, {"href":"HTTPS://localhost/services/v2","mediaType":"app lication/json","rel":"self"}],"version":"v2"}
ノート:
ターゲットのService Managerに関連付けられたデプロイメントを変更した場合は、NGINX構成ファイルを再生成してリロードする必要があります。
SSL終了
TLSベースの接続を使用するリバース・プロキシとオリジン・サーバーの間に保護されていない接続がある場合、その接続はリバース・プロキシSSL終端と呼ばれます。
SSL終端では、リバース・プロキシとオリジン・サーバー間の接続は保護されていないことに注意してください。
ただし、SSLブリッジングもサポートされています。ここでは、クライアントとリバース・プロキシ間の接続が保護され、リバース・プロキシとオリジン・サーバー間の接続も保護されます。