Tango 应用程序服务器 (TAS) 作为独立的进程运行,为 Web 服务器提供服务请求。这允许实现诸如负载分割和定向等功能,以及在 Web 服务器和平台选择上的自由。TAS 不必与 Web 服务器位于同一台机器上,甚至不限于位于一台机器上。
将 Web 服务器与 Tango 通信的首选方式是通过插件。插件使用 Web 服务器的 API(应用程序编程接口)编写,以利用该 Web 服务器的特定功能,以及代码作为 Web 服务器的一部分执行而不是作为单独的 CGI 进程执行的优势。在 Solaris 上,Tango 具有适用于 Netscape Server 的插件,以及在 Tango 2000 的更高版本中适用于 Apache 的插件。Linux 版 Tango 具有适用于 Apache 的插件。
通常,在 /whatever/netscape/suitespot/https-MYSERVER/config 中找到您的 Netscape 配置文件。在 mime.types 文件中,添加以下行
type=magnus-internal/taf exts=taf
将以下两行添加到 obj.conf 文件的顶部(没有换行符;每个以“init”开头的行都是完整的一行。因此,总共有两行)
Init fn=load-modules shlib=/var/opt/EDI/lib/TangoNS_ep3.so funcs="Tango_main,Tango_main_init"
Init fn=Tango_main_init stanza="TangoNS_ep3.so"
将此行添加到 obj.conf 文件中 <Object name=default> 区域内,与其他服务一起。
Service fn="Tango_main" method="(GET|HEAD|POST)" type="magnus-internal/taf"
然后,您需要使用 Netscape Administration Server 重新启动服务器,告知它在通知您配置文件已被手动编辑时加载配置文件。然后,尝试访问 TAF 文件。如果可以工作,那就太好了!如果不行,请再次检查您的配置文件。大多数情况下,配置错误是导致它无法工作的原因。一个空格或引号放错位置都会破坏整个设置。
通常,在 /whatever/netscape/suitespot/https-MYSERVER/config 中找到您的 Netscape 配置文件。在 mime.types 文件中,添加以下行
type=magnus-internal/taf exts=taf,tcf
然后,将以下两行添加到 obj.conf 文件的开头。请注意,每行中都没有换行符。
Init fn=load-modules shlib=/opt/PVSWtango/lib/libtango4ns.so funcs="Tango_main,Tango_main_init"
Init fn=Tango_main_init stanza="libtango4ap.so" tangoconfigpath=/opt/PVSWtango/configuration
将此行添加到 obj.conf 文件中 <Object name=default> 区域内,与其他服务一起。
Service fn="Tango_main" method="(GET|HEAD|POST)" type="magnus-internal/taf"
然后,您需要使用 Netscape Administration Server 重新启动服务器,告知它在通知您配置文件已被手动编辑时加载配置文件。然后,尝试访问 TAF 文件。如果可以工作,那就太好了!如果不行,请再次检查您的配置文件。大多数情况下,配置错误是导致它无法工作的原因。一个空格或引号放错位置都会破坏整个设置。
安装与 Tango 2000 相同,但在 obj.conf 文件的 <Object name=default> 区域的服务中添加了这一额外行
Service fn="Tango_main" method="(GET|HEAD|POST)" type="magnus-internal/tml"
此外,mime.types 文件应使用此行来代替 Tango 2000 的行
type=magnus-internal/taf exts=taf,tcf,tml
Linux 版 Tango 2000 和 Solaris 版 Tango 2000 Service Pack 1 都通过 Apache 插件支持 Apache Web 服务器。Apache 将需要 mod_so 支持才能实现所有这些功能。文档声明您必须自定义构建 Apache;这是误导性的。只有当您使用的预构建版本没有 mod_so 支持时,才需要构建 Apache。有两个地方可以检查这一点
首先,尝试使用“-l”参数运行您的 Apache 服务器。如果列出了 mod_so,则表示没问题。
# httpd -l Compiled-in modules: http-core.c mod_so.c
其次,尝试在您的 httpd.conf 文件中查找“AddModule mod_so.o”行。如果您以某种方式没有 mod_so 支持(也称为 DSO 支持),则需要编译一个支持的版本。
在您的 httpd.conf 文件的末尾,添加以下行
LoadModule t4_module /usr/local/tango/lib/libtango4ap.so TangoModule t4_module /usr/local/tango/configuration/t4client.ini
根据您的设置修改 .so 和 .ini 文件的路径。
然后,您的 t4client.ini 将需要一个用于 t4_module 的节。有关示例,请参见 t4client.ini 节。
在您的 httpd.conf 文件的末尾,添加以下行
LoadModule t4_apache /usr/local/tango/lib/libtango4ap.so TangoModule t4_apache /usr/local/tango/configuration/t4client.ini
根据需要修改文件路径;Solaris 默认为 Tango 主目录 /opt/PVSWtango/。
然后,您的 t4client.ini 将需要一个用于 t4_apache 的节。有关示例,请参见 t4client.ini 节。
Tango 使用客户端配置文件来告知 CGI 或插件将 Tango 请求发送到哪里。该文件由两个部分组成:声明部分和信息部分。以下是控制 CGI 的文件的示例
[Tango Client Definitions] t4.cgi=Put A Description Here
[t4.cgi] TANGO_SERVER=127.0.0.1,18100
以及包含 CGI 和 Apache 插件的文件的示例
[Tango Client Definitions] t4.cgi=My Tango CGI t4_apache=My Apache Plugin
[t4.cgi] TANGO_SERVER=127.0.0.1,18100
[t4_apache] TANGO_SERVER=127.0.0.1,18100
可以根据需要进行进一步的条目。使用此列表查找要用于引用 CGI/插件的“关键字”
使用 CGI 的名称。例如,您可以有两个 CGI,t4.cgi 和 t4private.cgi,每个都指向不同的 Tango 服务器。
使用“libtango4ns.so”作为名称。您不应尝试加载多个插件。
使用“TangoNS_ep3.so”
对于 Tango 2000,使用“t4_module”,对于 Tango 2000 Service Pack 1,使用“t4_apache”。您不应尝试加载多个模块。
早于 3.6 的 Tango 3 版本使用略有不同的格式。TANGO_SERVER 分为两行;TANGO_HOST 和 TANGO_PORT。这是一个例子
[Tango Client Definitions] t3.cgi
[t3.cgi] TANGO_HOST=127.0.0.1 TANGO_PORT=18000
从 3.6 开始的所有 Tango 版本都允许负载分割。您可以定义一系列插件可以使用的 Tango 服务器,它将在服务器之间分配新请求。通过 UserReference 搜索参数或 Cookie,后续请求的用户将被定向回他们之前所在的服务器。用户无法在服务器之间移动而不会丢失其变量等内容。此外,Tango 目前所做的不是负载均衡;负载均衡预计将在 Tango 的未来版本中实现。
在任何情况下,Tango 都不需要与 Web 服务器在同一台机器上运行。您只需配置 Tango 的 VALIDHOST 配置变量以包含 Web 服务器机器的 IP 地址即可。然后,在 Web 服务器机器的 t4client.ini 文件中,像往常一样输入 IP 地址和端口号。
要添加多个 Tango 服务器,请在 t4server.ini 文件中添加新服务器名称的条目,并为其添加一个新的节,通常通过复制现有节。然后,将所有目录名称更改为唯一名称,例如 LOGDIR。确保它在唯一的端口上运行。Tango 默认为端口 18100。这是一个 t4server.ini 文件的缩写示例,其中包含两个 Tango 应用程序服务器实例
[Tango Definitions] TAS_1=MyFirstServer TAS_2=MySecondServer
[TAS_1] ... LISTENERPORT=18100 ... LOGDIR=/usr/local/tango/log.TAS_1 ...
[TAS_2] ... LISTENERPORT=18101 ... LOGDIR=/usr/local/tango/log.TAS_2 ...
所有其他配置变量都将根据需要填写。
要使用特定的配置定义运行 Tango,请使用 -c 开关。
$ ./tango4d -c TAS_1 $ ./tango4d -c TAS_2
-c 开关可以与 -k 开关结合使用以杀死服务器。
请注意,您将需要相应的许可证,无论是一个企业版或专业版许可证,还是您想要的 Tango 服务器数量的标准版许可证。
在 t4client.ini 文件中,只需将每个服务器的 IP 地址和端口添加到相应 CGI 或插件的 TANGO_SERVER 行中,用冒号分隔。这是一个示例 t4client.ini 文件,使用 CGI,指向在同一台机器上运行的三个独立的 Tango 服务器,端口分别为 18100、18101 和 18102。
[Tango Client Definitions] t4.cgi=My CGI
[t4.cgi] TANGO_SERVER=127.0.0.1,18100:127.0.0.1,18101:127.0.0,1,18102
只要您的 Web 服务器场位于负载分割设备之后,并且每个 Web 服务器都使用相同的 t4client.ini 文件的精确副本,您就可以将硬件负载均衡设备与 Tango 一起使用。t4client.ini 文件应配置为使用您想要可用的每台 Tango 机器。基于 UserReference 的 Tango 重定向应正常运行。