Page tree
Skip to end of metadata
Go to start of metadata

Sends the request to the final server (the one configured for the tunnel) and initializes the attributes of the response (http.response.*) based on the server's response.

In normal operation, the server’s response will be stored in the table http.response.* and the value of the Boolean variable proxy.response.failed will be False.

If an error is raised, the value of this variable will be set to True. There are then two possibilities:

  • The error is detected immediately. The proxy.response.failed.* table will be populated with all the available information. For example, if a server does not respond, the absence of a response will allow a "Service temporarily unavailable" message to be generated.
  • The error is detected during a series of sub-requests. The proxy.response.failed.* table will be populated with all the information received up to the time of the error and the http.response.* table will be initialized with an error message.

It is possible that the end server may return an error page and the i-Box cannot detect it. This is often due to poor configuration, such as setting Response body fetching to Never in a context that requires Now.

Parameters

General

  • Display name: The name of the node as it will appear in the Workflow. Replaces the term “Proxy Request”.
  • Response body fetching: Defines the behavior of the Workflow in relation to the server’s response. By default (Auto value) the body of the response will be processed if and only if an explicit reference is made to an element of the response. The value never indicates that the content of the response should never be processed, and now indicates that it should always be done.

NTLM

  • Use NTLM authentication: Specifies whether NTLM authentication should be sent to the backend server (Yes) or not (No; the default). If the parameter is set to No, the following parameters are not configurable.
  • Forward NTLM authentication: specifies whether NTLM authentication is performed by the client (Yes) or by the proxy (No; the default). If the parameter is set to Yes, the following parameters are not configurable.
  • NTLM version: The NTLM version used. The default value is NTLMv1. NTLMv2 is recommended, however.
  • NTLM Login: the username used for NTLM authentication
  • NTLM Password: the password used for NTLM authentication
  • NTLM Domain: the domain used for NTLM authentication. Optional.
  • NTLM workstation: Name of the workstation used for NTLM authentication. Optional.
  • NTLM Negotiate Always sign: Indicates whether the node should attempt to negotiate the Always sign flag (No by default). This parameter should be enabled only at the request of Tech Support.
  • Bind backend connection to client: This parameter is visible when NTLM authentication is disabled. When this option is enabled, the Reverse Proxy associates a client TCP connection with a TCP connection to the backend. In this case network socket multiplexing is disabled.
  • Forward Upgrade requests: This parameter is visible when NTLM authentication is disabled. When this option is enabled, the Reverse Proxy is able to handle upgrade requests needed to switch from HTTP protocol to WebSocket Protocol.
  • Response body fetching: Defines the behavior of the Workflow in relation to the server’s response. By default (Auto value) the body of the response will be processed if and only if an explicit reference is made to an element of the response. The value Never indicates that the content of the response should never be processed, and Now indicates that it should always be done.

DenyAll recommends that Response body fetching be set to Auto only. This parameter, which became obsolete in v5.5, will be removed in a later version

Provided attributes

  • http.response.body: Character string type. Contains the body of the server’s response or a response supplied by the i-Box in case of error.
  • http.response.cookies: table of cookies returned by the server
  • http.response.headers: Table of headers returned by the server. Example: [ {  'Date', , (29/33), "Tue, 11 Jun 2013 13:39:27 GMT" }, { 'Server', , (22/26), "Apache/2.2.16 (Debian)" } ]
  • http.response.host: IP address or name of the server
  • http.response.port: Listening port of the server for the HTTP protocol. Example: 80 (the standard port)
  • http.response.protocol: Version of the HTTP protocol used in the response. Example: HTTP/1.1
  • http.response.status: Server return code; indicates the status of the request or service. Example: 404 not found, 200 OK,
  • proxy.response.failed: Set to True if the response does not come from the backend.
  • proxy.response.failed.body: Contains the server’s response, if available.
  • proxy.response.failed.headers: Contains all or part of the table of cookies returned by the server, if available.
  • proxy.response.failed.host: Contains all or part of the table of headers returned by the server, if available.
  • proxy.response.failed.port: The server listening port for the HTTP protocol, if available.
  • proxy.response.failed.protocol: version of the HTTP protocol used in the response.
  • proxy.response.failed.status: Server return code; indicates the type of failure. Example: 503