type=page
status=published
title=create-virtual-server
next=delete-admin-object.html
prev=create-transport.html
~~~~~~

create-virtual-server
=====================

[[create-virtual-server-1]][[GSRFM00062]][[create-virtual-server]]

create-virtual-server
---------------------

Creates the named virtual server

[[sthref569]]

=== Synopsis

[source]
----
asadmin [asadmin-options] create-virtual-server [--help]
--hosts hosts
[--httplisteners http-listeners]
[--networklisteners network-listeners]
[--defaultwebmodule default-web-module]
[--state={on|off}]
[--logfile log-file]
[--property (name=value)[:name=value]*]
[--target target]
virtual-server-id
----

[[sthref570]]

=== Description

The `create-virtual-server` subcommand creates the named virtual server.
Virtualization in the \{product---name} allows multiple URL domains to
be served by a single HTTP server process that is listening on multiple
host addresses. If the application is available at two virtual servers,
they still share the same physical resource pools.

This subcommand is supported in remote mode only.

[[sthref571]]

=== 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.
`--hosts`::
  A comma-separated (,) list of values allowed in the host request
  header to select the current virtual server. Each virtual server that
  is configured to the same connection group must have a unique host for
  that group.
`--httplisteners`::
  A comma-separated (,) list of HTTP listener IDs. Required only for a
  virtual server that is not the default virtual server. HTTP listeners
  are converted to network listeners. This option is deprecated but
  maintained for backward compatibility. Use `--networklisteners`
  instead. If `--networklisteners` is used, this option is ignored.
`--networklisteners`::
  A comma-separated (,) list of network listener IDs. Required only for
  a virtual server that is not the default virtual server.
`--defaultwebmodule`::
  The standalone web module associated with this virtual server by
  default.
`--state`::
  Determines whether a virtual server is active (`on`) or inactive
  (`off` or disabled). Default is `on`. When inactive, the virtual
  server does not service requests.
`--logfile`::
  Name of the file where log entries for this virtual server are to be
  written. By default, this is the server log. The file and directory in
  which the access log is kept must be writable by the user account
  under which the server runs.
`--property`::
  Optional property name/value pairs for configuring the virtual server.
  The following properties are available:

  `sso-max-inactive-seconds`;;
    Specifies the number of seconds after which a user's single sign-on
    record becomes eligible for purging if no client activity is
    received. Since single sign-on applies across several applications
    on the same virtual server, access to any of the applications keeps
    the single sign-on record active. The default value is 300 seconds
    (5 minutes). Higher values provide longer single sign-on persistence
    for users, but at the expense of more memory use on the server.
  `sso-reap-interval-seconds`;;
    Specifies the number of seconds between purges of expired single
    sign-on records. The default value is 60.
  `setCacheControl`;;
    Specifies a comma-separated list of `Cache-Control` response
    directives. For a list of valid directives, see section 14.9 of the
    document at http://www.ietf.org/rfc/rfc2616.txt
    (`http://www.ietf.org/rfc/rfc2616.txt`).
  `allowLinking`;;
    If the value of this property is `true`, resources that are symbolic
    links will be served for all web applications deployed on this
    virtual server. Individual web applications may override this
    setting by using the property `allowLinking` under the `sun-web-app`
    element in the `sun-web.xml` file:
