最新版本:2.0.2-1

|
概览 |
|
|
目录 |
系统 |
|
类别 |
网关 |
|
用户卷 |
yes |
|
最小 内存 |
160M |
|
操作系统 |
Linux |
|
约束 |
no |
INSSLR 组件是安全 HTTP 请求的第 7 层网关。 它将请求转换为未编码的 HTTP 请求。 需要支持客户端的安全 HTTP 时,可随时使用它,但是后端处理基础架构不支持或无法支持 SSL,其中包括:
如果已配置,则 INSSLR 也支持客户端证书身份验证。 在进行 SSL 相互身份验证的情况下,客户端和服务器都将交换各自的证书和相应公钥。 客户端可以联系发布服务器证书的认证机构 (CA Technologies),并确认证书是真实的,然后进行操作。 服务器也可能这样做。
在其默认配置中,INSSLR 充当安全 HTTP 请求的第 7 层网关,同时也提供了有防火墙的入口点,让网络流量进入 CA 3Tera AppLogic 应用,可以使用 Internet 可访问的静态 IP 地址配置该应用。
在配置时,可以在故障切换模式下使用两个 INSSLR 组件来提供冗余服务。 在这种情况下,INSSLR IP 地址(通过 ip_addr 配置)仅在其中一个节点上运行,并在失败时自动转移到另一个 INSSLR 组件。 在任何给定时间,只有一个 INSSLR 组件处于活动状态。 在故障切换模式下运行时,可以将 INSSLR 配置为在以下几种模式下运行:
在冗余模式下运行时,INSSLR 在其 ctl 终端上提供一个界面,用于:
INSSLR 持续不断地监控连接到其 http 终端的后端组件的运行状况。 INSSLR 执行的运行状况检查可能包含简单的 TCP 连接检查或更复杂的 HTTP 请求(在 INSSLR 的边界上指定)。 在连接的组件失败时,INSSLR 会将错误报告给网格显示板,或者(如果处于冗余模式并配置为这样做)故障切换到备份 INSSLR 组件。
要支持需要在多个服务的单个 IP 地址中显示的应用,可将 INSSLR 配置为将非 HTTP 流量透明地定向到单独的输出终端。 对于此类连接,组件充当第 3 层防火墙/NAT 路由器。
资源
|
资源 |
最小值 |
最大值 |
默认值 |
|
CPU |
0.05 |
4 |
0.05 |
|
内存 |
160M |
2G |
160 M |
|
带宽 |
1 Mbps |
2 Gbps |
200 Mbps |
用于 CA 3Tera AppLogic 2.7 版本的默认内存已更改为 128 MB。 最小内存仍为 64 MB。
说明
分配给 INSSLR 的内存量不影响其吞吐量。 使用更多内存只为了支持更多并发请求,这样后端服务器可以在更长的时间段内保留请求。
终端
|
name |
dir |
协议 |
说明 |
|
ctl |
in |
HTTP |
接收有关组件已被强制为主服务器/备份服务器的通知。 仅当 fover_mode 不是 none 时,该终端才接受连接。 有效的 http 请求类似于 /?action=<active|passive|kill|status>。 active/passive 选项使组件成为主动或被动组件。 注意:该操作可能不成功(如果另一个节点未处于活动状态并且无法完成故障切换),并且不返回错误。 调用应用通过发出 /?action=status 请求来检查组件的状态。 status 返回组件的当前状态 (active/passive)。 kill 可强制关闭组件,由另一个节点(如果它正在运行)接管该组件。 |
|
http |
out |
HTTP |
在配置的外部 IP 地址接收的 HTTPS 和/或 HTTP 请求,将在标准 HTTP 端口 80 上作为简单 HTTP 请求定向到输出 http。 除客户端提供的 HTTP 头之外,转发的请求还包含以下信息头: X-Forwarded-For:远程客户端的 IP 地址。 服务器端 CGI 脚本应使用该 IP 地址来代替远程 IP 地址。 X-Forwarded-Proto: https-如果已通过 HTTPS 连接客户端,将存在该头。 后端应用使用此头来区分 HTTP 和 HTTPS 连接。 |
|
fs |
out |
NFS |
为用于存储密钥的本地密钥卷提供一个 nfs 挂接作为备用位置。 如果同时提供本地密钥卷和 fs 终端连接,组件将无法启动。 此终端可保持未连接状态。 |
|
aux |
out |
Any |
其他协议(如果已配置)的输出一请参阅 l3_accept_ * 属性。 |
|
nfy |
out |
HTTP |
每当发生故障切换时发出通知。 另请参阅 fover_nfy_prefix。 此终端可保持未连接状态。 |
|
mon |
out |
CCE |
发送性能和资源使用统计信息。 |
属性
|
name |
类型 |
说明 |
|
ip_addr |
ip_owned |
网关的外部 IP 地址。 该属性没有默认值,必须予以设置。 默认值:(空) |
|
网络掩码 |
IP 地址 |
网络掩码。 该属性没有默认值,必须予以设置。 默认值:(空) |
|
网关 |
IP 地址 |
传出流量的默认网关。 默认值:(空) |
|
l7_accept |
enum |
该属性指定接受将哪种类型的 HTTP 流量转发到 http 终端。 有效值:https、http、both、none。 如果设置为 none,则只根据 l3_accept_* 属性重定向所有流量。 |
|
l3_accept_proto |
enum |
指定应将哪些协议转发到 aux 终端。 有效值:none、tcp、udp、raw、all。 |
|
l3_accept_port |
string |
要在 l3_accept_proto 指定的协议中接受并发送到 aux 终端的逗号(或空格)分隔的协议列表;该列表中的协议可以指定为端口号或标准协议名称(例如:ftp、smtp 等等; 在指定 tcp/udp 端口或 gre、tcp 等时; 在使用原始协议时)。 还可以指定端口范围(例如 1024:10000、0:1024)。 如果留空,则转发指定协议的所有端口。 |
|
allowed_hosts |
字符串 |
允许连接的主机和/或子网的列表。 使用空格或逗号分隔多个条目。 支持的格式示例:192.168.1.2 192.168.1.0/24 192.168.2.0/255.255.255.0。 默认值:0.0.0.0/0(全部允许) |
|
key_on_fs |
string |
指示密钥通过 fs 终端 (on) 存储在 nfs 挂接上还是存储在本地密钥卷上 (off)。 有效值:on 和 off。 默认值:off。 |
|
cert_file |
string |
该网关实例应为客户端提供的服务器证书的文件名(相对于数据卷根)。 注意:如果将 l7_accept 设置为 http 或 both,则在配置的数据卷上(请参阅下面的“卷”)由此属性指定的位置必须存在有效证书,否则 INSSLR 将无法启动。 |
|
unsafe_ssl |
string |
为了与传统浏览器兼容,允许使用不安全的 ssl 密码。 默认值 disabled 将禁用 SSLv2 密码以及被视为不安全的其他一些 SSLv3 和 TLSv1 密码。 建议将该属性设置为 disabled,除非您需要对仅使用 SSLv2 的传统浏览器支持 http 会话。 在设置为 enabled 时,系统中可用的所有 SSL 密码(包括 SSLv2)都可用于 https 会话。 |
|
keepalive |
int |
指定 INSSLR 和客户端之间的最长保持连接时间(指定以秒为单位)。 默认值:15。 |
|
timeout |
int |
指定 INSSLR 等待后端服务器输出的秒数。 如果后端服务器在超时秒数内未发送输出,连接将会关闭。 |
|
max_request_size |
int |
客户端请求的最大大小 (MB)。 如果应用需要处理较大的客户端上载,请增大此值。 默认值:10。 |
|
adv_config |
string |
在 http 和 https 侦听程序(以启用的那一个为准)的位置块内添加要插入到 nginx conf 中的原始配置。 例如:要添加自定义头,请将 adv_config 设置为 proxy_set_header myport $proxy_port;。 这样会向发送给后端服务器的请求中添加 myport: 80。 adv_config 可以设置为位置块的任何有效语句(请参阅 nginx 文档了解更多详细信息)。 可以添加用 ; 分隔的多个配置行。 如果设置,该属性必须采用有效的 nginx 语法(以 ; 结束),否则组件将无法启动。 默认值:(空) |
|
client_cert |
string |
启用客户端证书身份验证。 有效值:on、ask 和 off。 如果设置为 on,则强制使用客户端证书身份验证,只有具有有效证书的客户端可以向 INSSLR 发出成功请求。 如果设置为 ask,将请求客户端提供证书,但即使未提供有效证书也会建立连接。 默认值:off。 |
|
client_depth |
int |
要在成链客户端证书中进行的验证深度。 如果未设置 client_cert,该属性将无效。 有效值:1-9。 默认值:1 |
|
ca_list_client |
string |
包含 PEM 格式的 CA Technologies 证书序列的文件。 连接时,会将所列 CA Technologies 证书的名称发送到客户端。 这会通知客户端它应发送哪个客户端证书。 可使用同一列表来验证客户端证书。 该文件名相对于已挂接的密钥卷的根目录或通过 fs 终端进行的 nfs 挂接的根目录,并且可以包含路径,例如 path/to/keys/ca_list_client.pem。 默认值:ca_list_client.pem。 |
|
cert_revocation_list |
string |
包含 CA 生成的证书吊销列表 (CRL) 的文件。 该列表列出了 CA 吊销的客户端证书。 将在该列表中搜索提供给 INSSLR 的每个客户端证书,如果发现该证书已被吊销,INSSLR 将向客户端发出“SSL 证书错误”响应。 该文件名与 ca_list_client 相似,也相对于已挂接的密钥卷的根目录或通过 fs 终端进行的 nfs 挂接的根目录,并且可以包含路径,例如 path/to/keys/ca_list_client.pem。 默认值:""。 |
|
name |
类型 |
说明 |
|
healthcheck_method |
字符串 |
用于执行后端 Web 服务器运行状况检查的方法。 |
|
healthcheck_url |
字符串 |
用于以 http_get 和 http_head 运行状况检查方法执行后端 Web 服务器运行状况检查的 URL。 可指定为完整 URL (http://host.name/file/to/check/for.php) 或相对路径 (/file/to/check/for.php)。 如果指定为 URL,INSSLR 在使用从 Host: 头中的 UR 中提取的主机名执行运行状况检查时将使用 HTTP/1.1 协议。 允许使用虚拟主机。 如果指定为相对路径,INSSLR 将使用 HTTP/1.0 协议,并检查该属性指定的文档。 |
|
healthcheck_agent |
字符串 |
用作 http_get 和 http_head 运行状况检查方法的代理标识符的字符串。 |
|
healthcheck_regexp |
字符串 |
用于 http_head 和 http_get 运行状况检查模式的测试字符串。 使用简短或不具体的字符串(例如 OK)很可能会引起误报匹配。 该字符串是 Perl 正则表达式,此处提供了有关 Perl 正则表达式的更多详细信息。 |
|
healthcheck_interval |
Int |
后端 Web 服务器运行状况检查之间的时间间隔(指定以秒为单位)。 |
|
healthcheck_timeout |
Int |
运行状况检查花费的最长时间(秒)。 如果超过超时值,则认为检查失败,并将其终止(启动新检查)。 默认值:10。 |
|
healthcheck_alert |
Int |
在 INSSLR 开始在网格显示板上转储错误之前的后续运行状况检查失败数。 如果设置为 0,则不向显示板报告任何错误(但仍启用运行状况检查)。 为了避免在启动/停止应用时出现误报,请勿将此值设置得太低。 如果在冗余模式下运行 INSSLR 并且要在后端服务器出现故障的情况下切换到备份节点,另请参阅 fover_on_healthcheck。 默认值:3。 |
|
fover_mode |
字符串 |
故障切换模式。 可能值有 none(无故障切换)、symmetric 和 asymmetric。 |
|
fover_local_ip |
IP 地址 |
要在故障切换模式下用于与其他 INSSLR 组件进行通信的本地 IP 地址。 此值可以是任意可用的 IP,包括任何保留的专用地址(由 rfc1918 定义)。 该地址仅用于监控其他 INSLLR 组件的状态。 应将该属性设置为与其他 INSSLR 组件中的 fover_remote_ip 属性相同的 IP。 如果已将 fover_mode 设置为 none,则可将该属性留空。 |
|
fover_remote_ip |
IP 地址 |
用于故障切换模式的其他 INSSLR 组件的远程 IP 地址。 重要信息! 应将该属性设置为与其他 INSSLR 组件中的 fover_local_ip 属性相同的 IP。 如果已将 fover_mode 设置为 none,则可将该属性留空。 |
|
fover_netmask |
IP 地址 |
fover_local_ip 的网络掩码。 |
|
fover_nfy_prefix |
字符串 |
每当发生故障切换时请求的 Url 前缀。 请求的 URL 是 http://nfy/fover_nfy_prefixfover_mode=fover_mode&state=<start|stop>&ip_addr=ip_addr&fover_local_ip=fover_local_ip&fover_remote_ip=fover_remote_ip&fover_netmask=fover_netmask 并通过 nfy 终端。 |
|
fover_on_healthcheck |
Int |
指定如果对 http 终端的运行状况检查失败,INSSLR 是否应故障切换到备份节点。 如果设置为非零值,INSSLR 将在后续的许多运行状况检查失败后进行故障切换。 为了避免在启动/停止应用时出现误报,请勿将此值设置得太低。 如果您只需要收到失败通知,另请参阅 healthcheck_alert。 默认值:0(禁用)。 |
卷
|
名称 |
说明 |
|
key |
一个只读数据卷(占位符),至少包含 SSL 服务器签名密钥。 该文件应为 PEM 格式。 除非已修改 cert_file 属性来指定不同名称,否则证书应位于名为 server.pem 的密钥卷的根目录中。 |
错误消息
在组件启动失败的情况下,系统日志可能记录以下错误消息:
|
错误消息 |
说明 |
|
错误: 找不到 SSL 服务器证书 [cert_file] |
找不到 cert_file 属性指定的 SSL 服务器证书。 通过将 l7_accept 设置为 http 或 none 来提供有效证书路径或禁用安全的 HTTP 请求 |
|
错误: RSA 私钥受密码保护 |
SSL 服务器证书受密码保护,您需要不受密码保护的证书。 |
|
错误: client_cert 的值无效 [client_cert] |
有效值包括 on、off 和 ask。 |
|
错误: client_depth 的值无效 [client_depth] |
有效值为 1-9。 |
|
错误: 找不到 CA Technologies 客户端列表 [ca_list_client] |
找不到 CA Technologies 客户端列表。 提供 CA Technologies 客户端列表或通过将 client_cert 设置为 off 来禁用客户端证书。 |
|
错误: 您指定了原始 l3 协议,但未指定协议编号 (l3_accept_port) |
在将 l3_accept_proto 设置为 raw 时,l3_accept_port 属性是必需的。 |
|
错误: 属性 [property] 的值无效: [value] |
该属性的值无效。 |
|
错误: 在冗余模式下运行所需要的最小内存为 100 MB |
在冗余模式(fover_mode 不为 none)下运行时,需要的最小内存为 100 MB。 |
|
错误: 已启用对运行状况检查的故障切换,但组件不在冗余模式下运行 |
已启用对运行状况检查的故障切换 (fover_on_healthcheck > 0),但组件不在冗余模式下运行(fover_mode 是 none)。 |
|
错误: 当 healthcheck_method 为 http_get 或 http_head 时,必须设置 healthcheck_url |
当 healthcheck_method 为 http_get 或 http_head 时,属性 healthcheck_url 不应为空。 |
|
错误: 当 healthcheck_method 为 http_get 或 http_head 时,必须设置 healthcheck_regexp |
当 healthcheck_method 为 http_get 或 http_head 时,属性 healthcheck_regexp 不应为空。 |
|
错误: 已启用对运行状况检查的故障切换,但已禁用运行状况检查 |
已启用对运行状况检查的故障切换 (fover_on_healthcheck > 0),但未启用运行状况检查(healthcheck_method 为 off)。 |
|
错误: healthcheck_method 的值 [healthcheck_method] 无效 |
有效值包括 off、tcp_connect、http_get、http_head。 |
|
错误: 防火墙配置失败 |
无法启动防火墙,检查 l3_accept_proto、l3_accept_port、l3_accept_proto、allowed_hosts、l7_accept 值。 |
|
错误: 无法配置 Nginx |
无法配置 nginx 服务,如果使用了 adv_config 属性,请检查该属性。 |
|
错误: 无法启动运行状况检查 |
无法启动运行状况检查,请检查 healthcheck_ 属性。 |
|
运行状况检查 URL 中存在错误: [url] |
指定的 healthcheck_url 无效。 |
|
错误: 检测信号无法启动 |
无法启动检测信号服务。 |
性能
应用故障切换
INSSLR 用大约 10 秒检测其他 INSSLR 的故障。 它再用 10 秒故障切换到其他应用。 从最初发生应用故障到其他应用接管流量的总时间大约为 20 秒。
请求速率
INSSLR 每秒路由的事务数不少于 3000 个(请求/响应对),此速率受文档大小和可用网络带宽的限制。
数据吞吐量
INSSLR 路由速率不低于 7 MB/秒,受文档大小和可用网络带宽的限制
并发连接数
在使用默认内存的情况下,INSSLR 支持不少于 500 个并发的未决请求。 (未决请求是来自客户端的开放 TCP 连接,其中有一个或多个未完成的 HTTP 请求正在进行中)。 最大并发连接数取决于可用内存。 每增加 16 MB 内存可将并发的 http 事务数增加 500。 例如:如果在冗余模式下运行并且要提供 2000 个并发连接,则需要 100M+3*= 148M(以冗余模式运行的最小内存为 100M)。
在以冗余模式运行(fover_mode 不是 none)时,每当 INSSLR 变为主动/被动时都将触发通知。 在活动节点启动时或每当发生故障切换时,将会触发通知(每个节点发送有关 INSSLR 变为主动/被动的通知)。
INSSLR 发送两则通知:
http://nfy/fover_nfy_prefixfover_mode=fover_mode&state=<start|stop>&ip_addr=ip_addr&fover_local_ip=fover_local_ip&fover_remote_ip=fover_remote_ip&fover_netmask=fover_netmask
您可以使用 fover_nfy_prefix 来更改所调用的远程脚本的位置或/和添加其他参数。 fover_nfy_prefix 值的示例:/path/to/script.php?, /path/to/script.php?username=user&password=pass&。
重要信息!
http 请求的超时是 5 秒,因此故障切换不会变慢。
INSSLR 将对其 http 终端进行基本检查。 错误将会报告到网格显示板(最大速率为每 10 分钟 1 次)。 如果 INSSLR 以冗余模式运行并且 fover_on_healthcheck 设置为非零值,则后续的运行状况检查失败 fover_on_healthcheck 次后,INSSLR 会尝试故障切换到其备份组件。 如果备份 INSSLR 组件未运行或配置不正确,故障切换可能不会成功。
重要信息! 将 fover_on_healthcheck 设置为 1 会使 INSSLR 在每次运行状况检查失败时都进行故障切换,我们不总是希望出现这种情况。 使用较大的值可帮助避免误报(例如停止应用时)。
要使用 SSL,您需要已签名的证书以及对其进行加密的私钥。 私钥和证书应采用 PEM 格式,并放在 cert_file 属性指定的单个文件中。
生成服务器证书
CA 3Tera AppLogic 允许您生成服务器证书。
生成服务器证书
openssl genrsa -out privkey.pem 2048
要生成密码保护的密钥,请使用以下命令(要将密钥用于 INSSLR,您需要一个无密码的密钥。如果创建受密码保护的密钥,则需在 INSSLR 中使用它之前先删除密码)
openssl genrsa -des3 -out privkey.pem 2048
要生成证书请求,请执行以下命令:
openssl req -new -key privkey.pem -out server.csr
在将 .csr 文件发送到可信的证书颁发机构之后,该机构将为您返回可以使用的已签名证书(.crt 文件)。
openssl req -new -x509 -key privkey.pem -out server.crt -days 1095
使用服务器证书
现在,可将证书和密钥放在一个文件中并在 INSSLR 中使用该文件:
cat privkey.pem server.crt > server.pem
如果您的密钥受密码保护,则可通过执行以下命令来删除密码:
openssl rsa -in key_with_pass.pem -out privkey.pem
使用现有的 apache+mod_ssl 服务器证书
如果某个现有证书已在 Apache 中使用,则该证书也可以在 INSSLR 中使用。 请确保密钥不受密码保护(参阅上文),并将私钥和证书按该顺序放在一个文件中。
示例:
cat privkey.pem server.csr > server.pem
如果使用成链的证书,还应包括颁发者提供的中间证书。 将私钥、证书和中间证书以该顺序放在一个文件中。
示例:
cat privkey.pem server.csr sf_issuing.crt > server.pem
重要信息! 服务器签名密钥是网站的身份证明。 由于它不受密码保护,因此也容易受到攻击(组件无需您的协助就能读取该密钥)。 在数据卷上安装密钥文件时,请采取必要的措施来保护该密钥文件。 不要将相同的数据卷用于其他用途,也不要使其对 Web 服务器(例如:托管可通过 Web 访问的数据(HTML 页面、脚本等)的 Web 服务器)可见。
下列示例概述了如何创建 CA Technologies 私钥,并通过 OpenSSL 使用该私钥来签署自己的证书。 此操作已使用 OpenSSL 0.9.8b(与安装在 INSSLR 中的版本相同)进行测试。
创建证书颁发机构
如果您已有自己的用于创建自签名服务器证书的证书颁发机构,则可跳过此步骤并使用该证书颁发机构。 在为应用创建可信颁发机构的规范时,环境安全非常重要。
创建证书颁发机构
mkdir CA mkdir CA/private
openssl genrsa -des3 -out CA/private/CA_key.pem 2048
openssl req -new -key CA/private/CA_key.pem -x509 -days 365 -out CA/CA_cert.pem
重要信息! 证书颁发机构的私钥是信任应用的基础,因此不要将其放错地方或提供给其他方。
创建由证书颁发机构签署的客户端证书
CA 3Tera AppLogic 允许您创建由证书颁发机构签署的客户端证书。
创建由证书颁发机构签署的客户端证书
openssl genrsa -out clientA_privkey.pem 2048
openssl req -new -key clientA_privkey.pem -out clientA_request.csr
openssl x509 -req -days 365 -in clientA_request.csr -CA CA/CA_cert.pem -CAkey CA/private/CA_key.pem -CAcreateserial -out clientA.cer
请注意下列各项:
openssl genrsa -out clientB_privkey.pem 2048 openssl req -new -key clientB_privkey.pem -out clientB_request.csr openssl x509 -req -days 365 -in clientB_request.csr -CA CA/CA_cert.pem -CAkey CA/private/CA_key.pem -CAserial CA/CA_cert.srl -out clientB.cer
cat clientA_privkey.pem clientA.cer > clientA.pem
openssl pkcs12 -export -in clientA.cer -inkey clientA_privkey.pem -out clientA.p12
吊销 CA 签署的客户端证书
吊销 CA 颁发的客户端证书:
下面显示了一个示例 openssl.conf,crl_reason 参数为下列其中一项:unspecified、keyCompromise、CACompromise、affiliationChanged、superseded、cessationOfOperation、certificateHold 或 removeFromCRL。 原因的匹配不区分大小写。
重新生成证书吊销列表 (CRL):
在该示例中,crl.pem 是应作为 cert_revocation_list 属性提供给 INSSLR 的文件。
用于以上示例的示例配置文件为:
####################################################################
[ ca ]
default_ca = CA_default # The default ca section
####################################################################
[ CA_default ]
dir = ./CA # Where everything is kept
certs = $dir/certs # Where the issued certs are kept
crl_dir = $dir/crl # Where the issued crl are kept
database = $dir/index.txt # database index file.
#unique_subject = no # Set to 'no' to allow creation of
# several ctificates with same subject.
new_certs_dir = $dir/newcerts # default place for new certs.
certificate = $dir/cacert.pem # The CA certificate
serial = $dir/serial # The current serial number
crlnumber = $dir/crlnumber # the current crl number
# must be commented out to leave a V1 CRL
crl = $dir/crl.pem # The current CRL
private_key = $dir/private/cakey.pem# The private key
RANDFILE = $dir/private/.rand # private random number file
default_days = 365 # how long to certify for
default_crl_days= 30 # how long before next CRL
default_md = sha1 # which md to use.
preserve = no # keep passed DN ordering
policy = policy_anything
[ policy_anything ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
创建 INSSLR 使用的证书颁发机构列表文件
CA 3Tera AppLogic 允许您创建 INSSLR 使用的证书颁发机构列表文件。
创建 ca_list_client 属性标识的文件
cat CA/private/CA_key.pem CA/CA_cert.pem > ca_list_client.pem
openssl s_client -host IP-address -port 443 -showcerts -ssl3 -cert clientA.cer -key clientA_privkey.pem -state
如果客户端使用 HTTPS 连接到 INSSLR,并且存在客户端证书,INSSLR 会向其发出到后端服务器的请求添加以下头:
是否使用这些头由应用来决定。 INSSLR 只是传递这些信息,而不以任何方式验证这些信息(除签名和加密的正确性以外)。
Web 应用
要向您的应用提供 http(s) 访问,请将 http 终端直接连接到 WEB 组件。

如果您需要可扩展的 Web 应用,请将 http 终端挂接到 HALB 组件。

Web 应用的配置
配置示例只列出了设置为非默认值的属性,而未包括网络配置(ip_addr、netmask、gateway)。
|
属性 |
值 |
说明 |
|
l7_accept |
http/https/both |
指定所使用的 l7 协议。 注意:如果指定 https 或 both,密钥卷应包含 cert_file 属性指定的 SSL 证书 |
带有附加服务的 Web 应用
如果应用中除包含 http 之外还包含其他服务,可以使用 INSSLR 向其 http 终端传递 http 流量,并将 aux 终端用于其他服务。

|
属性 |
值 |
说明 |
|
l7_accept |
http/https/both |
指定所使用的 l7 协议。 注意:如果指定 https 或 both,密钥卷应包含 cert_file 属性指定的 ssl 证书 |
|
l3_accept_proto |
tcp |
将 tcp 端口 25、110、143 重定向到 aux 终端。 |
|
l3_accept_port |
25,110,143 |
将 tcp 端口 25、110、143 重定向到 aux 终端。 |
带有多个附加服务的 Web 应用
如果有多个 tcp/udp 服务和 http,则可使用 INSSLR 向其 http 终端传递 http 流量,并使用 aux 向 PS8 提供其余流量,这样会向后端服务器馈送所需流量。

|
属性 |
值 |
说明 |
|
l7_accept |
http/https/both |
指定所使用的 l7 协议。 注意:如果指定 https 或 both,密钥卷应包含 cert_file 属性指定的 ssl 证书 |
|
l3_accept_proto |
all |
将未传递到 http 终端的所有 IP(icmp 除外)流量都重定向到 aux 终端。 |
冗余的 Web 应用
如果需要提供冗余的 Web 应用,可以复制应用并使用 INSSLR 为外部 IP 地址提供故障切换功能。
备份 Web 应用
如果您只需要一个备份应用,用于针对停机时间向用户发出通知,则可使用 INSSLR 来生成需要最少资源的备份应用。
正在使用的组件:
主应用中的 INSSLR:
|
属性 |
值 |
说明 |
|
ip_addr |
1.2.3.4 |
应用的公共 IP 地址,主应用和备份应用的该 IP 地址必须相同。 |
|
网络掩码 |
255.255.255.0 |
应用的公共 IP 地址的网络掩码,主应用和备份应用的该网络掩码必须相同。 |
|
网关 |
1.2.3.254 |
应用的公共 IP 地址的网关,主应用和备份应用的该网关必须相同。 |
|
fover_mode |
asymmetric |
由于我们只想在主应用关闭时使用备份应用,因此在非对称模式下运行。 |
|
fover_local_ip |
192.168.100.1 |
在两个应用中的 INSSLR 组件之间通信所用的专用 IP 地址。 本地 IP 地址低于远程 IP 地址,因此该组件将成为主组件,并且只要它运行,它就是主组件。 |
|
fover_remote_ip |
192.168.100.2 |
在两个应用中的 INSSLR 组件之间通信所用的远程 IP 地址。 |
|
fover_netmask |
255.255.255.0 |
fover_local_ip 的网络掩码。 |
备份应用中的 INSSLR:
|
属性 |
值 |
说明 |
|
ip_addr |
1.2.3.4 |
应用的公共 IP 地址,主应用和备份应用的该 IP 地址必须相同。 |
|
网络掩码 |
255.255.255.0 |
应用的公共 IP 地址的网络掩码,主应用和备份应用的该网络掩码必须相同。 |
|
网关 |
1.2.3.254 |
应用的公共 IP 地址的网关,主应用和备份应用的该网关必须相同。 |
|
fover_mode |
asymmetric |
由于我们只想在主应用关闭时使用备份应用,因此在非对称模式下运行。 |
|
fover_local_ip |
192.168.100.2 |
在两个应用中的 INSSLR 组件之间通信所用的专用 IP 地址。 |
|
fover_remote_ip |
192.168.100.1 |
在两个应用中的 INSSLR 组件之间通信所用的远程 IP 地址。 |
|
fover_netmask |
255.255.255.0 |
fover_local_ip 的网络掩码。 |
冗余 Web 应用(单一应用)

如果要在冗余模式下运行应用而不创建新应用,则可只将应用中的组件加倍并在冗余模式下运行这些组件。 由于这需要使用(至少)两台 Web 服务器和两个数据库组件,因此在正常模式下它们都被使用(提供可扩展性),但是其中任何一个组件均可在另一个组件出现故障时单独为应用提供服务。 如果需要更多的可扩展性,则可添加更多 Web 和数据库组件。 在此示例中,一半组件(in1、sw1、web1、db1)在一个故障切换组中运行,其余组件(in2、sw2、web2、db2)在另一个故障切换组中,因此当一台服务器崩溃时,应用可以幸免。 该应用以极低的成本提供冗余,因为所有组件(一个 INSSLR 和一个 HALB 组件除外,它们需要的资源极少)都处于活动状态,并且不需要为只在主应用出现故障时运行的备份应用花费资源。
in1
|
属性 |
值 |
说明 |
|
ip_addr |
1.2.3.4 |
应用的公共 IP 地址,主应用和备份应用的该 IP 地址必须相同。 |
|
网络掩码 |
255.255.255.0 |
应用的公共 IP 地址的网络掩码,主应用和备份应用的该网络掩码必须相同。 |
|
网关 |
1.2.3.254 |
应用的公共 IP 地址的网关,主应用和备份应用的该网关必须相同。 |
|
fover_mode |
symmetric |
以对称模式运行。 |
|
fover_local_ip |
192.168.100.1 |
在两个应用中的 INSSLR 组件之间通信所用的专用 IP 地址。 |
|
fover_remote_ip |
192.168.100.2 |
在两个应用中的 INSSLR 组件之间通信所用的远程 IP 地址。 |
|
fover_netmask |
255.255.255.0 |
fover_local_ip 的网络掩码。 |
in2
|
属性 |
值 |
说明 |
|
ip_addr |
1.2.3.4 |
应用的公共 IP 地址,主应用和备份应用的该 IP 地址必须相同。 |
|
网络掩码 |
255.255.255.0 |
应用的公共 IP 地址的网络掩码,主应用和备份应用的该网络掩码必须相同。 |
|
网关 |
1.2.3.254 |
应用的公共 IP 地址的网关,主应用和备份应用的该网关必须相同。 |
|
fover_mode |
symmetric |
以对称模式运行。 |
|
fover_local_ip |
192.168.100.2 |
在两个应用中的 INSSLR 组件之间通信所用的专用 IP 地址。 |
|
fover_remote_ip |
192.168.100.1 |
在两个应用中的 INSSLR 组件之间通信所用的远程 IP 地址。 |
|
fover_netmask |
255.255.255.0 |
fover_local_ip 的网络掩码。 |
db1
|
属性名 |
值 |
说明 |
|
auto_create |
1 |
如果卷为空,则创建数据库。 |
|
server_id |
1 |
主服务器 1,在远程应用中应有所不同 |
|
rpl_mode |
master_and_slave |
主服务器和从服务器 |
db2
|
属性名 |
值 |
说明 |
|
auto_create |
1 |
如果卷为空,则创建数据库。 |
|
server_id |
2 |
主服务器 1,在远程应用中应有所不同 |
|
rpl_mode |
master_and_slave |
主服务器和从服务器 |
冗余 Web 应用(两个相同的应用)

您可以在同一网格中(但在不同的服务器上,这样一台服务器出现故障只影响一个应用);如果所使用的 IP 地址从两个网格中均可访问,则也可以在不同网格中运行两个相同的应用。 以下示例演示的应用使用一个在冗余模式下也运行的数据库组件,因此如果一个应用出现故障,另一个应用可以接管,且不会丢失数据。
正在使用的组件:
客户端请求到达 in1 网关。 该网关将请求转发给 web_lb 负载均衡器,后者将请求定向到 Web 服务器 web1 和 web2 中的一个。 Web 服务器访问 db 数据库。 db 组件连接到远程应用(这是相同的副本,唯一的差别在于 db 的 server_id 以及网络安装程序),以复制数据库。 远程应用通过 repl_in 网关连接到 db 组件,该网关配置为只允许来自远程应用的 repl_out 网关的连接。 两个应用中的 db 组件以主服务器-主服务器设置运行,因此它们的数据始终相同。
示例属性配置(未列出的属性应保留为默认值):
使用端口 8080 上的 admin 网关可以对 db 进行 Web 访问。
in1
|
属性 |
值 |
说明 |
|
ip_addr |
1.2.3.4 |
应用的公共 IP 地址,两个应用的该 IP 地址必须相同。 |
|
网络掩码 |
255.255.255.0 |
应用的公共 IP 地址的网络掩码,两个应用的该网络掩码必须相同。 |
|
网关 |
1.2.3.254 |
应用的公共 IP 地址的网关,两个应用的该网关必须相同。 |
|
fover_mode |
symmetric |
以对称模式运行。 |
|
fover_local_ip |
192.168.100.1 |
在两个应用中的 INSSLR 组件之间通信所用的专用 IP 地址。 在远程应用中将此值更改为 192.168.100.2。 |
|
fover_remote_ip |
192.168.100.2 |
在两个应用中的 INSSLR 组件之间通信所用的远程 IP 地址。 在远程应用中将此值更改为 192.168.100.1。 |
|
fover_netmask |
255.255.255.0 |
fover_local_ip 的网络掩码。 |
db
|
属性名 |
值 |
说明 |
|
auto_create |
1 |
如果卷为空,则创建数据库。 |
|
error_log_filename |
db.error |
要在日志数据卷上存储的错误日志文件的名称。 |
|
error_log_level |
error |
错误日志记录级别 |
|
server_id |
1 |
主服务器 1,在第二个应用中该值应该不同 |
|
rpl_mode |
master_and_slave |
主服务器和从服务器 |
重要信息! 在任何时候只有一个应用处于活动状态,另一个只为故障切换而运行并在活动应用出现故障时使用。
INSSLR 支持 HTTP 1.0 和 HTTP 1.1,但如果客户端将自身标识为 MSIE,则会对此连接关闭 HTTP 1.1 支持(以避免某些版本的 MSIE 出现缺陷)。
如果客户端不是 MSIE,即使后端服务器只支持 HTTP 1.0,INSSLR 也对客户端支持 HTTP 1.1(包括对每个 TCP 会话支持多个请求的能力)。
INSSLR 支持单个外部 IP,因此只可以使用单个 SSL 证书。
组件内所用的开源和第三方软件
INSSLR 除了使用其基类 LUX5 所用的第三方开源软件包之外,还使用下列第三方/开源软件包。
|
软件 |
版本 |
已修改 |
许可 |
说明 |
|
PyXML |
0.8.4-4 |
否 |
Fourthought |
N/A |
|
gnutls |
1.4.1-2 |
否 |
LGPLv2.1 |
N/A |
|
heartbeat |
2.1.3-3 |
否 |
LGPLv2.1 |
N/A |
|
heartbeat-pils |
2.1.3-3 |
否 |
LGPLv2.1 |
N/A |
|
heartbeat-stonith |
2.1.3-3 |
否 |
LGPLv2.1 |
N/A |
|
iptables |
1.3.5-4 |
否 |
GPLv2 |
N/A |
|
libgcrypt |
1.2.3-1 |
否 |
GPLv2 |
N/A |
|
libgpg-error |
1.4-2 |
否 |
LGPLv2.1 |
N/A |
|
lighttpd |
1.4.18-1 |
否 |
BSD |
N/A |
|
nginx |
0.7.62-1 |
是 |
BSD |
N/A |
|
sudo |
1.6.8p12-10 |
否 |
BSD |
N/A |
|
telnet |
0.17-38 |
否 |
BSD |
N/A |
| 版权所有 © 2011 CA。 保留所有权利。 | 就该主题发送电子邮件至 CA Technologies |