Oracle GoldenGate MicroservicesにアクセスするためのNGINXによるリバース・プロキシの構成
ポート番号を使用せずにOracle GoldenGate Microservicesにアクセスするための、NGINXの使用によるリバース・プロキシ・サービスの構成方法について説明します。
リバース・プロキシを使用すると、デプロイメントで単一ポート(443)を使用してマイクロサービスにアクセスできます。これにより、セキュアでないデプロイメントを介したマイクロサービスのURLのカプセル化が可能になります。
ノート:
リバース・プロキシはオプションですが、マイクロサービスへの容易なアクセスが保証され、セキュリティも強化されるためにお薦めします。セキュアでないデプロイメント内のマイクロサービスをループバック・アドレスで実行し、NGINXインストールを使用してそれの前にHTTPリバース・プロキシを置くことができます。
リバース・プロキシを使用して構成されているOracle GoldenGate ClassicからMicroservices環境に証跡ファイルを送信する場合は、SOCKSPROXY
オプションを指定してOracle GoldenGate ClassicからポンプExtractを使用します。Oracle GoldenGate MicroservicesからClassic Architectureに証跡ファイルを送信する場合は、Distribution Service構成でogg
プロトコルを使用します。
『Oracle GoldenGateの管理』のOracle GoldenGate Classic ArchitectureからMicroservices Architectureへの接続およびOracle GoldenGate Microservices ArchitectureからClassic Architectureへの接続を参照してください。
Oracle GoldenGate Microservices Architectureは、リバース・プロキスを使用するように構成できます。Oracle GoldenGate MAには、ReverseProxySettings
というスクリプトが含まれています。このスクリプトによって、NGINXリバース・プロキシ・サーバーのみの構成ファイルを作成します。
たとえば、Administration Serviceがhttp://goldengate.example.com:9001
にあり、Distribution Serviceがhttp://goldengate.example.com:9002
にあるとします。リバース・プロキシを使用すると、すべてのマイクロサービスに1つのアドレスから簡単にアクセスできます。たとえば、Distribution Serviceの場合はhttp://goldengate.example.com/distsrvr
になります。このURLは、サービスごとに異なります。また、ポートごとではなく名前ごとのものになります。
これらのオプションは、ReverseProxySettings
ユーティリティを実行することで使用できます。このユーティリティで使用できるオプションは、次のとおりです。
-
-o
or--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への接続時に使用されます。認証が有効になっている場合は必須です。
トピック:
ReverseProxySettingsを使用するための前提条件
MAでは、任意のリバース・プロキシ・サービスを使用できます。次の例では、その他のリバース・プロキシ・サービスを構成するための手順と、対象プロキシ・サーバーのドキュメントを示します。
次の前提条件では、NGINXリバース・プロキシを構成するための最小要件に関する詳細を示します。プロキシ構成に別のユーティリティを使用している場合でも、目的の環境とリバース・プロキシに対して同様の要件が必要になることがあります。
-
NGINXをインストールします。Oracle LinuxでのNGINX Webサーバーおよびプロキシのインストールを参照してください。Oracle Linuxの場合、NGINXをインストールするコマンドは次のとおりです。
yum -y install nginx
-
JREのバージョンがJRE 8以降であることを確認します。
-
Oracle GoldenGate MAをインストールします。
-
1つ以上のアクティブなMAデプロイメントを作成します。
-
Oracleユーザーに
sudo
権限があることを確認します。 -
NGINXインストール・ディレクトリのパスを含めるように
PATH
環境変数を構成します。
NGINXを構成するためのReverseProxySettingsユーティリティの実行
Oracle GoldenGate Microservices Architectureのインストールには、ReverseProxySettings
ユーティリティが含まれています。ReverseProxySettings
ユーティリティは、$OGG_HOME/lib/utl/reverseproxy
ディレクトリにあります。
ReverseProxySettings
ユーティリティで使用できる追加のコマンドを確認するには、--help
オプションを指定してユーティリティを実行します。
$OGG_HOME/lib/utl/reverseproxy/ReverseProxySettings --help
ReverseProxySettings
ユーティリティで使用可能なオプションは、次のとおりです。
-
-o
or--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
-
バージョンを表示します。
ReverseProxySettingsユーティリティの実行
ReverseProxySettings
ユーティリティを使用するには:
-
NGINXリバース・プロキシ用の構成ファイルを生成するには、
ReverseProxySettings
ユーティリティの場所に移動します。cd $OGG_HOME/lib/utl/reverseproxy
-
次のように、ReverseProxySettingユーティリティを実行します。
ReverseProxySettings -u adminuser -P adminpwd -o ogg.conf http://localhost:9100
このコード・スニペットでは、
adminuser
はデプロイメント・ユーザー名であり、adminpwd
はデプロイメントへのログインに使用されるデプロイメント・ユーザー・パスワードです。 -
既存のNGINX構成を、MAデプロイメントの
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
リバース・プロキシを経由する配布パスの場合は、有効な証明書を使用する必要があります。デプロイメントでの受信リクエストの処理に使用されているのと同じ証明書を指定することをお薦めします。そうしないと、パスの起動は、Distribution Serviceにおいて次のエラーで失敗します。
2019-03-26T11:26:00.324-0700 ERROR| ERROR OGG-10351 Oracle GoldenGate Distribution Service 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
構成ファイルに対する変更がロードされていない場合は、プロキシを停止して再起動します。
-
NGINXが正常に設定された後にマイクロサービスにアクセスできるかどうかをテストするために、Webブラウザを開きます。
-
次のように、ポート番号443を使用してサービス・マネージャのプロキシURLを入力します。
http://dc.example.com:443
これにより、他のマイクロサービスにもアクセスできる、サービス・マネージャのログイン・ページが開きます。マイクロサービスに直接アクセスする必要がある場合は、以前に生成された
ogg.conf
ファイル内で指定されているとおり、そのマイクロサービスのプロキシURLを入力します。
NGINXリバース・プロキシの構成については、このビデオもご覧ください。
SSL終端
TLSベースの接続を使用するリバース・プロキシとオリジン・サーバーとの間に保護されていない接続がある場合、その接続はリバース・プロキシSSL終端と呼ばれます。
ノート:
SSL終端では、リバース・プロキシとオリジン・サーバーの間の接続は保護されていません。
ただし、SSLブリッジングもサポートされています。この場合は、クライアントとリバース・プロキシの間の接続が保護され、リバース・プロキシとオリジン・サーバーの間の接続も保護されます。