You need to specify at least one domain name to set up a load balancer instance in HTTP(S) (Layer 7) mode. The load balancer only processes requests to the configured domain names. HTTP/HTTPS requests with no domain name specified are dropped and the connection is closed.
SSL termination & forwarding rules
SSL termination relieves application servers of the burden of encrypting and decrypting traffic sent via SSL. A load balancer encrypts and decrypts traffic Instead.
Forwarding rules set how the traffic is forwarded from a load balancer to upstream servers. Each forwarding rule maps scheme, port and request path on a load balancer to scheme, port and request path on upstream servers. At least one forwarding rule is required.
Each rule that is using the HTTPS scheme on a load balancer adds €5.00 per month for the SSL Termination service.
The "Redirect HTTP to HTTPS" option is available when you have only one HTTPS (443) incoming rule.
Session persistence ("sticky" sessions)
Session persistence is a mechanism to route requests from the same client to the same upstream server. It is enabled by default for all domain names.
A load balancer instance will route requests only to healthy upstream servers. Load balancer expects HTTP 2xx/3xx response from a functioning upstream server at HTTP://[upstream-ip][/path]
Each upstream server is health checked every 5 seconds, approximately.
Additional HTTP headers
To identifying the IP address of a client, the original host and the port requested by a client, a load balancer injects the following HTTP header fields into the HTTP request sent to an upstream server:
|X-Forwarded-For||The originating IP address of a client connecting to a web server through a load balancer. E.g., 220.127.116.11|
|X-Forwarded-Host||The domain name of the forwarded server. E.g., servers.com|
|X-Forwarded-Port||The port of the forwarded server. E.g., 443|
|X-Forwarded-Protocol||The protocol of the forwarded server. E.g., https|
|X-SCLB-NodeID||Load balancer node ID. E.g., s1599|
|X-SCLB-RequestID||Nginx Request ID. E.g., bd438656d26a07981169ad4cbf56c0d2|
Where SCLB stands for "Servers Com Load Balancer".
GeoIP headers injection
GeoIP service matches client's IP address against GeoIP database, and injects X-Geo header fields into the HTTP request sent to an upstream server.
User location can be used for content personalization, fraud detection, ad targeting, traffic analysis, compliance, etc. We use MaxMind GeoIP® databases to map client's IP to location. Basing on the client IP address, load balancer injects the following GeoIP header fields into the HTTP request sent to an upstream server:
|X-SCLB-GEO-CITY-NAME||City name, example: "Amsterdam", "Washington"|
|X-SCLB-GEO-POSTAL-CODE||Postal code, example: 190000|
|X-SCLB-GEO-STATE-NAME||USA state name, example: "Texas"|
|X-SCLB-GEO-STATE-CODE||USA state code, example: "TX"|
|X-SCLB-GEO-AS-NUM||Autonomous system number|
|X-SCLB-GEO-AS-ORG||Autonomous system Organization|
|X-SCLB-GEO-COUNTRY-CODE||2 letter country code, example: "NL", "US"|
|X-SCLB-GEO-COUNTRY-NAME||Country name, example: "Netherlands", "United States"|