Latest version: 1.0.3-2

|
At a Glance |
|
|
Catalog |
System |
|
Category |
Gateways |
|
User volumes |
yes |
|
Minimum memory |
192M |
|
OS |
Linux |
|
Constraints |
no |
The INSSLR2 appliance is a layer-7 gateway for secure HTTP requests. It converts the requests to unencoded HTTP requests. You can use this functionality to support secure HTTP on the client side.
Note: The INSSLR2 appliance only works with multiple raw interfaces. You can configure the raw interfaces in the Interface tab of the Application Configuration Editor. If you do not need multiple raw interfaces, please use the INSSLR appliance.
However, the back-end processing infrastructure does not or cannot support SSL, including:
If configured, INSSLR2 also supports client certificate authentication. In the case of SSL mutual authentication, both the client and server exchange their certificates and corresponding public keys. Both the client and/or server may contact the certificate authority (CA) that issued the certificate and confirm the certificate is authentic before proceeding.
In its default configuration, INSSLR2 acts as a layer-7 gateway for secure HTTP requests. It also provides a firewalled entry point for network traffic into an application. This can be configured with an Internet-accessible static IP address.
When configured, two INSSLR2 appliances can be used in failover mode to provide a redundant service. In this case, INSSLR2 IP address is running on only one of the nodes and is automatically transfers to the other INSSLR2 appliance in case of failure. Only one of the INSSLR2 appliances is active at one time. When running in failover mode, the INSSLR2 can be configured to run in several modes:
If the primary node fails or is stopped, the backup appliance becomes active. When the primary appliance becomes available again, it reassumes the IP address and becomes active. The primary appliance is the one with the lowest IP address (string comparison) on the fover interface.
Whenever the first appliance becomes available again, it does not automatically take over the IP address.
When running in redundant mode, INSSLR2 provides an interface on its ctl terminal for:
INSSLR2 constantly monitors the health state of the backend appliance connected to its http terminal. The health state checks conducted by INSSLR2 may include a simple TCP connect check or a more complex HTTP request, if that is specified on INSSLR2 boundary.
In the case of a failure of the connected appliance, INSSLR2 reports an error to the grid dashboard or, if in redundant mode and configured to do so, it does a failover to the backup INSSLR2 appliance.
To support applications that need to appear at a single IP address for more than one service, configure the INSSLR2 to direct non-HTTP traffic transparently to a separate output terminal. For such connections, the appliance acts as a layer-3 firewall/NAT router.
Note: If two INSSLR2 appliances in the same application are configured to run in redundant mode, a warning message displays when you configure the same IP address on two different interfaces. Please ignore that error.
Resources
|
Resource |
Minimum |
Maximum |
Default |
|
CPU |
0.05 |
4 |
0.05 |
|
Memory |
192 MB |
2.0 |
192 MB |
|
Bandwidth |
1 Mbps |
2 Gbps |
200 Mbps |
Notes
Terminals
|
Name |
Direction |
Protocol |
Description |
|
ctl |
in |
http |
Receive notifications that forces the appliance to become primary/backup. This terminal accepts connections only if fover_mode is not none. A valid http request that makes the appliance active or passive is: /?action=<active|passive|kill|status> If the other node is not active and failover cannot complete, this action may not succeed and no error is returned. It is up to the calling application to check the status of the appliance by making the following request: /?action=status status returns the current active or passive state of the appliance. kill does a forced shutdown of the appliance. This makes the other node takeover, if it is running. |
|
in |
in |
any |
Accepts all incoming traffic The ip_addr, netmask, and gateway properties are attributes of the interface connected to the in terminal and can be configured on the Interface tab of the Application Configuration Editor. |
|
fover |
in |
raw |
Failover interface for intercommunication between two INSSLR2 instances. The fover_local_ip and fover netmask properties are attributes of the interface connected to the fover terminal and can be configured on the Interface tab of the Application Configuration Editor. |
|
http |
out |
http |
HTTPS and/or HTTP requests received on the configured external IP address are directed to the output http as plain HTTP requests on the standard HTTP port 80. In addition to the client-supplied HTTP headers, the forwarded requests also contain the following informational headers: X-Forwarded-For: the remote client IP address. This should be used by the server-side CGI scripts in place of the remote IP address. X-Forwarded-Proto: https This header is present if the client has connected over HTTPS. It is up to the back-end application to use this header to distinguish between HTTP and HTTPS connections. |
|
fs |
out |
nfs |
Provides for an nfs mount as an alternative location to the local key volume for storing keys. If both the local key volume and an fs terminal connection are supplied, the appliance fails to start. This terminal may remain unconnected. |
|
aux |
out |
any |
Output for other protocols, if configured. For additional information, refer to l3_accept_* properties. |
|
nfy |
out |
http |
Sends notifications when a failover occurs. See also fover_nfy_prefix. This terminal may remain unconnected. |
|
mon |
out |
cce |
Sends performance and resource usage statistics. |
Properties
|
Name |
Type |
Description |
|
dns1 |
ip_addr |
Defines the primary DNS server. If the remote host is specified by its IP address, dns1 can remain blank. If not, you must be specify dns1. Default: (empty) |
|
dns2 |
ip_addr |
Defines the secondary DNS server, which is used, if the primary DNS server does not respond. Default: (empty) |
|
I7_accept |
enum |
Specifies the type of HTTP traffic to accept for forwarding to the http terminal. Valid values: https, http, both, none If set to none all traffic is redirected only according to the l3_accept_* properties. Default: both |
|
I3_accept_proto |
enum |
Specifies which protocols should be forwarded to the aux terminal. Valid values: none, tcp, udp, raw, all. If set to tcp or udp, the l3_accept_port property can specify the port. If set to raw, the l3_accept_port property specifies the protocol number. If set to all,all incoming traffic on the external interface is forwarded to the aux terminal. The l7_accept property takes precedence over this one. Note: If you set l7_accept to value different from none, all http(s) is forwarded to the http terminal and the remaining traffic goes to aux as specified by this property. Default: none |
|
I3_accept_port |
string |
A comma or space separated list of protocols to accept and route at the protocol specified by l3_accept_proto to the aux terminal. Protocols in the list may be specified either as port numbers or as standard protocol names, such as ftp and smtp, when specifying TCP or UDP ports or gre and tcp, when using raw protocols. Port ranges can also be specified as 1024:10000 or 0:1024. If empty, all ports of the specified protocol are forwarded. Note: If you set l3_accept_proto to raw, you must specify this property which in this case specifies the protocol number. More than one raw protocol can be specified, but no proto range, such as 20:30, is allowed. Default: all |
|
allowed_hosts |
string |
List of hosts and/or subnets allowed to connect. You must separate multiple entries with spaces or commas. Supported format example: 192.168.1.2 192.168.1.0/24 192.168.2.0/255.255.255.0. Default: 0.0.0.0/0 (all allowed) |
|
key_on_fs |
string |
Indicates whether keys are stored on an nfs mount through the fs terminal (on) or on the local key volume (off). Valid values: on and off Default: off |
|
cert_file |
string |
File name, relative to the data volume root, of the server certificate that this gateway instance should present to the client. If you set l7_accept to https or both, a valid certificate must be present on the configured data volume at the location specified by this property. Otherwise INSSLR2 fails to start. For additional information, refer to Volumes. Default: server.pem |
|
unsafe_ssl |
string |
Enable the use of 'unsafe' ssl ciphers for compatibility with legacy browsers. The default value of disabled disables SSLv2 ciphers as well as other SSLv3 and TLSv1 ciphers that are not considered secure. It is recommended to leave this property set to disabled unless you need to support https sessions for legacy browsers which only work with SSLv2. When set to enabled, all SSL ciphers available on the system can be used for https sessions. This includes SSLv2. Default: disabled This property was added in version 1.2.1. |
|
keepalive |
integer |
Specifies the maximum keepalive time between INSSLR2 and the client. The time is specified in seconds. Default: 15 |
|
timeout |
integer |
Specifies how many seconds INSSLR2 waits for output from the backend server. If the backend server does not send output for timeout seconds, the connection is closed. Default: 300 |
|
max_request_size |
integer |
Maximum size in MB of the client request. Increase if your application needs to handle large client uploads. Default: 10 |
|
adv_config |
string |
Add raw configuration to be inserted in nginx conf inside location blocks for both http and https listeners (whichever is enabled). For example, to add custom headers, set adv_config to proxy_set_header myport $proxy_port;. This adds a myport: 80 to the request sent to the backend server. adv_config may be set to any valid statement for a location block. For additional details, refer to nginx documentation. You can add multiple configuration lines separated by ;. Note: If set, this property must have a valid nginx syntax, such as end with ; or the appliance fails to start. Default: (empty) |
|
client_cert |
string |
Enables client certificate authentication. Valid values: on, ask and off If set to on, client certificate authentication is forced and only clients with valid certificates can make a successful request to INSSLR2. When set to ask, clients are asked to present certificates, but the connection is established even if a valid certificate is not presented. Default: off |
|
client_depth |
integer |
The depth of verification to pursue in a chained client certificate. This property has no affect if client_cert is not set. Valid values: 1-9 Default: 1 |
|
ca_list_client |
string |
A file containing a sequence of CA certificates in PEM format. The names of the listed CA certificates are sent to the client on connection. This informs the client which client certificate it should send. The same list is used for verifying the client certificate. The file name is relative to the root of the mounted key volume or the root of the nfs mount made using the fs terminal and may contain a path, such as: path/to/keys/ca_list_client.pem. Default: ca_list_client.pem. |
|
cert_revocation_list |
string |
A file containing the certificate revocations list (CRL) as generated by the Certificate Authority. This list identifies client certificates revoked by the CA. It is searched for every client certificate presented to INSSLR2 and, if the certificate is found to be revoked, INSSLR2 issues an SSL certificate error response to the client. Similar to ca_list_client, the file name is relative to the root of the mounted key volume or the root of the nfs mount made using the fs terminal and may contain a path, such as: path/to/keys/ca_list_client.pem. Default: empty |
Healthcheck Properties
|
Name |
Type |
Description |
|
healthcheck_method |
string |
The method used for the health check of the backend web servers.
Default: off. |
|
healthcheck_url |
string |
The URL that is used to perform the health check of the backend web servers in http_get and http_head health check methods. May be specified as a complete URL, such as: http://host.name/file/to/check/for.php, or as a relative path, such as: /file/to/check/for.php. If specified as an URL, INSSLR2 uses the HTTP/1.1 protocol while performing the health checks using the hostname extracted from UR, in a Host: header. This allows usage of virtual hosts. If specified as a relative path, INSSLR2 uses the HTTP/1.0 protocol and checks for the document specified by this property. Default: / |
|
healthcheck_agent |
string |
The string used as an agent identifier for http_get and http_head health check methods. Default: INSSLR2-health-check |
|
healthcheck_regexp |
string |
A test string used with the http_head and http_get health check mode. Short or common values, such as OK, will likely cause false positive matches. This string is a perl regular expression. Default: ^HTTP\/1\.\d\s+200 |
|
healthcheck_interval |
integer |
Interval between health checks of the backend web servers. This is specified in seconds. Default: 60 seconds |
|
healthcheck_timeout |
integer |
The maximum time in seconds that a healthcheck can take. If the timeout is exceeded. the check is considered as failed and is terminated. A new check is started. Default: 10 |
|
healthcheck_alert |
integer |
Number of subsequent healthcheck failures before INSSLR2 starts dumping errors on the grid dashboard. If set to 0, no errors are reported to the dashboard, but healthchecks are still enabled. Do not set too low to avoid false positives when starting/stopping your application. If you are running INSSLR2 in redundant mode and want to take switch to the backup node in case of failure of the backend server, refer to fover_on_healthcheck for additional information. Default: 3 |
Advanced Properties Used in Failover Scenarios
|
Name |
Type |
Description |
|
fover_mode |
string |
Failover mode. Valid values: none (no failover), symmetric and asymetric When set to none, INSSLR2 acts like an INSSLR2 appliance and does not provide failover capabilities. When set to symmetric, INSSLR2 runs in symmetric failover mode. You need two INSSLR2 appliances, both running in symmetric failover mode. When set to asymmetric, INSSLR2 runs in asymmetric failover mode. You need two INSSLR2 appliances, both running in asymmetric failover mode. Note: When running in failover mode, both appliances must have fover_mode set to the same value. If fover_mode is set to none, the fover terminal should remain unconnected. Default: none |
|
fover_remote_ip |
ip_addr |
Remote IP address of the other INSSLR2 appliance used in failover mode. If fover_mode is none, this field remains empty. Default: (empty) |
|
fover_nfy_prefix |
string |
Url prefix that is requested whenever a failover occurs. The requested URL is: http://nfy/ fover_nfy_prefix fover_mode= fover_mode &state= <start|stop> &ip_addr= ip_addr &fover_local_ip= fover_local_ip &fover_remote_ip= fover_remote_ip &fover_netmask= fover_netmask and goes through the nfy terminal. Default: ? |
|
fover_on_healthcheck |
integer |
Specify if INSSLR2 should do a failover to the backup node when a health check on the http terminal fails. If set to non-zero value, INSSLR2 does a failover after many subsequent health check failures. Don't set too low to avoid false positives when starting or stopping your application. If you just need notifications for the failures, refer to healthcheck_alert. Default: 0 (disable). |
Volumes
|
Name |
Description |
|
key |
A read-only data volume, named placeholder, containing, as a minimum, the SSL server signing key. The file should be in PEM format. Unless the cert_file property is modified to specify a different name, the certificate should be located in the root directory of the key volume, named server.pem |
The following messages may appear in either the appliance log file or the system log of the grid controller when the appliance fails to start:
INSSLR2 detects the failure of the INSSLR2 in approximately 10 seconds and requires an additional 10 seconds to failover to the other application. The total time from when the application failure first occurs to when the other application takes over the traffic is approximately 20 seconds.
INSSLR2 routes no less than 3000 transactions (request/response pairs) per second, depending on the document size and network bandwidth available.
INSSLR2 routes no less than 7 MB/second, depending on the document size and network bandwidth available
With its default memory, INSSLR2 supports no less than 500 concurrently pending requests. A pending request being an open TCP connection from the client, on which there is one or more un-completed HTTP request in progress.
The maximum amount of concurrent connections depends of available free memory. Each 16 MB additional memory increases the number of concurrent http transactions by 500.
For example, if you run in redundant mode and want to serve 2000 concurrent connections, you need 100M + 3*16M = 148M. The minimum memory when running in redundant mode is 100M.
When running in redundant mode (fover_mode is not none), INSSLR2 triggers notifications when it becomes active or passive. This is performed on startup of the active node or when a failover occurs. Each node sends a notification that it became active or passive.
INSSLR2 sends two notifications:
The requested URL is:
http://nfy/ fover_nfy_prefix fover_mode= fover_mode &state= <start|stop> &ip_addr= ip_addr &fover_local_ip= fover_local_ip &fover_remote_ip= fover_remote_ip &fover_netmask= fover_netmask
You can use the fover_nfy_prefix to change the location of the remote script that is called and/or add additional parameters.
Examples for fover_nfy_prefix values:
/path/to/script.php?, /path/to/script.php?username=user&password=pass&.
Notes:
INSSLR2 runs a cronjob every minute that checks the following:
If any is true, an error message is sent to the grid dashboard. If more than one test fails, a summary message with all errors posts on the grid dashboard.
Each error is sent only once per hour to the grid dashboard. No errors are reported in the first 5 minutes after the appliance start. This prevents false alarms when the other node in the replication has not started.
To use SSL you need both the signed certificate and the private key used to encrypt it. The key and the certificate should be in PEM format and placed in a single file specified by the cert_file property.
Generate Server Certificates
You can generate a server certificate that can be signed by a trusted Certificate Authority (CA) for a fee or create a self-signed certificate.
Follow these steps:
openssl genrsa -out privkey.pem 2048
You can also generate a pass protected key using the following command. However, if you create a pass protected key, you need to remove the password before using it in INSSLR2. INSSLR2 requires a passwordless key.
openssl genrsa -des3 -out privkey.pem 2048
Execute the following:
openssl req -new -key privkey.pem -out server.csr
After you send the .csr file to your trusted certificate authority, it will return a signed certificate ( .crt file) which you can use.
Execute the following:
openssl req -new -x509 -key privkey.pem -out server.crt -days 1095
Using Server Certificates
You can now place the certificate and key in a file and use it in INSSLR2 by executing the following command:
cat privkey.pem server.crt > server.pem
If your key is password protected, you can remove the password by executing the following:
openssl rsa -in key_with_pass.pem -out privkey.pem
Using Existing apache+mod_ssl Server Certificates
INSSLR2 allows you to use an existing certificate that you use in Apache. Verify the key is not password-protected using the above steps, then place the private certificate and key in a single file.
For example:
If you are using a chained certificate, you should also include the intermediate certificate provided by the issuer. Place the private key, certificate and intermediate certificate in a single file in that order.
For example:
Important! The server signing key is your Web site's proof of identity. It is also vulnerable since it is not password-encrypted to allow the appliance to read it without your assistance.
When installing it on the data volume, take measures to protect the key file. Do not use the same data volume for other purposes and do not make it visible to a Web server. For example, to host Web-accessible data, such as HTML pages and scripts.
The following example outlines how to create your own Certificate Authority and use it to sign your own certificates using OpenSSL. This was tested using OpenSSL 0.9.8b, the same version as is installed in INSSLR2.
Create a Certificate Authority
If you already have your own Certificate Authority used to create self-signed server certificate, you can skip this step and use that Certificate Authority. When creating the instruments of the trusted authority for your application, it is important that the environment be secure.
Important! The private key for certificate authority is the basis of trust for the application. Do not misplace it or provide it to other parties.
Follow these steps:
openssl genrsa -des3 -out CA/private/CA_key.pem 2048
openssl req -new -key CA/private/CA_key.pem -x509 -days 365 -out CA/CA_cert.pem
Create Client Certificates Signed by the Certificate Authority
You can create client certificates that are signed by a Certificate Authority.
Follow these steps:
openssl genrsa -out clientA_privkey.pem 2048
To create a password protected key, use the -des3 switch
openssl req -new -key clientA_privkey.pem -out clientA_request.csr
openssl x509 -req -days 365 -in clientA_request.csr -CA CA/CA_cert.pem -CAkey CA/private/CA_key.pem -CAcreateserial -out clientA.cer
Notes:
For example:
openssl genrsa -out clientB_privkey.pem 2048
openssl req -new -key clientB_privkey.pem -out clientB_request.csr
openssl x509 -req -days 365 -in clientB_request.csr -CA CA/CA_cert.pem -CAkey CA/private/CA_key.pem -CAserial CA/CA_cert.srl -out clientB.cer
cat clientA_privkey.pem clientA.cer > clientA.pem
openssl pkcs12 -export -in clientA.cer -inkey clientA_privkey.pem -out clientA.p12
Create the CA List Files Used by INSSLR2
Revoke Client Certificates Signed by the CA
To revoke a client certificate issued by the CA, use the following command:
openssl ca -config openssl.conf -revoke clientB.cer -crl_reason keyCompromise
Where an example openssl.conf is shown below and the crl_reason parameter is one of: unspecified, keyCompromise, CACompromise, affiliationChanged, superseded, cessationOfOperation, certificateHold or removeFromCRL. The matching of reason is case insensitive.
To re-generate the certificate revocation list (CRL):
openssl ca -config openssl.conf -gencrl -out CA/crl.pem
In this example, crl.pem is the file that should be provided to INSSLR2 as the cert_revocation_list property.
An sample config file used for the above examples is:
####################################################################
[ ca ]
default_ca = CA_default # The default ca section
####################################################################
[ CA_default ]
dir = ./CA # Where everything is kept
certs = $dir/certs # Where the issued certs are kept
crl_dir = $dir/crl # Where the issued crl are kept
database = $dir/index.txt # database index file.
#unique_subject = no # Set to 'no' to allow creation of
# several ctificates with same subject.
new_certs_dir = $dir/newcerts # default place for new certs.
certificate = $dir/cacert.pem # The CA certificate
serial = $dir/serial # The current serial number
crlnumber = $dir/crlnumber # the current crl number
# must be commented out to leave a V1 CRL
crl = $dir/crl.pem # The current CRL
private_key = $dir/private/cakey.pem# The private key
RANDFILE = $dir/private/.rand # private random number file
default_days = 365 # how long to certify for
default_crl_days= 30 # how long before next CRL
default_md = sha1 # which md to use.
preserve = no # keep passed DN ordering
policy = policy_anything
[ policy_anything ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
Create the Certificate Authority List Files Used by INSSLR2
You can create certificate authority list files that are used by INSSLR2.
To create the file identified by the ca_list_client property:
cat CA/private/CA_key.pem CA/CA_cert.pem > ca_list_client.pem
If desired, the INSSLR2 server certificate, such as e.g. server.pem, can also be created in the same manner as the client certificates and lsigned by the created certificate authority. Do not use a password for this certificate.
Tools=>Options=>View Certificates=>Your Certificates=>Import. Point the browser at the IP address of INSSLR2.
openssl s_client -host IP-address -port 443 -showcerts -ssl3 -cert clientA.cer -key clientA_privkey.pem -state
Client Certificate Headers
If a client connects to INSSLR2 using HTTPS and presents a client certificate, INSSLR2 adds the following headers to the request returned to the backend server:
It is the responsibility of the application to use or not use these headers. INSSLR2 just passes this information without verifying it, except for signature and encryption correctness.
Web Applications
To provide https access to your application, connect the http terminal directly to the WEB appliance.

For a scalable web application hook the http terminal to a HALB appliance.

The configuration examples list only properties set to non-default values.
|
Name |
Type |
Description |
|
I7_accept |
http/https/both |
Specifies which l7 protocol is used. If https or both is specified, the key volume should contain the ssl certificate as specified by the cert_file property. |
Web Application with Additional Services
If you have more services than just http in your application, you can use INSSLR2 to pass http traffic to its http terminal and use the aux terminal for other services.

|
Name |
Type |
Description |
|
I7_accept |
http/https/both |
Specifies which l7 protocol is used. If https or both is specified, the key volume should contain the ssl certificate as specified by the cert_file property. |
|
I3_accept_proto |
tcp |
Redirect tcp ports 25,110,143 to aux terminal. |
|
I3_accept_port |
25,110,143 |
Redirect tcp ports 25,110,143 to aux terminal. |
Web Applications with Multiple Additional Services
If you have multiple TCP/UDP services and HTTP, you can use INSSLR2 to pass HTTP traffic to its HTTP terminal and use the aux to feed the remaining traffic to PS8. PS8 then feeds the desired traffic to the backend servers.

|
Name |
Type |
Description |
|
I7_accept |
http/https/both |
Specifies which l7 protocol is used. If https or both is specified, the key volume should contain the ssl certificate as specified by the cert_file property. |
|
I3_accept_proto |
all |
Redirect to aux terminal all IP traffic, except icmp, that is not passed to the http terminal. |
Redundant Web Applications
To provide a redundant web application, copy the application and use INSSLR2 to provide failover capabilities for the external IP address.
Note: If two INSSLR2 appliances in the same application are configured to run in redundant mode, a warning message displays when you configure the same IP address on two different interfaces. Please ignore that error.
Backup Web Application
If you need a backup application that notifies users for the downtime, you can use INSSLR2 to build a backup application that requires minimum resources.
Appliances in use:
INSSLR2 on Primary Application
|
Property Name |
Value |
Notes |
|
fover_mode |
asymmetric |
Run in asymmetric mode to use the backup application only when the primary is down. |
|
fover_remote_ip |
192.168.100.2 |
Remote IP address used for communication between INSSLR2 appliances in the two applications. |
INSSLR2 on Backup Application
|
Property Name |
Value |
Notes |
|
fover_mode |
asymmetric |
Run in asymmetric mode to use the backup application only when the primary is down. |
|
fover_remote_ip |
192.168.100.2 |
Remote IP address used for communication between INSSLR2 appliances in the two applications. |
Note: The fover_local_ip and fover netmask properties are attributes of the interface connected to the fover terminal and can be configured on the Interface tab of the Application Configuration Editor.
Redundant Web Application in a Single Application
To run your application in redundant mode without creating a new application, you can double the appliances and run them in redundant mode. Since this involves using at least two web servers and two database appliances in normal mode, they are all used which provide scalability. However, each of them can serve the application alone in case the other appliance fails.
If you need additional scalability, you can add additional web and database appliances. In this example half of the appliances (in1, sw1, web1, db1) are running in one failover group and the remaining (in2, sw2, web2, db2) are in another failover group to allow the application can survive a server crash. This application provides redundancy at a very low cost as all the appliances (except for one INSSLR2 and one HALB appliance which require very low resources) are in active state and no resources are spent for a backup application that runs only when the primary fails.

in1
|
Property Name |
Value |
Notes |
|
fover_mode |
symmetric |
Run in symmetric mode |
|
fover_remote_ip |
192.168.100.2 |
Remote IP address used for communication between the INSSLR2 appliances in the two applications. |
in2
|
Property Name |
Value |
Notes |
|
fover_mode |
symmetric |
Run in symmetric mode |
|
fover_remote_ip |
192.168.100.1 |
Remote IP address used for communication between the INSSLR2 appliances in the two applications. |
db1
|
Property Name |
Value |
Notes |
|
auto_create |
1 |
Create the database, if the volumes are empty. |
|
server_id |
1 |
Master server 1. This should be different on the remote application |
|
rpl_mode |
master_and_slave |
Master and slave |
db2
|
Property Name |
Value |
Notes |
|
auto_create |
1 |
Create the database, if the volumes are empty. |
|
server_id |
1 |
Master server 1. This should be different on the remote application |
|
rpl_mode |
master_and_slave |
Master and slave |
Redundant Web application wth Two Identical Applications
You can run two identical applications on the same grid, but on separate servers or on different grids if the IP address is accessible from both grids. This allows the failure of a server to only affect one of the applications.
The example below shows an application that uses a database appliance which is also running in redundant mode. If one application fails, the other application can take over without data loss.

Appliances in use:
The client requests arrive on the insslr gateway. The gateway forwards the requests to the web_lb load balancer, which directs the request to one of the web servers, web1 or web2.
The web servers access the db database. The db appliance connects to the remote application. In order to replicate the database, the remote application is an identical copy with the only difference being the server_id of db and the network setup.
The remote application connects to the db appliance using the repl_in gateway which is configured to allow connection only from the repl_out gateway of the remote application. The db appliances in the two applications are running in master-master setup to ensure they always have identical data.
Example Property Configuration
Properties that are not listed should be left to their default values. Web access to db is available using admin gateway on port 8080.
insslr
|
Property Name |
Value |
Notes |
|
fover_mode |
symmetric |
Run in symmetric mode. |
|
fover_remote_ip |
192.168.100.1 |
Remote IP address to be used for communication between INSSLR2 appliances in the two applications. Change this to 192.168.100.1 on the remote application. |
db
|
Property Name |
Value |
Notes |
|
auto_create |
1 |
Create the database, if the volumes are empty. |
|
error_log_filename |
db error |
Name of the error log file that is stored on the logs data volume. |
|
error_log_level |
error |
Error logging level |
|
server_id |
1 |
Master server 1. This should be different on the second application |
|
rpl_mode |
master_and_slave |
Master and slave |
Important! Only one of the applications is active at any time, the other one is running just for failover and is used when the active application fails.
Notes:
INSSLR2 uses the following thrd party open source packages in addition to the third party open source packages used by its base class LUX6 .
|
Software |
Version |
Modified |
License |
|
PyXML |
0.8.4-19 |
No |
|
|
heartbeat |
3.0.4-1 |
No |
|
|
heartbeat-libs |
3.0.4-1 |
No |
|
|
iptables |
1.4.7-5.1.el6_2 |
No |
|
|
libgcrypt |
1.4.5-9.el6_2.2 |
No |
|
|
libgpg-error |
1.7-4 |
No |
|
|
lighttpd |
1.4.32-1 |
No |
|
|
nginx |
1.4.2-1 |
No |
|
|
sudo |
1.7.4p5-13.el6_3 |
No |
|
|
telnet |
0.17-47 |
No |
|
Copyright © 2013 CA Technologies.
All rights reserved.
|
|