Managing Curl within HTTP Server Interactions

By default, the SBC cannot configure some Libcurl options, but when you enable man-compliance, you can configure them using the http-profile element within the session-router. You can create multiple profiles and apply them to individual sti-server elements.

Parameters within the http-profile include:

  • name: The name you use to apply your profile to a sti-server. You configure the http-profile parameter to a sti-server using this name.
  • tcp-keepalive-idle-timer: Configures the CURLOPT_TCP_KEEPIDLE Libcurl option, which sets the time the SBC waits while a connection is idle before sending keepalive probes.
  • tcp-keepalive-interval-timer: Configures the CURLOPT_TCP_KEEPINTVL Libcurl option, which sets the wait time the SBC uses between sending keepalive probes.
  • tcp-conntimeout-timer: Configures the CURLOPT_CONNECTTIMEOUT Libcurl option, which sets the maximum time in milliseconds that the SBC waits for the connection phase to the server to complete.
  • tcp-conn-idle-max-age: Configures the CURLOPT_MAXAGE_CONN, which sets the maximum time in seconds the SBC waits for an existing connection to have been idle before it reuses the connection for a subsequent request.
  • tcp-conn-max-life-time: Configures the CURLOPT_MAXLIFETIME_CONN Libcurl option, which sets the maximum time in seconds after the creation of a connection that the SBC waits for the connection to become available for reuse for this request.
  • tcp-conn-terminate-method: Configures the SO_LINGER Libcurl option, which forces the TCP/IP stack to send the connection reset state to the server immediately.

Note:

By default, libcurl automatically clears TCP connections that have been idle longer than CURLOPT_MAXAGE_CONN or alive longer than CURLOPT_MAXLIFETIME_CONN.

However, when you enable man-compliance, libcurl does not automatically clear connections when maximum idle and lifetime timers expire. Instead, it waits for a new request or a heartbeat request from the SBC to clear the connections.

You can configure the SBC to send heartbeat requests at regular intervals by configuring STI heartbeat checks in the sti-heartbeat-config element. The sti-heartbeat-msg-interval-time parameter controls the timing of these requests. See STI Server Heartbeat for more information about configuring heartbeat checks.