+
[source,xml]
----
<sun-web-app>
<property name="allowLinking" value="[true|false]"/>
</sun-web-app>
----
+
The default value is `true`.
  `accessLogWriteInterval`;;
    Indicates the number of seconds before the log will be written to
    the disk. The access log is written when the buffer is full or when
    the interval expires. If the value is 0 (zero), then the buffer is
    always written even if it is not full. This means that each time the
    server is accessed, the log message is stored directly to the file.
  `accessLogBufferSize`;;
    Specifies the size, in bytes, of the buffer where access log calls
    are stored.
  `allowRemoteAddress`;;
    This is a comma-separated list of regular expression patterns to
    which the remote client's IP address is compared. If this property
    is specified, the remote address must match for this request to be
    accepted. If this property is not specified, all requests will be
    accepted unless the remote address matches a `denyRemoteAddress`
    pattern. The default value for this property is null.
  `denyRemoteAddress`;;
    This is a comma-separated list of regular expression patterns to
    which the remote client's IP address is compared. If this property
    is specified, the remote address must not match for this request to
    be accepted. If this property is not specified, request acceptance
    is governed solely by the `allowRemoteAddress` property. The default
    value for this property is null.
  `allowRemoteHost`;;
    This is a comma-separated list of regular expression patterns to
    which the remote client's host name (as returned by
    `java.net.Socket.getInetAddress().getHostName()`) is compared. If
    this property is specified, the remote host name must match for this
    request to be accepted. If this property is not specified, all
    requests will be accepted unless the remote host name matches a
    denyRemoteHost pattern. The default value for this property is null.
  `denyRemoteHost`;;
    This is a comma-separated list of regular expression patterns to
    which the remote client's host name (as returned by
    `java.net.Socket.getInetAddress().getHostName()`) is compared. If
    this property is specified, the remote host name must not match for
    this request to be accepted. If this property is not specified,
    request acceptance is governed solely by the `allowRemoteHost`
    property. The default value for this property is null.
  `authRealm`;;
    Specifies the `name` attribute of an `auth-realm`, which overrides
    the server instance's default realm for standalone web applications
    deployed to this virtual server. A realm defined in a standalone web
    application's `web.xml` file overrides the virtual server's realm.
  `securePagesWithPragma`;;
    Set this property to `false` to ensure that for all web applications
    on this virtual server file downloads using SSL work properly in
    Internet Explorer. +
    You can set this property for a specific web application. For
    details, see "link:../application-deployment-guide/dd-elements.html#GSDPG00161[glassfish-web-app]" in GlassFish
    Server Open Source Edition Application Deployment Guide.
  `contextXmlDefault`;;
    Specifies the location, relative to domain-dir, of the `context.xml`
    file for this virtual server, if one is used. For more information
    about the `context.xml` file, see "link:../application-development-guide/webapps.html#GSDVG00416[Using a
    context.xml File]" in GlassFish Server Open Source Edition
    Application Development Guide and The Context Container
    (`http://tomcat.apache.org/tomcat-5.5-doc/config/context.html`).
    Context parameters, environment entries, and resource definitions in
    `context.xml` are supported in the \{product---name}.
  `alternatedocroot_n`;;
    Specifies an alternate document root (docroot), where n is a
    positive integer that allows specification of more than one.
    Alternate docroots allow web applications to serve requests for
    certain resources from outside their own docroot, based on whether
    those requests match one (or more) of the URI patterns of the web
    application's alternate docroots. +
    If a request matches an alternate docroot's URI pattern, it is
    mapped to the alternate docroot by appending the request URI (minus
    the web application's context root) to the alternate docroot's
    physical location (directory). If a request matches multiple URI
    patterns, the alternate docroot is determined according to the
    following precedence order:
+
--
    * Exact match
    * Longest path match
    * Extension match
--
+
For example, the following properties specify three alternate
    docroots. The URI pattern of the first alternate docroot uses an
    exact match, whereas the URI patterns of the second and third
    alternate docroots use extension and longest path prefix matches, respectively.
+
[source,xml]
----
<property name="alternatedocroot_1"
   value="from=/my.jpg dir=/srv/images/jpg"/>
<property name="alternatedocroot_2"
   value="from=*.jpg dir=/srv/images/jpg"/>
<property name="alternatedocroot_3"
   value="from=/jpg/* dir=/src/images"/>
----
+
The `value` of each alternate docroot has two components: The first
    component, `from`, specifies the alternate docroot's URI pattern,
    and the second component, `dir`, specifies the alternate docroot's
    physical location (directory). Spaces are allowed in the `dir`
    component. +
    You can set this property for a specific web application. For
    details, see "link:../application-deployment-guide/dd-elements.html#GSDPG00161[glassfish-web-app]" in GlassFish
    Server Open Source Edition Application Deployment Guide.
  `send-error_n`;;
    Specifies custom error page mappings for the virtual server, which
    are inherited by all web applications deployed on the virtual
    server. A web application can override these custom error page
    mappings in its `web.xml` deployment descriptor. The value of each
    `send-error_n` property has three components, which may be specified
    in any order:
+
--
    * The first component, `code`, specifies the three-digit HTTP response
    status code for which the custom error page should be returned in
    the response.
    * The second component, `path`, specifies the absolute or relative
    file system path of the custom error page. A relative file system
    path is interpreted as relative to the domain-dir`/config`
    directory.
    * The third component, `reason`, is optional and specifies the text of
    the reason string (such as `Unauthorized` or `Forbidden`) to be
    returned.
--
For example:
+
[source,xml]
----
<property name="send-error_1"
   value="code=401 path=/myhost/401.html reason=MY-401-REASON"/>
----
    This example property definition causes the contents of
    `/myhost/401.html` to be returned with 401 responses, along with
    this response line:
+
[source]
----
HTTP/1.1 401 MY-401-REASON
----

  ``redirect_``n;;
    Specifies that a request for an old URL is treated as a request for
    a new URL. These properties are inherited by all web applications
    deployed on the virtual server. The value of each `redirect_n`
    property has two components, which may be specified in any order:
+
--
    * The first component, `from`, specifies the prefix of the requested URI to match.
    * The second component, `url-prefix`, specifies the new URL prefix to
      return to the client. The from prefix is simply replaced by this URL prefix.
--
+
For example:
+
[source,xml]
----
<property name="redirect_1" value="from=/dummy url-prefix=http://etude"/>
----

  ``valve_``n;;
    Specifies a fully qualified class name of a custom valve, where n is
    a positive integer that allows specification of more than one.
    The valve class must implement the `org.apache.catalina.Valve` interface
    from Tomcat or previous \{product---name} releases, or the
    `org.glassfish.web.valve.GlassFishValve` interface from the current
    \{product---name} release. For example:
+
[source,xml]
----
<property name="valve_1" value="org.glassfish.extension.Valve"/>
----
+
You can set this property for a specific web application. For
    details, see "link:../application-deployment-guide/dd-elements.html#GSDPG00161[glassfish-web-app]" in GlassFish
    Server Open Source Edition Application Deployment Guide.
  ``listener_n``;;
    Specifies a fully qualified class name of a custom Catalina
    listener, where n is a positive integer that allows specification of
    more than one. The listener class must implement the
    `org.apache.catalina.ContainerListener` or
    `org.apache.catalina.LifecycleListener` interface. For example:
+
[source,xml]
----
<property name="listener_1"
   value="org.glassfish.extension.MyLifecycleListener"/>
----
+
You can set this property for a specific web application. For
    details, see "link:../application-deployment-guide/dd-elements.html#GSDPG00161[glassfish-web-app]" in GlassFish
    Server Open Source Edition Application Deployment Guide.
  `docroot`;;
    Absolute path to root document directory for server. Deprecated.
    Replaced with a `virtual-server` attribute, `docroot`, that is
    accessible using the `get`, `set`, and `list` subcommands.
  `accesslog`;;
    Absolute path to server access logs. Deprecated. Replaced with a
    `virtual-server` attribute , `access-log`, that is accessible using
    the `get`, `set`, and `list` subcommands.
  `accessLoggingEnabled`;;
    If `true`, access logging is enabled for this virtual server.
    Deprecated. Replaced with a `virtual-server` attribute,
    `access-logging-enabled`, that is accessible using the `get`, `set`,
    and `list` subcommands.
  `sso-enabled`;;
    If `true`, single sign-on is enabled for web applications on this
    virtual server that are configured for the same realm. Deprecated.
    Replaced with a `virtual-server` attribute, `sso-enabled`, that is
    accessible using the `get`, `set`, and `list` subcommands.
  `ssoCookieSecure`;;
    Sets the `Secure` attribute of any `JSESSIONIDSSO` cookies
    associated with the web applications deployed to this virtual
    server. Deprecated. Replaced with a `virtual-server` attribute,
    `sso-cookie-secure`, that is accessible using the `get`, `set`, and
    `list` subcommands.
  `errorReportValve`;;
    Specifies a fully qualified class name of a custom valve that
    produces default error pages for applications on this virtual
    server. Specify an empty string to disable the default error page
    mechanism for this virtual server.

`--target`::
  Creates the virtual server only on the specified target. Valid values
  are as follows:

  `server`;;
    Creates the virtual server on the default server instance.
    This is the default value.
  configuration-name;;
    Creates the virtual server in the specified configuration.
  cluster-name;;
    Creates the virtual server on all server instances in the specified cluster.
  standalone-instance-name;;
    Creates the virtual server on the specified standalone server instance.

[[sthref572]]

=== Operands

virtual-server-id::
  Identifies the unique ID for the virtual server to be created. This ID
  cannot begin with a number.

[[sthref573]]

=== Examples

[[GSRFM529]][[sthref574]]

==== Example 1   Creating a Virtual Server

The following command creates a virtual server named `sampleServer`:

[source]
----
asadmin> create-virtual-server --hosts pigeon,localhost
--property authRealm=ldap sampleServer
Command create-virtual-server executed successfully.
----

[[sthref575]]

=== Exit Status

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

[[sthref576]]

=== See Also

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

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

link:get.html#get-1[`get`(1)], link:list.html#list-1[`list`(1)],
link:set.html#set-1[`set`(1)]


