使用反向代理安全部署
了解如何使用 NGINX 配置反向代理服务以访问 Oracle GoldenGate 微服务而无需使用端口号。
使用 ReverseProxySettings 的先决条件
您可以将任何反向代理服务与 MA 一起使用。以下示例提供了一个过程,您可以按照该过程来配置其他反向代理服务以及代理服务器的文档。
以下先决条件提供了有关配置 NGINX 反向代理的最低要求的详细信息。如果使用其他实用程序进行代理配置,则您的环境和反向代理可能需要类似的要求。
注:在 Oracle Linux 8 或 RHEL 8 上安装 Oracle GoldenGate 26ai 时,通过启用相应的 NGINX 模块流,确保 NGINX 版本为 1.24 或更高版本。
-
安装 NGINX,请参见 Install the NGINX Web Server and Proxy on Oracle Linux 。对于 Oracle Linux,用于安装 NGINX 的命令是:
yum -y install nginx -
检查 JRE 版本是否为 JRE 8 或更高版本。
-
安装 Oracle GoldenGate MA。
-
创建一个或多个活动 MA 部署。
-
确保 Oracle 用户具有
sudo权限。 -
配置
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 实用程序,请执行以下操作:
-
要为 NGINX 反向代理生成配置文件,请导航到
ReverseProxySettings实用程序的位置:cd $OGG_HOME/lib/utl/reverseproxy -
运行 ReverseProxySetting 实用程序:
ReverseProxySettings -u *adminuser* -P *adminpwd* -o ogg.conf http://localhost:9100在此代码片段中,
adminuser是部署用户名,adminpwd是用于登录到部署的部署用户密码。 -
将在步骤 2 中生成的
ogg.conf文件复制到/etc/nginx/conf.d目录。sudo cp ogg.conf /etc/nginx/conf.d/. -
使用以下步骤更新 SSL/TLS 设置的
ogg.conf文件:-
找到
ssl_ciphers行,将其替换为以下内容:ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305; -
在此行下方添加另一行:
ssl_conf_command Ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256; -
如果要使用自签名证书,请确保已将私钥和证书
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; -
如果您使用的是根 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;
-
-
验证 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 systemctl restart nginx如果未加载配置文件的更改,请停止并重新启动代理。
-
要测试是否可以在成功设置 NGINX 后访问微服务,请打开 Web 浏览器。
-
使用端口号 443 输入服务管理器的代理 URL,如下所示:
http://dc.example.com:443
这将打开 Service Manager 登录页面,您也可以在其中访问其他微服务。如果要直接访问微服务,可以输入以前生成的该微服务的代理 URL(如
ogg.conf文件中所述)。
有关配置 NGINX 反向代理,另请参见此视频。
SSL 终止
反向代理(使用基于 TLS 的连接)与源服务器之间存在不安全的连接时,称为反向代理 SSL 终止。注:在 SSL 终止中,反向代理与源服务器之间的连接不安全。
但是,如果客户端和反向代理之间的连接受到保护,反向代理和源服务器之间的连接也受到保护,则也支持 SSL 桥接。
注:使用反向代理时不支持 mTLS。