DESTINATION Section

The DESINTATION section configures the backend server to be used for processing requests and receiving responses. It must include one of 'jeus', 'reverse proxy', or 'htmls'.

Configuration Items

The following is the environment configuration format of the DESTINATION section.

"destination": {
    #"jeus": [
        {
            "name": string,
            #"server_schedule": string,                                 # "RR"
            #"connection_schedule": string,                             # "RR"
            #"enable_flexible_sticky_session_routing": boolean,         # false
            #"enable_request_level_ping": boolean,                      # false
            #"request_level_ping_timeout": integer                      # 3 (0-INT_MAX)
            #"request_level_ping_retry_count": integer                  # 0 (0-INT_MAX)
            #"headers": [string],
            #"session_id_cookie_key": string,                           # "JSESSIONID"
            #"rewrite_cookie_domain": string,
            #"rewrite_cookie_path": {
                "from": string,
                "to": string
            },
            #"enable_cache": boolean,                                   # false
            #"cache_refresh": integer,                                  # 3600 (1-INT_MAX)
            #"max_queue_count": integer,                                # 0 (0-INT_MAX)
            #"max_queue_url": string,
            #"max_queue_status_code": integer,                          # 503
            #"queue_timeout": integer,                                  # 0 (0-INT_MAX)
            #"backup_server": string
        }
    ],
    #"reverse_proxy": {
        #"common_config": {                                             # COMMON
            #"headers": [string],
            #"compression": [string],
            #"compression_min_size": integer,                           # 0 (0-INT_MAX)
            #"rewrite_redirect": [
                {
                    "original_uri": string,
                    "redirect_path": string
                }
            ],
            #"rewrite_cookie_domain": string,
            #"rewrite_cookie_path": {
                "from": string,
                "to": string,
            },
            #"max_queue_count": integer,                                # 0 (0-INT_MAX)
            #"max_queue_url": string,
            #"max_queue_status_code": integer,                          # 503
            #"websocket_connections_max": integer,                      # 0 (0-INT_MAX)
            #"websocket_session_timeout": integer,                      # 0 (0-INT_MAX)
            #"set_host_header": string,
            #"queue_timeout": integer,                                  # 0 (0-INT_MAX)
            #"name_resolution_interval": integer,                       # 0 (0-INT_MAX)
            #"server_health_check": {
                #"retry_count": integer,                                # 3 (0-INT_MAX)
                #"failback_interval": integer,                          # 60 (0-INT_MAX)
                #"http_failure": [string],                              # []
                #"connection_timeout": integer,                         # 5 (0-INT_MAX)
                #"enable_name_resolution_on_fail": boolean              # true
            },
            #"rewrite_html_url": [
                {
                    "tag": string,
                    "attribute": [string],
                    "from": string,
                    "to": string
                }
            ],
            #"rewrite_html_max_size": integer                           # 10240 (1-INT_MAX)
        },
        "reverse_proxy_group": [
            {
                "name": string,
                "reverse_proxy_server": [
                    {
                        "name": string,
                        "address": string,
                        #"enable_proxy_ssl": boolean,                   # false
                        #"proxy_ssl_name": [string],
                        #"persistent_server_connections_min": integer,  # 0 (0-INT_MAX)
                        #"persistent_server_connections_max": integer,  # 0 (0-INT_MAX)
                        #"persistent_server_check_time": integer,       # 30 (0-INT_MAX)
                        #"persistent_server_check_url": string,
                        #"persistent_server_timeout": integer,          # 300 (0-INT_MAX)
                        #"enable_cache": boolean,                       # false
                        #"cache_refresh": integer,                      # 3600 (1-INT_MAX)
                        #"sticky_session_routing_id": string,
                        #"is_backup_server": boolean,                   # false
                        #"load_balancing_factor": integer,              # 1 (1-INT_MAX)
                        #"common_config": {...}                         # COMMON
                    }
                ],
                #"server_schedule": string,                             # "RR"
                #"sticky_session_routing": {
                    #"policy": string,                                  # "UseOriginalCookie"
                    #"session_id_cookie_key": string,                   # "JSESSIONID"
                    #"enable_flexible_sticky_session_routing": boolean  # false
                },
                #"common_config": {...}                                 # COMMON
            }
        ]
    },
    #"htmls":[
        {
            "name": string,
            #"headers": [string],
            #"compression": [string],
            #"compression_min_size": integer,                           # 0 (0-INT_MAX)
            #"enable_cache": boolean,                                   # false
            #"cache_refresh": integer,                                  # 3600 (1-INT_MAX)
            #"queue_timeout": integer,                                  # 0 (0-INT_MAX)
            #"enable_sendfile": boolean,                                # false
            #"sendfile_min_size": integer,                              # 0 (0-INT_MAX)
            #"enable_etag": boolean                                     # true
        }
    ]
}

