使用反向代理安全部署

了解如何使用 NGINX 配置反向代理服务以访问 Oracle GoldenGate 微服务而无需使用端口号。

使用 ReverseProxySettings 的先决条件

您可以将任何反向代理服务与 MA 一起使用。以下示例提供了一个过程,您可以按照该过程来配置其他反向代理服务以及代理服务器的文档。

以下先决条件提供了有关配置 NGINX 反向代理的最低要求的详细信息。如果使用其他实用程序进行代理配置,则您的环境和反向代理可能需要类似的要求。

注:在 Oracle Linux 8 或 RHEL 8 上安装 Oracle GoldenGate 26ai 时,通过启用相应的 NGINX 模块流,确保 NGINX 版本为 1.24 或更高版本。

  1. 安装 NGINX,请参见 Install the NGINX Web Server and Proxy on Oracle Linux 。对于 Oracle Linux,用于安装 NGINX 的命令是:

    yum -y install nginx

  2. 检查 JRE 版本是否为 JRE 8 或更高版本。

  3. 安装 Oracle GoldenGate MA。

  4. 创建一个或多个活动 MA 部署。

  5. 确保 Oracle 用户具有 sudo 权限。

  6. 配置 PATH 环境变量以包括 NGINX 安装目录路径。

运行 ReverseProxySettings 实用程序以配置 NGINX

Oracle GoldenGate 微服务体系结构安装包括 ReverseProxySettings 实用程序。ReverseProxySettings 实用程序位于 $OGG_HOME/lib/utl/reverseproxy 目录中。

要确定可以与 ReverseProxySettings 实用程序一起使用的其他命令,请使用 --help 选项运行该实用程序:

$OGG_HOME/lib/utl/reverseproxy/ReverseProxySettings --help

ReverseProxySettings 实用程序提供的选项包括:

-o 或–输出

输出文件名。缺省文件名为 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

要使用的服务管理器帐户的名称。

-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/.

      更改以下两行以指向正确的文件位置:

      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/.

      更改以下两行以指向正确的文件位置:

      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

    这将打开 Service Manager 登录页面,您也可以在其中访问其他微服务。如果要直接访问微服务,可以输入以前生成的该微服务的代理 URL(如 ogg.conf 文件中所述)。

有关配置 NGINX 反向代理,另请参见此视频。

SSL 终止

反向代理(使用基于 TLS 的连接)与源服务器之间存在不安全的连接时,称为反向代理 SSL 终止。注:在 SSL 终止中,反向代理与源服务器之间的连接不安全。

但是,如果客户端和反向代理之间的连接受到保护,反向代理和源服务器之间的连接也受到保护,则也支持 SSL 桥接。

注:使用反向代理时不支持 mTLS。