NGINXを使用したOracle GoldenGateリバース・プロキシの構成

ポート番号を使用せずにOracle GoldenGate Microservicesにアクセスするための、NGINXの使用によるリバース・プロキシ・サービスの構成方法について説明します。

ReverseProxySettingsを使用するための前提条件

MAでは、任意のリバース・プロキシ・サービスを使用できます。次の例では、その他のリバース・プロキシ・サービスを構成するための手順と、対象プロキシ・サーバーのドキュメントを示します。

次の前提条件では、NGINXリバース・プロキシを構成するための最小要件に関する詳細を示します。プロキシ構成に別のユーティリティを使用している場合でも、目的の環境とリバース・プロキシに対して同様の要件が必要になることがあります。

ノート:

Oracle Linux 8またはRHEL 8にOracle GoldenGate 23aiをインストールする場合は、適切なNGINXモジュール・ストリームを有効にして、NGINXバージョンが1.19.4以上であることを確認します。
  1. NGINXをインストールします。Oracle LinuxでのNGINX Webサーバーおよびプロキシのインストールを参照してください。Oracle Linuxの場合、NGINXをインストールするコマンドは次のとおりです。

    yum -y install nginx

  2. JREのバージョンがJRE 8以降であることを確認します。

  3. Oracle GoldenGate MAをインストールします。

  4. 1つ以上のアクティブなMAデプロイメントを作成します。

  5. Oracleユーザーにsudo権限があることを確認します。

  6. 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ユーティリティを使用するには:

  1. NGINXリバース・プロキシ用の構成ファイルを生成するには、ReverseProxySettingsユーティリティの場所に移動します。

    cd $OGG_HOME/lib/utl/reverseproxy
  2. 次のように、ReverseProxySettingユーティリティを実行します。
    ReverseProxySettings -u adminuser -P adminpwd -o ogg.conf http://localhost:9100

    このコード・スニペットでは、adminuserはデプロイメント・ユーザー名であり、adminpwdはデプロイメントへのログインに使用されるデプロイメント・ユーザー・パスワードです。

  3. ステップ2で生成されたogg.confファイルを/etc/nginx/conf.dディレクトリにコピーします。
    sudo cp ogg.conf /etc/nginx/conf.d/.
  4. 次のステップを使用してSSL/TLS設定のogg.confファイルを更新します:

    1. ssl_ciphersの行を見つけて、それを次のように置き換えます:
      ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305;
    2. この行の下に別の行を追加します:
      ssl_conf_command Ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256;
    3. 自己署名証明書を使用している場合は、次の例で示すように、秘密キーと証明書のpemファイルが/etc/nginxディレクトリにコピーされていることを確認します:
      sudo cp ogg.key /etc/nginx/.
      sudo cp ogg.pem /etc/nginx/.
      次の2行を、正しいファイルの場所を指すように変更します:
      ssl_certificate          /etc/nginx/ogg.pem;
      ssl_certificate_key      /etc/nginx/ogg.key;
    4. ルートCA署名証明書を使用している場合は、すべての中間CA証明書がサーバー証明書に追加されていることを確認します:
      cat server_cert.pem intermediate_ca_cert1.pem intermediate_ca_cert2.pem > ogg_chain.pem
      秘密キーと証明書チェーンを/etc/nginxにコピーします:
      sudo cp ogg_chain.pem /etc/nginx/. 
      sudo cp ogg_key /etc/nginx/.
      次の2行を、正しいファイルの場所を指すように変更します:
      ssl_certificate         /etc/nginx/ogg_chain.pem;
      ssl_certificate_key     /etc/nginx/ogg.key;
  5. 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
  6. NGINXサービスを再起動します:

    sudo systemctl restart nginx

    構成ファイルに対する変更がロードされていない場合は、プロキシを停止して再起動します。

  7. NGINXが正常に設定された後にマイクロサービスにアクセスできるかどうかをテストするために、Webブラウザを開きます。

  8. 次のように、ポート番号443を使用してサービス・マネージャのプロキシURLを入力します。

    http://dc.example.com:443

    これにより、他のマイクロサービスにもアクセスできる、サービス・マネージャのログイン・ページが開きます。マイクロサービスに直接アクセスする必要がある場合は、以前に生成されたogg.confファイル内で指定されているとおり、そのマイクロサービスのプロキシURLを入力します。

NGINXリバース・プロキシの構成については、このビデオもご覧ください。

SSL終端

TLSベースの接続を使用するリバース・プロキシとオリジン・サーバーとの間に保護されていない接続がある場合、その接続はリバース・プロキシSSL終端と呼ばれます。

ノート:

SSL終端では、リバース・プロキシとオリジン・サーバーの間の接続は保護されていません。

ただし、SSLブリッジングもサポートされています。この場合は、クライアントとリバース・プロキシの間の接続が保護され、リバース・プロキシとオリジン・サーバーの間の接続も保護されます。

ノート:

リバース・プロキシを使用する場合、mTLSはサポートされません。