Refer to Types of Setting Values and Configuration Methods for more information on symbols and details of the DESTINATION section configuration items.

jeus

Set this when performing services using WJP by integrating WebtoB with JEUS.

Item Description

Data Type

Array (object)

jeus/name (Required)

Sets the name of JEUS. The specified name must match the name set in wjp/wjp_servers/name.

Item Description

Data Type

String

Range

Up to 31 characters

jeus/server_schedule

Sets the method for specifying a server to process requests when multiple servers are defined in wjp/wjp_servers.

Item Description

Data Type

String

Range

"RR"

Default Value

"RR"

The following describes each configuration value.

Value Description

RR

Assigns requests sequentially to JEUS using the round robin method.

jeus/connection_schedule

Sets the method for specifying a connection to process requests when multiple connections are established to the JEUS server.

Item Description

Data Type

String

Range

"RR"

Default Value

"RR"

The following describes each configuration value.

Value Description

RR

Assigns requests to connections sequentially using the round robin method.

jeus/enable_flexible_sticky_session_routing

Sets whether to enable flexible routing during session routing.

Item Description

Data Type

Boolean

Default Value

False

The following describes each configuration value.

Value Description

True

If connections up to persistent_server_connections_max of the internal server are in the RUN state when using the sticky_session_routing_id for session routing, requests are routed to another internal server connection with a different sticky_session_routing_id instead of being queued.

False

Uses the sticky session routing by default. Requests are routed only to internal server connections with the same sticky_session_routing_id, and requests are queued if connections up to persistent_server_connections_max are all in the RUN state.

If you are using flexible routing, requests from different clients with the same JSESSIONID may be routed to different servers. (Default setting is recommended.)

jeus/enable_request_level_ping

Sets whether to send a PING to the server before forwarding a request. This setting is useful when multiple JEUS servers are connected and a server may have difficulty responding to requests due to Out Of Memory (OOM).

Item Description

Data Type

Boolean

Default Value

False

The following describes each configuration value.

Value Description

True

Sends a PING for every request forwarded to the JEUS server and only forwards the request if a response is received.

False

Directly forwards the request without sending a PING for all requests forwarded to the JEUS server.

This may result in performance degradation as it requires sending a PING and waiting for a response for every request. (Default setting is recommended.)

jeus/request_level_ping_timeout

Sets the time to wait for a response after sending a PING. If no response is received within the specified time, the connection is terminated, and another JEUS server is rescheduled to send a PING.

Item Description

Data Type

Integer

Unit

seconds

Range

0 ~ INT_MAX

Default Value

3

jeus/request_level_ping_retry_count

Sets the number of retry attempts if sending a PING to all Jengines within the JEUS server fails.

Item Description

Data Type

Integer

Range

0 ~ INT_MAX

Default Value

0

jeus/headers

Sets the name of the HEADERS section to apply.

Item Description

Data Type

Array (string)

Range

Up to 15 items (within 255 characters)

Sets the Key name of the HTTP cookie used for session routing.

Item Description

Data Type

String

Range

Up to 255 characters

Default Value

"JSESSIONID"

Modifies the "domain=" value of the Cookie header field of the response from the internal server. If the domain string specified in "domain=" matches the string specified in RewriteCookieDomain, the "domain=" value is replaced with the domain of the user request.

Item Description

Data Type

String

Range

Up to 255 characters

Default Value

"JSESSIONID"

Using the following configuration, if the WebtoB domain is webtob, the cookie of the original response "jsessionid=abc, domain=internal.server.com" is changed to "jsessionid=abc, domain=webtob".

"rewrite_cookie_domain": "internal.server.com"

