SGD Gateway 包含以下组件:
路由代理。一种基于 Java 技术的应用程序,用于将 AIP 数据连接路由到 SGD 服务器。
路由代理的主要组件有:
路由令牌-请参见第 A.2.1 节 “关于路由令牌”
路由代理配置文件-请参见第 A.2.3 节 “路由代理配置文件”
反向代理。一种 Apache Web 服务器,配置为在反向代理模式下工作。反向代理还执行 HTTP 连接的负载平衡。
反向代理的主要组件有:
用于 Apache Web 服务器的配置文件-请参见第 A.2.4 节 “Apache Web 服务器配置文件”
用于反向代理和 HTTP 负载平衡的 Apache 模块-请参见第 A.2.5 节 “SGD Gateway 使用的 Apache 模块”
SGD Gateway 使用路由令牌来管理 AIP 连接。路由令牌是经过签名的加密消息,用于标识路由的源 SGD 服务器和目标 SGD 服务器。该路由令牌包含用于限制令牌生命周期的时间戳。
传出的路由令牌:
使用 SGD 服务器的私钥在 SGD 服务器上签名。
使用 SGD Gateway 证书在 SGD 服务器上加密。
发送到客户端设备上的 SGD Client。
传入路由令牌:
使用 SGD Gateway 私钥在 SGD Gateway 上解密。
使用源 SGD 服务器的 CA 证书在 SGD Gateway 上进行验证。
在 SGD Gateway 上被丢弃。提供路由令牌的连接将路由到目标 SGD 服务器。
SGD Gateway 使用私钥和证书来对路由令牌进行数字签名和验证,保护与阵列中的 SGD 服务器的连接安全,保护与 SGD Gateway 的连接安全,并对反射服务访问进行授权。
©SGD Gateway 使用的证书和私钥存储在 /opt/SUNWsgdg/proxy/etc
目录下的密钥库中。
该目录包含以下密钥库:
SGD Gateway 密钥库。SGD Gateway 密钥库 keystore
包含 SGD Gateway 证书和私钥、阵列中 SGD 服务器的 CA 证书以及用于与阵列中 SGD 服务器建立安全连接的 SGD 服务器 SSL 证书。
要添加、删除和列出 SGD Gateway 密钥库中的条目,请使用 gateway 命令。
客户端密钥库。客户端密钥库 keystore.client
包含一个 SGD Gateway SSL 证书和私钥,用于保护客户端设备和 SGD Gateway 之间的连接安全。默认情况下,该密钥库包含自签名证书。您可以将该证书替换为由证书颁发机构 (Certificate Authority, CA) 签名的证书。
反射服务密钥库。反射服务密钥库 keystore.reflection
包含一个证书和私钥,用于在 SGD Gateway 上对反射服务访问进行授权。默认情况下,该密钥库包含自签名证书和私钥。
如果在安装 SGD Gateway 后运行 gateway setup 命令,将自动创建密钥库。
所有密钥库都使用 /opt/SUNWsgdg/etc/password
文件中定义的同一个密码。该密码是首次创建密钥库时自动创建的随机密码。该密码文件只能由超级用户 (root) 读取。
该路由代理配置文件为 /opt/SUNWsgdg/etc/gateway.xml
。这是一个 XML 文件,用于根据数据协议类型配置路由。该文件还配置路由和 SSL 协议所需的密钥库位置和密码。
该路由代理配置文件在安装 SGD Gateway 时自动创建,并在使用 gateway config 命令更改 SGD Gateway 的配置时进行更新。
使用 gateway config 命令来配置 Gateway。如有可能,避免手动编辑 gateway.xml
文件。gateway.xml
文件中的错误配置可能导致 SGD Gateway 停止运行。
默认路由代理配置文件使用 /opt/SUNWsgdg/etc/password
文件中的密码来访问 SGD Gateway 使用的密钥库。如果您不希望将该密码存储在磁盘上,请记录密码文件中的条目。删除该密码文件,并删除 gateway.xml
文件中所有 <keystore>
元素的 password
条目。当您下次启动 SGD Gateway 时,会提示您输入密钥库密码。
要更改 SGD Gateway 使用的密钥库密码,请使用带 -storepasswd
选项的 keytool 命令。例如,要更改 keystore.client
密钥库的密码,请运行以下命令:
# /opt/SUNWsgdg/java/default/bin/keytool -storepasswd \ -keystore /opt/SUNWsgdg/proxy/etc/keystore.client
有关如何使用 keytool 应用程序的详细信息,请参见 JDK Tools and Utilities(JDK 工具和实用程序)文档。
/opt/SUNWsgdg/etc
目录还包含其他 .xml
和 .template
文件。gateway config 命令在内部使用这些文件来更新 gateway.xml
文件。请不要手动编辑这些文件。
配置用于 SGD Gateway 的 Apache Web 服务器的配置文件位于 /opt/SUNWsgdg/httpd/
目录中。
apache-version
/conf
此目录中的配置文件用于为 Apache Web 服务器配置反向代理操作和负载平衡。
用于配置反向代理操作和负载平衡的文件位于 extra/gateway
子目录中。这些文件由主要 httpd.conf
文件中的以下 Include
指令启用:
# SGD Reverse Proxy/Load Balance settings Include conf/extra/gateway/httpd-gateway.conf
httpd-gateway.conf
文件为 Apache Web 服务器配置反向代理和负载平衡。负载平衡组的成员是使用 httpd-gateway.conf
文件中的 Include
指令定义的,如下所示:
<Proxy Balancer://mysgdservers/> Include conf/extra/gateway/servers/*.conf </Proxy>
extra/gateway/servers
目录包含负载平衡组中每个 SGD Web 服务器的配置文件。配置文件命名为
,其中 server-name
.confserver-name
是 gateway server add 命令中使用的服务器名称。有关此命令的更多详细信息,请参见第 B.12 节 “gateway server add”。
SGD Gateway 使用粘性会话 HTTP 负载平衡。这意味着 Apache 反向代理在客户端浏览器中设置 cookie,以确保浏览器始终返回负载平衡选择的 SGD Web 服务器。cookie 在用户会话结束时过期。
粘性会话 cookie 由 httpd-gateway.conf
文件中的 Header add Set-Cookie
指令启用,如下所示:
Header add Set-Cookie "BALANCEID=balanceworker.%{BALANCER_WORKER_ROUTE}e; path=/" \ env=BALANCER_ROUTE_CHANGED
其中 BALANCEID
是 cookie 的名称,BALANCER_WORKER_ROUTE
和 BALANCER_ROUTE_CHANGED
是 Apache mod_proxy_balancer
模块导出的环境变量。有关这些环境变量的更多信息,请参见 Apache mod_proxy_balancer 文档。