CTX805347: Как сделать балансировку нагрузки соединений через шлюз NFuse-MetaFrame


Информация в этой статье применяется к:


При установке NFuse 1.x, вы можете указать имя web-сервера NFuse и номер порта TCP шлюза сервера MetaFrame, на котором запущена служба NFuse (CtxHttp). Поскольку можно ввести только имя сервера, сервер MetaFrame становится единственным местом сбоя для соединений NFuse, которые используют шлюз по умолчанию.

1. Добавьте в файл applist.sp:

<%
ServerIndex = Application("ServerOrdinalIndex")
If ServerIndex <> "" THEN
  IPArray = Application("IPAddressArray")
  Application("ServerOrdinalIndex") = Application("ServerOrdinalIndex") + 1
  If Application("ServerOrdinalIndex") > UBound(IPArray) THEN Application("ServerOrdinalIndex") = 0
  SERVERLB = IPArray(ServerIndex)

Else

  ' Изменит ниже список адресов IP так, чтобы они соответствовали
  ' вашему списку серверов MetaFrame, запускающим службу NFuse.
  ' Адреса должны быть разделены запятой и пробелом.       
  ' После внесения изменений вы должны перезапустить службу        
  ' World Wide Web Publishing Service. 
  
  IPaddresses = "10.1.1.1, 10.2.2.2, 10.3.3.3"
 
  Application("IPAddressArray") = split(IPaddresses,", ")
  Application("ServerOrdinalIndex") = 0
  IPArray = Application("IPAddressArray")
  ServerIndex = "0"
  SERVERLB = IPArray(ServerIndex)
End If
%>

2. В соответствии с зеленым комментарием, ищмените список IP-адресов. Вы можете указать любое количество адресов.

3. Найдите в файле applist.asp следующую строку:

gateway.initialize credentials
и измените ее на :
gateway.initialize credentials, SERVERLB, "Http", "80"
(подразумевается, что служба NFuse работает на порту 80 на каждом сервере MetaFrame)

4. Ближе к концу applist.asp найдите якорь, ссылающийся на launch.asp. Он будет выглядеть так:


<font size=-1><b><a href="launch.asp?NFuse_Application=" 
& app.getNameUrlEncoded &NFuse_MIMEExtension=.ica" 
& Chr(34) & TARGET="hiddenwindow">
Добавьте переменную SERVLIB, как показано жирным цветом:
<font size=-1><b><a href="launch.asp?&NFuse_Application=<%=app.getNameUrlEncoded 
  %>&SERVERLB=<%=SERVERLB%>&NFuse_MIMEExtension=.ica" 
  TARGET="hiddenwindow">

5. Измените файл launch.asp, добавив две жирные строки:

<%
  SERVERLB= Request.QueryString("SERVERLB")
  Set parser = Server.CreateObject("com.citrix.nfuse.TemplateParser") 
  CookStr = Request.Cookies("NFuseData")
  parser.setCookieSessionFields(CookStr)
  parser.setSingleSessionField "NFuse_CitrixServer", SERVERLB
  UrlSessionFields = Request.ServerVariables("QUERY_STRING")
  parser.setUrlSessionFields(UrlSessionFields)