Modifies the "path=" value of the cookie header field of the internal server response.

Item Description

Data Type

Object

Specifies the string to be modified in the "path=" value.

Item Description

Data Type

String

Range

Up to 255 characters

Specifies the string to replace the "path=" value.

Item Description

Data Type

String

Range

Up to 255 characters

jeus/enable_cache

Sets whether the content is cached.

Item Description

Data Type

Boolean

Default Value

False

jeus/cache_refresh

Sets the value for calculating the validity period of cached responses when caching responses received from JEUS.

When WebtoB responds to a client’s request with cached content, it checks whether the cached content is valid. The validity is determined based on the set value (valid time).

Item Description

Data Type

Integer

Unit

seconds

Range

1 ~ INT_MAX

Default Value

3600

Priority

The priority of the setting is as follows:

  1. Cache-Control:max-age: If the Cache-Control:max-age value is in the Response Header when the header is being cached, the header is specified to be valid for the max-age value (second).

  2. Expires: If the Expires value is in the Response Header when the header is being cached, the header is specified to be valid until the Expires value (hour).

  3. cache_refresh: If there are no 'Cache-Control:max-age' or 'Expires' values in the response header, the response received from JEUS is valid for cache_refresh (in seconds) after being cached.

jeus/max_queue_count

When a surge in client requests overloads a server and the server is no longer able to respond to new requests, it is necessary to ignore them.

Once the number of client requests in the queue reaches a certain limit, any further incoming requests will not be queued. Instead, the server will respond to the client with an error.

Item Description

Data Type

Integer

Range

0 ~ INT_MAX

Default Value

0

jeus/max_queue_url

Sets the page to be served instead when the server queue is full.

Item Description

Data Type

String

Range

Up to 255 characters

jeus/max_queue_status_code

Sets the status code to be returned when the server queue is full.

Item Description

Data Type

String

Range

301 | 302 | 303 | 307 | 308 | 410 | 503

Default Value

503

jeus/queue_timeout

Specifies the timeout for user requests in a server queue.

When a request cannot be processed due to a large volume of user requests, the request waits in the server queue until a server process becomes available.

Item Description

Data Type

Integer

Range

0 ~ INT_MAX

Default Value

0

The following describes each configuration value.

Value Description

0

There is no time limit for waiting in the server queue.

Positive Integer

Requests waiting longer than the specified time will be removed from the queue and respond with "503 Service Unavailable".

The following is an example of setting max_queue:

  ...
  "destination": {
    "jeus": {
      "max_queue_count": 3,
      "max_queue_url":"/jsvtest/common/test.html",
      "max_queue_status_code":302,
      "queue_timeout":100
    }
  },
  ...

With the above settings, when there are 2 JEUS connections and 10 calls are made, the response will include 2 page calls, 3 queue page calls, and 5 calls to the max_queue_url.

jeus/backup_server

Sets the server to be used as a backup when all servers are not ready.

Item Description

Data Type

String

Range

Up to 31 characters

reverse_proxy

This is a type of HTTP proxy used to forward requests to internal servers and can be used for web application server (WAS) integration.

Item Description

Data Type

Object

reverse_proxy/common_config

A common setting for reverse proxies. If set in the parent item, the settings will be reflected to the child items without the need for additional configuration.

Item Description

Data Type

Object

Priority

The priority of the setting is as follows:

  1. reverse_proxy_server

  2. reverse_proxy_group

  3. reverse_proxy

reverse_proxy/common_config/headers

Sets the name of the HEADERS section to apply.

Item Description

Data Type

Array (string)

Range

Up to 15 items (within 255 characters)

reverse_proxy/common_config/compression

Sets the target for response compression. Specifies the MIME-type (content-type of the response) to be compressed. The target response is compressed with GZIP, then sent to the client.

Item Description

Data Type

Array (string)

Range

Up to 32 items (within 255 characters)

Compression can reduce the network traffic, but it may degrade server performance.

Files with low compression ratio, such as zip or jpeg, should not be compressed if possible to avoid server overhead.

Compression can only be used for requests with Accept-Encoding set to GZIP or deflate in the HTTP request header.

reverse_proxy/common_config/compression_min_size

Specifies the minimum size of the response to compress.

