Jamie Hannaford | 186d4e2 | 2014-10-31 12:26:11 +0100 | [diff] [blame] | 1 | /* |
Jamie Hannaford | b2007ee | 2014-11-03 16:24:43 +0100 | [diff] [blame] | 2 | Package lbs provides information and interaction with the Load Balancer API |
| 3 | resource for the Rackspace Cloud Load Balancer service. |
| 4 | |
Jamie Hannaford | 186d4e2 | 2014-10-31 12:26:11 +0100 | [diff] [blame] | 5 | A load balancer is a logical device which belongs to a cloud account. It is |
| 6 | used to distribute workloads between multiple back-end systems or services, |
Jamie Hannaford | b2007ee | 2014-11-03 16:24:43 +0100 | [diff] [blame] | 7 | based on the criteria defined as part of its configuration. This configuration |
| 8 | is defined using the Create operation, and can be updated with Update. |
| 9 | |
| 10 | To conserve IPv4 address space, it is highly recommended that you share Virtual |
| 11 | IPs between load balancers. If you have at least one load balancer, you may |
| 12 | create subsequent ones that share a single virtual IPv4 and/or a single IPv6 by |
| 13 | passing in a virtual IP ID to the Update operation (instead of a type). This |
Jamie Hannaford | dfdf0a2 | 2014-11-12 11:06:45 +0100 | [diff] [blame] | 14 | feature is also highly desirable if you wish to load balance both an insecure |
Jamie Hannaford | b2007ee | 2014-11-03 16:24:43 +0100 | [diff] [blame] | 15 | and secure protocol using one IP or DNS name. In order to share a virtual IP, |
| 16 | each Load Balancer must utilize a unique port. |
| 17 | |
| 18 | All load balancers have a Status attribute that shows the current configuration |
| 19 | status of the device. This status is immutable by the caller and is updated |
| 20 | automatically based on state changes within the service. When a load balancer |
| 21 | is first created, it is placed into a BUILD state while the configuration is |
| 22 | being generated and applied based on the request. Once the configuration is |
| 23 | applied and finalized, it is in an ACTIVE status. In the event of a |
| 24 | configuration change or update, the status of the load balancer changes to |
Jamie Hannaford | dfdf0a2 | 2014-11-12 11:06:45 +0100 | [diff] [blame] | 25 | PENDING_UPDATE to signify configuration changes are in progress but have not yet |
Jamie Hannaford | b2007ee | 2014-11-03 16:24:43 +0100 | [diff] [blame] | 26 | been finalized. Load balancers in a SUSPENDED status are configured to reject |
Jamie Hannaford | dfdf0a2 | 2014-11-12 11:06:45 +0100 | [diff] [blame] | 27 | traffic and do not forward requests to back-end nodes. |
Jamie Hannaford | b2007ee | 2014-11-03 16:24:43 +0100 | [diff] [blame] | 28 | |
Jamie Hannaford | dfdf0a2 | 2014-11-12 11:06:45 +0100 | [diff] [blame] | 29 | An HTTP load balancer has the X-Forwarded-For (XFF) HTTP header set by default. |
Jamie Hannaford | b2007ee | 2014-11-03 16:24:43 +0100 | [diff] [blame] | 30 | This header contains the originating IP address of a client connecting to a web |
| 31 | server through an HTTP proxy or load balancer, which many web applications are |
| 32 | already designed to use when determining the source address for a request. |
| 33 | |
| 34 | It also includes the X-Forwarded-Proto (XFP) HTTP header, which has been added |
| 35 | for identifying the originating protocol of an HTTP request as "http" or |
Jamie Hannaford | dfdf0a2 | 2014-11-12 11:06:45 +0100 | [diff] [blame] | 36 | "https" depending on which protocol the client requested. This is useful when |
Jamie Hannaford | b2007ee | 2014-11-03 16:24:43 +0100 | [diff] [blame] | 37 | using SSL termination. |
| 38 | |
| 39 | Finally, it also includes the X-Forwarded-Port HTTP header, which has been |
| 40 | added for being able to generate secure URLs containing the specified port. |
Jamie Hannaford | dfdf0a2 | 2014-11-12 11:06:45 +0100 | [diff] [blame] | 41 | This header, along with the X-Forwarded-For header, provides the needed |
Jamie Hannaford | b2007ee | 2014-11-03 16:24:43 +0100 | [diff] [blame] | 42 | information to the underlying application servers. |
Jamie Hannaford | 186d4e2 | 2014-10-31 12:26:11 +0100 | [diff] [blame] | 43 | */ |
Jamie Hannaford | fba65af | 2014-11-03 10:32:37 +0100 | [diff] [blame] | 44 | package lbs |