type=page
status=published
title=create-http-lb
next=create-http-lb-config.html
prev=create-http-health-checker.html
~~~~~~

= create-http-lb

[[create-http-lb-1]][[GSRFM00027]][[create-http-lb]]

== create-http-lb

Creates a load balancer

[[sthref243]]

=== Synopsis

[source]
----
asadmin [asadmin-options] create-http-lb [--help]
--devicehost device_host_or_IP_address --deviceport device_port
[--sslproxyhost proxy_host]
[--sslproxyport proxy_port] [--target target] [--lbpolicy lbpolicy] [--lbpolicymodule lb_policy_module] [--healthcheckerurl url]
[--healthcheckerinterval 10] [--healthcheckertimeout 10]
[--lbenableallinstances=true] [--lbenableallapplications=true] [--lbweight instance=weight[:instance=weight]*] [--responsetimeout 60] [--httpsrouting=false] [--reloadinterval60][--monitor=false][--routecookie=true]
[--property (name=value)[:name=value]*
] load_balancer_name
----

[[sthref244]]

=== Description

Use the `create-http-lb` subcommand to create a load balancer, including
the load balancer configuration, target reference, and health checker. A
load balancer is a representation of the actual load balancer device,
defined by its device host and port information. Once you've created the
load balancer, you can automatically apply changes made to the load
balancer configuration without running `export-http-lb-config` and
manually copying the generated load balancer configuration file to the
web server instance.


[NOTE]
====
This subcommand is only applicable to {productName}. This
subcommand is not applicable to {productName}.
====


[[sthref245]]

=== Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.
`--devicehost`::
  The device host or the IP address of the load balancing device. This
  host or IP is where the physical load balancer will reside.
`--deviceport`::
  The port used to communicate with the load balancing device. It must
  be SSL enabled.
`--sslproxyhost`::
  The proxy host used for outbound HTTP.
`--sslproxyport`::
  The proxy port used for outbound HTTP.
`--target`::
  Specifies the target to which the load balancer applies. +
  Valid values are:

  * cluster_name - Specifies that requests for this cluster will be
  handled by the load balancer.
  * stand-alone_instance_name - Specifies that requests for this
  stand-alone instance will be handled by the load balancer.

`--lbpolicy`::
  The policy the load balancer follows to distribute load to the server
  instances in a cluster. Valid values are `round-robin`,
  `weighted-round-robin`, and `user-defined`. If you choose
  `user-defined`, specify a load balancer policy module with the
  `lbpolicymodule` option. If you choose `weighted-round-robin`, assign
  weights to the server instances using the `configure-lb-weight`
  subcommand. The default is `round-robin`.
`--lbpolicymodule`::
  If your target is a cluster and the load balancer policy is
  `user-defined`, use this option to specify the full path and name of
  the shared library of your load balancing policy module. The shared
  library needs to be in a location accessible by the web server.
`--healthcheckerurl`::
  The URL to ping to determine whether the instance is healthy.
`--healthcheckerinterval`::
  The interval in seconds the health checker waits between checks of an
  unhealthy instance to see whether it has become healthy. The default
  value is 10 seconds. A value of 0 disables the health checker.
`--healthcheckertimeout`::
  The interval in seconds the health checker waits to receive a response
  from an instance. If the health checker has not received a response in
  this interval, the instance is considered unhealthy. The default value
  is 10 seconds.
`--lbenableallinstances`::
  Enables all instances in the target cluster for load balancing. If the
  target is a server instance, enables that instance for load balancing.
`--lbenableallapplications`::
  Enables all applications deployed to the target cluster or instance
  for load balancing.
`--lbweight`::
  The name of the instance and the weight you are assigning it. The
  weight must be an integer. The pairs of instances and weights are
  separated by colons. For example `instance1=1:instance2=4` means that
  for every five requests, one goes to instance1 and four go to
  instance2. A weight of 1 is the default.
`--responsetimeout`::
  The time in seconds within which a server instance must return a
  response. If no response is received within the time period, the
  server is considered unhealthy. If set to a positive number, and the
  request is idempotent, the request is retried. If the request is not
  idempotent, an error page is returned. If set to 0 no timeout is used.
  The default is 60.
`--httpsrouting`::
  If set to `true`, HTTPS requests to the load balancer result in HTTPS
  requests to the server instance. If set to `false`, HTTPS requests to
  the load balancer result in HTTP requests to the server instance. The
  default is `false`.
`--reloadinterval`::
  The time, in seconds, that the load balancer takes to check for an
  updated configuration. When detected, the configuration file is
  reloaded. The default value is 60 seconds. A value of 0 disables
  reloading.
`--monitor`::
  If set to `true`, monitoring of the load balancer is switched on. The
  default value is `false`.
`--routecookie`::
  This option is deprecated. The value is always true.
`--property`::
  Optional attribute name/value pairs for configuring the load balancer.

[[sthref246]]

=== Operands

lb_name::
  The name of the new load balancer. This name must not conflict with
  any other load balancers in the domain.

[[sthref247]]

=== Examples

[[GSRFM478]][[sthref248]]

==== Example 1   Creating a Load Balancer

This example creates a load balancer named `mylb`.

[source]
----
asadmin> create-http-lb
--devicehost host1 --deviceport 5555 mylb

Command create-http-lb executed successfully.
----

[[sthref249]]

=== Exit Status

0::
  subcommand executed successfully
1::
  error in executing the subcommand

[[sthref250]]

=== See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:delete-http-lb.html#delete-http-lb-1[`delete-http-lb`(1)],
link:list-http-lbs.html#list-http-lbs-1[`list-http-lbs`(1)],
link:create-http-lb-config.html#create-http-lb-config-1[`create-http-lb-config`(1)]