If the value of the Content-Length response header is greater than the specified size, the response is compressed. However, this does not apply to chunked responses, as it is difficult to determine the size of the response.

Item Description

Data Type

Integer

Range

0 ~ INT_MAX

Default Value

0

reverse_proxy/common_config/rewrite_redirect

Modifies the values in the "Location" and "Content-Location" headers in the response from the internal server. If that field starts with "original_uri", replace the part that matches "original_uri" with "redirect_path".

Item Description

Data Type

Array (object)

Range

Up to 16 items (each original_uri and redirect_path must be within 255 characters)

In the following example, if the Location of the original response is "http://internal.server.com:80/docs_kr/abc.html", it will be changed to "/internal_kr/abc.html".

"rewrite_redirect": [
    {
        "original_uri": "http://internal.server.com:80/docs/",
        "redirect_path": "/internal/"
    },
    {
        "original_uri": "http://internal.server.com:80/docs_kr",
        "redirect_path": "/internal_kr/"
    },
    {
        "original_uri": "http://internal.server.com:80/docs_ch/",
        "redirect_path": "/internal_ch/"
    }
]

Modifies the "domain=" value of the Cookie header field of the response from the internal server. If the domain string specified in "domain=" matches the string specified in rewrite_cookie_domain, the "domain=" value is replaced with the domain of the user request.

Item Description

Data Type

String

Range

Up to 255 characters

Default Value

0

Using the following configuration, if the WebtoB domain is webtob, the cookie of the original response "jsessionid=abc, domain=internal.server.com" is changed to "jsessionid=abc, domain=webtob".

"rewrite_cookie_domain": "internal.server.com"

Modifies the "path=" value of the cookie header field of the internal server response.

Item Description

Data Type

Object

Using the following configuration, the original response cookie "jsessionid=abc, path=/jeus/application" is changed to "jsessionid=abc, path=/jeus_proxy/application".

"rewrite_cookie_path": {
    "from": "jeus",
    "to": "/jeus_proxy"
}

Specifies the string to be modified in the "path=" value.

Item Description

Data Type

String

Range

Up to 255 characters

Specifies the string to replace the "path=" value.

Item Description

Data Type

String

Range

Up to 255 characters

reverse_proxy/common_config/max_queue_count

When a surge in client requests overloads a server and the server is no longer able to respond to new requests, it is necessary to ignore them.

Once the number of client requests in the queue reaches a certain limit, any further incoming requests will not be queued. Instead, the server will respond to the client with an error.

Item Description

Data Type

Integer

Range

0 ~ INT_MAX

Default Value

0

reverse_proxy/common_config/max_queue_url

Sets the page to be served instead when the server queue is full.

Item Description

Data Type

String

Range

Up to 255 characters

reverse_proxy/common_config/max_queue_status_code

Sets the status code to be returned when the server queue is full.

Item Description

Data Type

Integer

Range

301 | 302 | 303 | 307 | 308 | 410 | 503

Default Value

503

reverse_proxy/common_config/websocket_connections_max

Specifies the maximum number of connections when connection is upgraded from HTTP to WebSocket protocol.

Item Description

Data Type

Integer

Range

0 ~ INT_MAX

Default Value

0

The following describes each configuration value.

Value Description

0

No limit is set on the number of WebSocket connections.

reverse_proxy/common_config/websocket_session_timeout

Specifies the timeout for WebSocket connection.

Item Description

Data Type

Integer

Range

0 ~ INT_MAX

Default Value

0

The following describes each configuration value.

Value Description

0

Timeout check is not performed.

It is recommended to set this value based on the timeout setting of the WebSocket session on the internal server.

reverse_proxy/common_config/set_host_header

Specifies the Host header when forwarding the request to the internal server using reverse proxy.

If not set, the value specified in ServerAddress is used. If set to "$BypassHostHeader", the client Host header is used without modification.

Item Description

Data Type

String

Range

Up to 255 characters

Default Value

0

reverse_proxy/common_config/queue_timeout

Specifies the timeout for user requests in a server queue.

When a request cannot be processed due to a large volume of user requests, the request waits in the server queue until a server process becomes available.

Item Description

Data Type

Integer

Range

0 ~ INT_MAX

Default Value

0

