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

[[create-http-1]][[GSRFM00025]][[create-http]]

create-http
-----------

sets HTTP parameters for a protocol

[[sthref227]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] create-http [--help]
--default-virtual-server virtual-server 
[--request-timeout-seconds timeout] 
[--timeout-seconds timeout] 
[--max-connection max-keepalive] 
[--dns-lookup-enabled={false|true}] 
[--servername server-name]
[--target target]
protocol-name
----

[[sthref228]]

Description

The `create-http` subcommand creates a set of HTTP parameters for a
protocol, which in turn configures one or more network listeners. This
subcommand is supported in remote mode only.

[[sthref229]]

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.
`--default-virtual-server`::
  The ID attribute of the default virtual server for the associated
  network listeners.
`--request-timeout-seconds`::
  The time in seconds at which the request times out. If you do not set
  this option, the request times out in 30 seconds.
`--timeout-seconds`::
  The maximum time in seconds for which a keep alive connection is kept
  open. A value of `0` or less means keep alive connections are kept
  open indefinitely. The default is `30`.
`--max-connection`::
  The maximum number of HTTP requests that can be pipelined until the
  connection is closed by the server. Set this property to `1` to
  disable HTTP/1.0 keep-alive, as well as HTTP/1.1 keep-alive and
  pipelining. The default is `256`.
`--dns-lookup-enabled`::
  If set to `true`, looks up the DNS entry for the client. The default
  is `false`.
`--servername`::
  Tells the server what to put in the host name section of any URLs it
  sends to the client. This affects URLs the server automatically
  generates; it doesn't affect the URLs for directories and files stored
  in the server. This name should be the alias name if your server uses
  an alias. If a colon and port number are appended, that port will be
  used in URLs that the server sends to the client.
`--target`::
  Creates the set of HTTP parameters only on the specified target. Valid
  values are as follows: +
  `server`;;
    Creates the set of HTTP parameters on the default server instance.
    This is the default value.
  configuration-name;;
    Creates the set of HTTP parameters in the specified configuration.
  cluster-name;;
    Creates the set of HTTP parameters on all server instances in the
    specified cluster.
  standalone-instance-name;;
    Creates the set of HTTP parameters on the specified standalone
    server instance.

[[sthref230]]

Operands

protocol-name::
  The name of the protocol to which this HTTP parameter set applies.

[[sthref231]]

Examples

[[GSRFM476]][[sthref232]]

Example 1   Using the `create-http` Subcommand

The following command creates an HTTP parameter set for the protocol
named `http-1`:

[source,oac_no_warn]
----
asadmin> create-http --timeout-seconds 60 --default-virtual-server server http-1
Command create-http executed successfully.
----

[[sthref233]]

Exit Status

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

[[sthref234]]

See Also

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

link:create-network-listener.html#create-network-listener-1[`create-network-listener`(1)],
link:create-protocol.html#create-protocol-1[`create-protocol`(1)],
link:create-virtual-server.html#create-virtual-server-1[`create-virtual-server`(1)],
link:delete-http.html#delete-http-1[`delete-http`(1)]