The following describes each configuration value.

Value Description

0

There is no time limit for waiting in the server queue.

Positive Integer

Requests waiting longer than the specified time will be removed from the queue and respond with "503 Service Unavailable".

reverse_proxy/common_config/name_resolution_interval

Sets the frequency at which Hostname Resolution is performed.

Item Description

Data Type

Integer

Range

0 ~ INT_MAX

Default Value

0

The following describes each configuration value.

Value Description

0

Follows the operating system’s Time-To-Live (TTL) settings.

reverse_proxy/common_config/server_health_check

Configures health check information for reverse proxy groups.

Item Description

Data Type

Object

The following is an example of using the server_health_check:

  "destination": {
    "reverse_proxy ": {
      "common_config": {
        "server_health_check":{
	        "retry_count":4,
	        "failback_interval":5,
	        "http_failure":["http_invalid", "http_4xx"],
            "connection_timeout": 5,
	        "enable_name_resolution_on_fail":false
        }

reverse_proxy/common_config/server_health_check/retry_count

Sets the number of retry attempts to determine failover.

Item Description

Data Type

Integer

Range

0 ~ INT_MAX

Default Value

3

reverse_proxy/common_config/server_health_check/failback_interval

Sets the health check interval to attempt a failback after a failover.

Item Description

Data Type

Integer

Range

0 ~ INT_MAX

Default Value

60

The following describes each configuration value.

Value Description

0

Does not perform failover or failback.

reverse_proxy/common_config/server_health_check/http_failure

Sets the criteria for determining HTTP response failures.

Item Description

Data Type

Array (string)

Allowed Options

The following options can treat certain types of HTTP responses as failures:

  • http_invalid: Considers an invalid HTTP message as a failure.

  • http_4xx: Considers 400 HTTP responses as failures.

  • http_5xx: Considers 500 HTTP responses as failures.

  • http_{3-digit number}: Considers HTTP responses corresponding to the specified {3-digit number} as failures. Allowed numbers are 403, 404, 429, 500, 502, 503, and 504.

reverse_proxy/common_config/server_health_check/connection_timeout

Specifies the retry interval for TCP connection with the internal server.

Item Description

Data Type

Integer

Range

0 ~ INT_MAX (seconds)

Default Value

5 (seconds)

reverse_proxy/common_config/server_health_check/enable_name_resolution_on_fail

Sets whether to attempt Hostname Resolution again when a failure is determined.

Item Description

Data Type

Boolean

Default Value

True

reverse_proxy/common_config/rewrite_html_url

Used to replace the URL included in the HTML page response body. If the URL includes a host, the host is replaced with the WebtoB server address used in the request.

Item Description

Data Type

Array (object)

Range

Up to 64 items

The following is an example of changing the URL from http://test2:80 to /proxy/ for the src, longdesc, and usemap attributes of the img tag.

"rewrite_html_url": [
    {
        "tag": "img",
        "attribute": ["src", "longdesc"],
        "from": "http://test2:80",
        "to": "/proxy/"
    }
]

reverse_proxy/common_config/rewrite_html_url/tag (Required)

Specifies the tag name.

Item Description

Data Type

String

Range

Up to 255 characters

reverse_proxy/common_config/rewrite_html_url/attribute (Required)

Specifies the attribute name.

Item Description

Data Type

Array (string)

Range

Up to 64 items (within 255 characters)

reverse_proxy/common_config/rewrite_html_url/from (Required)

Specifies the string to be modified in the URL.

Item Description

Data Type

String

Range

Up to 255 characters

reverse_proxy/common_config/rewrite_html_url/to (Required)

Specifies the string to which the URL will be modified.

Item Description

Data Type

String

Range

Up to 255 characters

reverse_proxy/common_config/rewrite_html_max_size

If the response is an HTML page (Content-Type: text/html), specific tag values inside the page can be modified. This value sets the maximum internal buffer size that can be used. If the response size is greater than the specified value, the original response is sent to the client.

Item Description

Data Type

Integer

Range

1 ~ INT_MAX

Default Value

10240

reverse_proxy/reverse_proxy_group (Required)

You can manage the reverse_proxy settings as a group and configure multiple servers.

By setting up multiple reverse proxy (internal) servers, you can group them for load balancing and sticky session routing, and integrate them with Web Application Server (WAS).

Item Description

Data Type

Array (object)

reverse_proxy/reverse_proxy_group/name (Required)

Specifies the reverse_proxy_group name.

Item Description

Data Type

String

Range

Up to 31 characters

reverse_proxy/reverse_proxy_group/reverse_proxy_server (Required)

You can manage different configurations for each ip:port in one reverse_proxy_group.

Item Description

Data Type

Array (object)

Range

Up to 32 items

reverse_proxy/reverse_proxy_group/reverse_proxy_server/name (Required)

Specifies the name of the reverse proxy server.

Item Description

Data Type

String

Range

Up to 31 characters

reverse_proxy/reverse_proxy_group/reverse_proxy_server/address (Required)

Specifies the internal server address to which the request is sent.

Item Description

Data Type

String

Range

Up to 255 characters

reverse_proxy/reverse_proxy_group/reverse_proxy_server/enable_proxy_ssl

Specifies whether to use SSL/TLS to connect to the internal server. If set, the PROXY_SSL section item can be set in proxy_ssl_name.

Item Description

Data Type

Boolean

Default Value

False

reverse_proxy/reverse_proxy_group/reverse_proxy_server/proxy_ssl_name

Specifies the name of the ssl/proxy_ssl_configs section to be used. This setting is applied only when enable_proxy_ssl is set to 'true'.

Item Description

Data Type

Array (string)

Range

Up to 100 items (within 31 characters)

The following is an example of using proxy_ssl_name:

  "destination": {
    "reverse_proxy":{
      "reverse_proxy_server":[
        {
          "address":"internal.server.com:80",
          "name":"rproxy1",
          "enable_proxy_ssl": true,
          "proxy_ssl_name":["ssl1"]
        }
      ]
    }
  }

reverse_proxy/reverse_proxy_group/reverse_proxy_server/persistent_server_connections_min

Specifies the minimum number of connections required to maintain connection with an internal server after request processing is complete.

A new connection with an internal server is created when there is a new request, and as long as the internal server doesn’t terminate the connection it is maintained and reused for subsequent requests.

Item Description

Data Type

Integer

Range

0 ~ INT_MAX

Default Value

0

reverse_proxy/reverse_proxy_group/reverse_proxy_server/persistent_server_connections_max

Specifies the maximum number of connections required to maintain connection with an internal server after request processing is complete.

When there is a new request, a new connection is created if all connections are currently processing other requests and the request is queued if the number of connections has reached the specified maximum limit.

Item Description

Data Type

Integer

Range

0 ~ INT_MAX

Default Value

0

reverse_proxy/reverse_proxy_group/reverse_proxy_server/persistent_server_check_url

Specifies to internally use the HTTP HEAD request as the ping message for maintaining internal server connections.

Item Description

Data Type

String

Range

Up to 255 characters

Default Value

"/"

Connections are maintained by using a ping message to check for the connection state after sending an HTTP request to the internal server and receiving an HTTP response. If the response message is not 200, the connection is terminated. An application must be implemented on the internal server to respond to the ping.

reverse_proxy/reverse_proxy_group/reverse_proxy_server/persistent_server_check_time

Specifies the interval for checking connection with an internal server in order to manage internal server connections.

To maintain internal server connections, this must be set to a value less than the keepalive_timeout of the internal server. A single ping is sent to connections in the Ready state, and the connection is disconnected if no reply is received within the persistent_server_check_time period.

Item Description

Data Type

Integer

Unit

seconds

Range

0 ~ INT_MAX

Default Value

30

The following describes each configuration value.

Value Description

0

no ping is sent and connections are maintained for the keepalive_timeout period of the external server.

reverse_proxy/reverse_proxy_group/reverse_proxy_server/persistent_server_timeout

Specifies the timeout for terminating a connection in the Ready state when the number of internal server connections has reached the persistent_server_connections_min.

Item Description

Data Type

Integer

Unit

seconds

Range

0 ~ INT_MAX

Default Value

300

The following describes each configuration value.

Value Description

0

No timeout check for idle connections.

The following is an example of using persistent_server:

  "destination": {
    "reverse_proxy":{
      "reverse_proxy_group":[
        {
          "name": "rproxyg1",
          ...
          "persistent_server_connections_min":10,
          "persistent_server_connections_max":15,
          "persistent_server_check_time": 25,
          "persistent_server_check_url":"/jsvtest/common/test.html",
          "persistent_server_timeout":3000
        }
      ]
    }
  }

reverse_proxy/reverse_proxy_group/reverse_proxy_server/enable_cache

Sets whether the content is cached.

Item Description

Data Type

Boolean

Default Value

False

reverse_proxy/reverse_proxy_group/reverse_proxy_server/cache_refresh

Specifies the value to calculate the time a cached response is valid when a response handled by a reverse proxy is cached.

When WebtoB responds to a client’s request with cached content, it checks whether the cached content is valid. The validity is determined based on the set value (valid time).

Item Description

Data Type

Integer

Unit

seconds

Range

1 ~ INT_MAX

Default Value

3600

Priority

The priority of the setting is as follows:

  1. Cache-Control:max-age: If the Cache-Control:max-age value is in the Response Header when the header is being cached, the header is specified to be valid for the max-age value (second).

  2. Expires: If the Expires value is in the Response Header when the header is being cached, the header is specified to be valid until the Expires value (hour).

  3. cache_refresh: If there are no 'Cache-Control:max-age' or 'Expires' values in the response header, the response received from JEUS is valid for cache_refresh (in seconds) after being cached.

reverse_proxy/reverse_proxy_group/reverse_proxy_server/sticky_session_routing_id

Used for integration with a specific internal server (web application server) and using sticky session routing.

Use the name of the engine that corresponds to the Sticky Session id (JSESSIONID) value set in the Set-Cookie response header by the internal server (WAS). For example, if the "JSESSIONID" value in the Set-Cookie response header is "Pl1xfBkEVbUu2cj20CUNlHJoWLmU.xxx_servlet_engine1", use the value following the delimiter (period) which is "xxx_servlet_engine1".

Item Description

Data Type

String

Range

Up to 255 characters

reverse_proxy/reverse_proxy_group/reverse_proxy_server/is_backup_server

Sets whether this server should be used as a backup server in case all other reverse proxy servers are not ready.

Item Description

Data Type

Boolean

Default Value

False

reverse_proxy/reverse_proxy_group/reverse_proxy_server/load_balancing_factor

Sets the ratio at which requests will be distributed to the corresponding reverse proxy servers in the reverse proxy group.

Requests are distributed in the ratio of "(load_balancing_factor of the reverse proxy server) / (sum of load_balancing_factors of all reverse proxy servers in the group)".

Item Description

Data Type

Integer

Range

1 ~ INT_MAX

Default Value

1

reverse_proxy/reverse_proxy_group/reverse_proxy_server/common_config

A common setting for reverse proxies. If set in the parent item, the settings will be reflected to the child items without the need for additional configuration.

Item Description

Data Type

Object

Priority

The priority of the setting is as follows:

  1. reverse_proxy_server

  2. reverse_proxy_group

  3. reverse_proxy

reverse_proxy/reverse_proxy_group/server_schedule

Sets the method for specifying the reverse proxy to process requests when multiple reverse proxies are set up.

Item Description

Data Type

String

Range

"RR"

Default Value

"RR"

The following describes each configuration value.

Value Description

RR

Assigns requests to reverse proxies sequentially using the round robin method.

reverse_proxy/reverse_proxy_group/sticky_session_routing

Settings related to session routing.

Item Description

Data Type

Object

reverse_proxy/reverse_proxy_group/sticky_session_routing/policy

Sets the session routing policy.

Item Description

Data Type

String

Range

"AddNewCookie" | "ModifyOriginalCookie" | "UseOriginalCookie"

Default Value

"UseOriginalCookie"

Specifies the Key name of the HTTP cookie used for session routing.

Item Description

Data Type

String

Default Value

"JSESSIONID"

reverse_proxy/reverse_proxy_group/sticky_session_routing/enable_flexible_sticky_session_routing

Sets whether to enable flexible routing during session routing.

Item Description

Data Type

Boolean

Default Value

False

The following describes each configuration value.

Value Description

True

If connections up to persistent_server_connections_max of the internal server are in the RUN state when using the sticky_session_routing_id for session routing, requests are routed to another internal server connection with a different sticky_session_routing_id instead of being queued.

False

Uses the sticky session routing by default. Requests are routed only to internal server connections with the same sticky_session_routing_id, and requests are queued if connections up to persistent_server_connections_max are all in the RUN state.

If you are using flexible routing, requests from different clients with the same JSESSIONID may be routed to different servers. (Default setting is recommended.)

reverse_proxy/reverse_proxy_group/common_config

A common setting for reverse proxies. If set in the parent item, the settings will be reflected to the child items without the need for additional configuration.

Item Description

Data Type

Object

Priority

The priority of the setting is as follows:

  1. reverse_proxy_server

  2. reverse_proxy_group

  3. reverse_proxy

htmls

Configures this setting to handle static file requests. Supported HTTP methods are "GET", "POST", and "HEAD", while a "405 Method Not Allowed" response is returned for all other methods.

Item Description

Data Type

Array (object)

htmls/name (Required)

Specifies the name of the htmls.

Item Description

Data Type

String

Range

Up to 31 characters

htmls/headers

Sets the name of the HEADERS section to apply.

Item Description

Data Type

Array (string)

Range

Up to 15 items (within 255 characters)

htmls/compression

Sets the targets for compression in responses for static files. Specifies the MIME-types (content-types) of files to compress. The corresponding response will be compressed using GZIP before being sent to the client.

Item Description

Data Type

Array (string)

Range

Up to 32 items (within 255 characters)

Compression can reduce the network traffic, but it may degrade server performance.

Files with low compression ratio, such as zip or jpeg, should not be compressed if possible to avoid server overhead.

Compression can only be used for requests with Accept-Encoding set to GZIP or deflate in the HTTP request header.

htmls/compression_min_size

Specifies the minimum size of the response to compress. If the requested file size is greater than the specified size, the response is compressed.

Item Description

Data Type

Integer

Unit

bytes

Range

0 ~ INT_MAX

Default Value

0

htmls/enable_cache

Sets whether the content is cached.

Item Description

Data Type

Boolean

Default Value

False

htmls/cache_refresh

Sets the validity period for cached responses whose 'Content-Type' is 'text/html'. That is, a 'text/html' response will only be valid for the set number of seconds after being cached.

Item Description

Data Type

integer

Unit

seconds

Range

1 ~ INT_MAX

Default Value

3600

A conditional-GET request checks to see if the cached response has been modified. If it has been modified, the cache is deleted and updated with the new version.

htmls/queue_timeout

When a request cannot be processed due to a large volume of user requests, the request waits in the server queue until a server process becomes available.

Item Description

Data Type

Integer

Unit

seconds

Range

1 ~ INT_MAX

Default Value

0

The following describes each configuration value.

Value Description

0

There is no time limit for waiting in the server queue.

Positive Integer

Requests waiting longer than the specified time will be removed from the queue and respond with "503 Service Unavailable".

htmls/enable_sendfile

Configures whether to use the sendfile function.

Item Description

Data Type

Boolean

Default Value

False

htmls/sendfile_min_size

If a requested file size is greater than the specified value, the sendfile function is used.

Item Description

Data Type

Integer

Unit

bytes

Range

0 ~ INT_MAX

Default Value

8192

htmls/enable_etag

Configures whether to use ETag.

Item Description

Data Type

Boolean

Default Value

True

The following describes each configuration value.

Value Description

False

ETag is not added to HTTP response, and ETag of HTTP request is ignored.

Example

The following is an example of configuring the DESTINATION section:

"destination": {
    "jeus": [
        {
            "name": "MyGroup"
        }
    ],
    "reverse_proxy": {
        "common_config": {
                "server_health_check": {
                    "retry_count": 3,
                    "failback_interval": 5,
                    "http_failure": ["http_invalid", "http_4xx"],
                    "connection_timeout": 5
                }
        }
        "reverse_proxy_group": [
            {
                "name": "rproxy1",
                "reverse_proxy_server": [
                    {
                        "address": "192.168.15.114:28080",
                        "enable_proxy_ssl": false
                    }
                ]
            }
        ]
    }
    "htmls": [
        {
            "name": "htmls1"
        }
    ]
}