A virtual host (vhost) is a separate hosting environment within Wowza Streaming Engine™ (WSE). WSE can serve multiple users from separate virtual hosting environments, and each vhost has its own set of configuration files, application folders, and log files.
A vhost's settings are stored in the VHost.xml configuration file located in the [install-dir]/conf directory. A separate VHosts.xml file in the same directory lists every virtual hosting environment on the server; include a name, configuration path, and connection limit for each vhost you configure.
For recommended values based on your server resources, see Tune Wowza Streaming Engine for optimal performance.
The properties described below apply to the latest WSE version. Some properties may not apply to earlier versions.
Contents
VHost element
The <VHost> element contains the children listed in the table below.
| Element | Type | Description |
|---|---|---|
<Description> |
String | A text description of the virtual host environment. |
<HostPortList> |
Container | IP addresses and TCP ports WSE binds to for incoming and outgoing streaming connections. WSE can be configured for any number of TCP ports. Contains individual <HostPort> elements. See the HostPort elements table for available child elements. |
<HTTPStreamerAdapters> |
Container | HTTP streamers enabled for <HostPort> entries. Every HTTP streamer listed here can be streamed using the <HostPort> IP address and port combination. Remove an entry to disable that HTTP streaming protocol. See the HTTPStreamerAdapters elements table for available child elements. |
<HandlerThreadPool> |
Container | Handler thread pool configuration. The handler thread pool processes incoming messages. |
<HandlerThreadPool>/<PoolSize> |
Integer | Maximum number of virtual host-level threads in the handler thread pool. Set to 0 to use the server-level handler thread pool for this virtual host. |
<TransportThreadPool> |
Container | Transport thread pool configuration. The transport thread pool reads and writes data from the transport sockets. |
<TransportThreadPool>/<PoolSize> |
Integer | Maximum number of virtual host-level threads in the transport thread pool. Set to 0 to use the server-level transport thread pool for this virtual host. |
<IdleWorkers> |
Container | Idle event configuration. |
<IdleWorkers>/<WorkerCount> |
Integer | Number of threads used to generate idle events. |
<IdleWorkers>/<CheckFrequency> |
Integer | Milliseconds between system checks that monitor whether a client has been idle for <Client>/<IdleFrequency>. This value should be one-fourth or less of the <Client>/<IdleFrequency> value. |
<IdleWorkers>/<MinimumWaitTime> |
Integer | Interval, in seconds, that the server waits. |
<NetConnections> |
Container | Tuning for connections made between WSE servers, for example when using the live stream repeater. See the NetConnections elements table for available child elements. |
<MediaCasters> |
Container | Source connections made with MediaCasters. See the MediaCasters elements table for available child elements. |
<LiveStreamTranscoders> |
Container | Concurrent transcoding of live source streams. |
<LiveStreamTranscoders>/<MaximumConcurrentTranscodes> |
Integer | Maximum number of live source streams transcoded at any one time. Useful if your license allows unlimited concurrent transcodes but you want to cap them because of CPU or hardware limits, or for billing purposes. Set to 0 to allow an unlimited number of concurrent transcodes. |
<HTTPTunnel> |
Container | Keep-alive timing for tunneled connections. |
<HTTPTunnel>/<KeepAliveTimeout> |
Integer | Keep-alive time, in milliseconds, for RTMPT, RTMPTE, and RTMPS connections. |
<Client> |
Container | Client connection timing. |
<Client>/<ClientTimeout> |
Integer | Milliseconds the server waits before shutting down an unresponsive client connection. |
<Client>/<IdleFrequency> |
Integer | Milliseconds between client idle events. For basic video on demand (VOD) streaming, |
<RTP> |
Container | RTP connection configuration. See the RTP elements table for available child elements. |
<SRTListener> |
Container | Properties used with SRT listener mode to ingest and publish SRT streams. See the SRTListener properties table for available properties. |
<HTTPProvider> |
Container | HTTP provider timing. |
<HTTPProvider>/<KeepAliveTimeout> |
Integer | Milliseconds the TCP session is maintained after a response is sent. |
<HTTPProvider>/<EndConnectionTimeout> |
Integer | Milliseconds the TCP session validation code waits before terminating a session for inactivity. |
<HTTPProvider>/<SlowConnectionBitrate> |
Integer | Bits per second used to estimate how long flushing data from the TCP send buffer takes when determining the <KeepAliveTimeout> time. |
<HTTPProvider>/<IdleFrequency> |
Integer | Milliseconds between TCP idle events. |
<WebSocket> |
Container | WebSocket connection configuration. |
<WebSocket>/<MaximumMessageSize> |
Integer | Maximum size, in bytes, of a single WebSocket message. A larger message terminates the TCP session, which guards against memory run-up. Set to 0 to turn off the check. |
<WebSocket>/<PacketFragmentationSize> |
Integer | Reserved for future use. |
<WebSocket>/<MaskOutgoingMessages> |
Boolean | Whether outgoing messages are masked. Most modern web browsers don't accept masked messages. |
<WebSocket>/<IdleFrequency> |
Integer | Milliseconds between TCP idle events. |
<WebSocket>/<ValidationFrequency> |
Integer | Milliseconds between messages sent from the server to the browser to validate that the TCP session is still active. |
<WebSocket>/<MaximumPendingWriteBytes> |
Integer | Maximum bytes queued to be written. Exceeding this terminates the TCP session, which guards against memory run-up. Set to 0 to turn off the check. |
<WebSocket>/<PingTimeout> |
Integer | Milliseconds the WebSocket waits for a response to a ping request. |
<Application> |
Container | Client connections to applications in this virtual hosting environment. See the Application elements table for available child elements. |
<StartStartupStreams> |
Boolean | Whether streams defined in StartupStreams.xml are instantiated at server startup. Set to false to leave them unstarted. |
<Manager> |
Container | Properties used by WSE Manager. See the Manager elements table for available child elements. |
<Properties> |
Container | A container element for custom virtual host <Property> elements. |
HostPort element
The <HostPortList> element contains one or more <HostPort> children. The <HostPort> element represents a host port used to stream RTMP, RTSP, and HTTP. Host ports can be configured to use SSL or TLS encryption. HTTP provider configuration is done per host port. The <HostPort> element may contain the elements listed in the table below.
| Element | Type | Description |
|---|---|---|
<Name> |
String | A unique name for the host port. |
<Type> |
String | How the host port is used: Streaming or Administration. |
<ProcessorCount> |
Integer | Number of threads allocated to servicing connections. |
<IpAddress> |
String | IP address or domain name WSE listens on for incoming requests. Use the wildcard (*) to listen for incoming connections on all available network interfaces. |
<Port> |
String | Comma-separated list of ports. |
<HTTPIdent2Response> |
String | Utility class for parsing and converting host-port information from commands. Represents a list of host-port pairs. |
<SSLConfig> |
Container | SSL and TLS configuration for this host port. See the SSLConfig elements table for available child elements. |
<SocketConfiguration> |
Container | Detailed configuration for the socket connections this host port definition creates at runtime. Use these settings to tune the performance of the sockets that send data into and out of WSE. See the SocketConfiguration elements table for available child elements. |
<HTTPStreamerAdapterIDs> |
String | Comma-separated list of HTTP streamers this host port includes when processing HTTP requests. Can contain zero or more of the following values:
|
<HTTPProviders> |
Container | HTTP providers this host port includes when processing HTTP requests. See the HTTPProviders elements table for available child elements, and Use HTTP providers with the Wowza Streaming Engine Java API for more information. |
SSLConfig element
The <SSLConfig> element contains the children listed in the table below.
| Element | Type | Description |
|---|---|---|
<KeyStorePath> |
String | Full path to the keystore file. |
<KeyStorePassword> |
String | The keystore password. |
<KeyStoreType> |
String | The keystore type. Defaults to JKS for Sun Java JRE. |
<DomainToKeyStoreMapPath> |
String | A map of domain names to SSL/TLS certificates. |
<SSLProtocol> |
String | The cryptographic protocol. Defaults to TLS (Transport Layer Security). |
<Algorithm> |
String | The encryption algorithm. Defaults to SunX509 for Sun Java JRE. |
<CipherSuites> |
String | Comma-separated list of cipher suites. |
<Protocols> |
String | Comma-separated list of SSL/TLS protocol names. |
<AllowHttp2> |
Boolean | Whether HTTP/2 is allowed. |
SocketConfiguration element
The <HostPort>/<SocketConfiguration> element contains the children listed in the table below.
| Element | Type | Description |
|---|---|---|
<ReuseAddress> |
Boolean | Whether the address of the outgoing data can be reused. |
<ReceiveBufferSize> |
Integer | Size of the memory buffers used when receiving data over the socket connection. Set to 0 to use the operating system defaults. On operating systems that support it, kernel-level TCP auto-tuning may set buffer sizes dynamically for individual connections. |
<ReadBufferSize> |
Integer | Size of the memory buffers used when reading data over the socket connection. On operating systems that support it, kernel-level TCP auto-tuning may set buffer sizes dynamically for individual connections. |
<SendBufferSize> |
Integer | Size of the memory buffers used when sending data over the socket connection. Set to 0 to use the operating system defaults. On operating systems that support it, kernel-level TCP auto-tuning may set buffer sizes dynamically for individual connections. |
<KeepAlive> |
Boolean | Whether a connection remains open when no data is being transferred. (Default: true) |
<TrafficClass> |
Integer | Classification for differentiated service based on the priority of traffic on the network. |
<OobInline> |
Boolean | Whether urgent data received on the socket is received through the socket input stream. Urgent data is discarded when this is disabled. |
<SoLingerTime> |
Integer | Milliseconds a socket waits to finish sending pending data after the close function is called on the socket connection. |
<TcpNoDelay> |
Boolean | Whether nagling is enabled. Nagling combines several small packets into a single, larger packet for more efficient transmission. |
<AcceptorBackLog> |
Integer | Maximum number of TCP connection requests that can be pending before new requests are refused. WSE responds to TCP connection requests as quickly as possible. Don't set this below Note: The default setting of |
HTTPProviders element
The <HTTPProviders>/<HTTPProvider> element contains the children listed in the table below.
| Element | Type | Description |
|---|---|---|
<BaseClass> |
String | Base class of the HTTPProvider class, such as com.wowza.wms.http.HTTPServerInfoXML. |
<RequestFilters> |
String | HTTP request type limiter. To restrict the types of HTTP request your web server processes, configure the server to analyze specific criteria for each incoming request, as specified by files such as clientaccesspolicy.xml and crossdomain.xml. |
<AuthenticationMethod> |
String | Authentication method used to access this HTTP provider: none, basic, digest, block, admin-basic, admin-digest, admin-file-digest, or admin-block. |
HTTPStreamerAdapters element
The <HTTPStreamerAdapters>/<HTTPStreamerAdapter> element contains the children listed in the table below.
| Element | Type | Description |
|---|---|---|
<ID> |
String | Identity of the HTTP streamer. These values represent the HTTP streaming protocols, as well as DVR streaming from origin to edge in a live stream repeater configuration. Accepts one of the following values:
|
<Name> |
String | Name of the HTTP streamer. Accepts the same values as <ID>. |
<Properties> |
Container | A container element for custom HTTP streamer <Property> elements. |
NetConnections element
The <NetConnections> element contains the children listed in the table below.
| Element | Type | Description |
|---|---|---|
<ProcessorCount> |
Integer | Number of threads allocated to connections. |
<IdleFrequency> |
Integer | Milliseconds between server-to-server idle events. A larger value decreases load on the server but increases the delay between the server publishing a stream and the client playing it. Raising it above the default of 250 gives the CPU more room. If you change this value, also set <IdleWorkers>/<CheckFrequency> to a value at least four times smaller. |
<SocketConfiguration> |
Container | Socket connections between servers. |
<SocketConfiguration>/<ReuseAddress> |
Boolean | Whether the address of the incoming RTP datagram can be reused. |
<SocketConfiguration>/<ReceiveBufferSize> |
Integer | Size, in bytes, of the buffer that receives incoming data. Set to 0 to use the operating system defaults. |
<SocketConfiguration>/<ReadBufferSize> |
Integer | Size of the memory buffer that contains read data. |
<SocketConfiguration>/<SendBufferSize> |
Integer | Size of the memory buffer that contains data to be sent. Set to 0 to use the operating system defaults. |
<SocketConfiguration>/<KeepAlive> |
Integer | Milliseconds a connection remains open when no data is being transferred. |
<SocketConfiguration>/<TrafficClass> |
Integer | Classification for differentiated service based on the priority of traffic on the network. |
<SocketConfiguration>/<OobInline> |
Boolean | Whether urgent data received on the socket is received through the socket input stream. Urgent data is discarded when this is disabled. |
<SocketConfiguration>/<SoLingerTime> |
Integer | Milliseconds a socket waits to finish sending pending data after the close function is called on the socket connection. |
<SocketConfiguration>/<TcpNoDelay> |
Boolean | Whether nagling is enabled. Nagling is a TCP feature that combines several small packets into a single, larger packet for more efficient transmission. |
<SocketConfiguration>/<AcceptorBackLog> |
Integer | Number of connections allowed in the backup queue. |
MediaCasters element
The <MediaCasters> element contains the children listed in the table below.
| Element | Type | Description |
|---|---|---|
<ProcessorCount> |
Integer | Number of threads allocated to MediaCasters, such as ${com.wowza.wms.TuningAuto}. |
<SocketConfiguration> |
Container | Socket connections for MediaCasters. |
<SocketConfiguration>/<ReuseAddress> |
Boolean | Whether the address of the incoming RTP datagram can be reused. |
<SocketConfiguration>/<ReceiveBufferSize> |
Integer | Size, in bytes, of the buffer that receives incoming data. Set to 0 to use the operating system defaults. |
<SocketConfiguration>/<ReadBufferSize> |
Integer | Size of the memory buffer that contains read data. |
<SocketConfiguration>/<SendBufferSize> |
Integer | Size of the memory buffer that contains data to be sent. Set to 0 to use the operating system defaults. |
<SocketConfiguration>/<KeepAlive> |
Integer | Milliseconds a connection remains open when no data is being transferred. |
<SocketConfiguration>/<TrafficClass> |
Integer | Classification for differentiated service based on the priority of traffic on the network. |
<SocketConfiguration>/<OobInline> |
Boolean | Whether urgent data received on the socket is received through the socket input stream. Urgent data is discarded when this is disabled. |
<SocketConfiguration>/<SoLingerTime> |
Integer | Milliseconds a socket waits to finish sending pending data after the close function is called on the socket connection. |
<SocketConfiguration>/<TcpNoDelay> |
Boolean | Whether nagling is enabled. Nagling is a TCP feature that combines several small packets into a single, larger packet for more efficient transmission. |
<SocketConfiguration>/<ConnectionTimeout> |
Integer | Milliseconds this MediaCaster waits when connecting to a remote service. |
RTP element
The <RTP> element contains the children listed in the table below.
| Element | Type | Description |
|---|---|---|
<IdleFrequency> |
Integer | Milliseconds between RTP idle events, which send new media data and events to an RTP or MPEG-TS session. |
<DatagramConfiguration> |
Container | Datagram socket configuration for incoming and outgoing RTP connections. See the DatagramConfiguration elements table for available child elements. |
<UnicastIncoming> |
Container | Incoming unicast UDP streams. |
<UnicastIncoming>/<ProcessorCount> |
Integer | Number of threads allocated to incoming unicast UDP streams. |
<UnicastOutgoing> |
Container | Outgoing unicast UDP streams. |
<UnicastOutgoing>/<ProcessorCount> |
Integer | Number of threads allocated to outgoing unicast UDP streams. |
<MulticastIncoming> |
Container | Incoming multicast UDP streams. |
<MulticastIncoming>/<ProcessorCount> |
Integer | Number of threads allocated to incoming multicast UDP streams. |
<MulticastOutgoing> |
Container | Outgoing multicast UDP streams. |
<MulticastOutgoing>/<ProcessorCount> |
Integer | Number of threads allocated to outgoing multicast UDP streams. |
DatagramConfiguration element
The <DatagramConfiguration> element contains an <Incoming> container for incoming RTP connections and an <Outgoing> container for outgoing RTP connections. Both the <Incoming> and <Outgoing> containers accept the children listed in the table below.
| Element | Type | Description |
|---|---|---|
<ReuseAddress> |
Boolean | Whether the address of the RTP datagram can be reused. |
<ReceiveBufferSize> |
Integer | Size, in bytes, of the incoming UDP buffer. |
<SendBufferSize> |
Integer | Size, in bytes, of the outgoing UDP buffer. |
<MulticastBindToAddress> |
Boolean | Whether WSE binds to the address specified by <MulticastInterfaceAddress> when joining a multicast stream. Unused by default, in which case the server binds to the local network interface. |
<MulticastInterfaceAddress> |
String | Local address of the network interface WSE uses when joining a multicast stream. Set this to force WSE to bind to a particular network interface. |
<TrafficClass> |
Integer | Classification for differentiated service based on the priority of traffic on the network. Applies to inbound traffic under <Incoming> and outbound traffic under <Outgoing>. |
<MulticastTimeout> |
Integer | Timeout, in milliseconds, for multicast polling. |
<DatagramMaximumPacketSize> |
Integer | Maximum size, in bytes, for a single incoming UDP packet. |
SRTListener element
The <SRTListener> element accepts the properties listed in the table below.
Many of these properties are similar to those used to specify per-stream SRT settings in .stream files. They're configured separately from the .stream file settings and apply only to the SRT listener mode workflow.
Application element
The <Application> element contains the children listed in the table below.
| Element | Type | Description |
|---|---|---|
<ApplicationTimeout> |
Integer | Milliseconds the server waits before shutting down an app with no client connections. Set to 0 to run until the virtual host shuts down. If unset, the Application.xml value applies. |
<PingTimeout> |
Integer | Milliseconds the server waits for a ping response from the client. This is an RTMP internal ping, not ICMP. Set to 0 to wait indefinitely. If unset, the Application.xml value applies. |
<UnidentifiedSessionTimeout> |
Integer | Milliseconds the server waits for an unidentified client session before disconnecting the application. |
<ValidationFrequency> |
Integer | Milliseconds the server waits during server-to-client validation, which sends a ping request to the client. Validation runs only if the client stops sending data. Set to 0 to disable validation. If unset, the Application.xml value applies. |
<MaximumPendingWriteBytes> |
Integer | Maximum bytes allowed to queue while waiting to be sent. A client connection that exceeds this is terminated. Set to 0 for no maximum. |
<MaximumSetBufferTime> |
Integer | Maximum client-side buffer time, in milliseconds. The check guards against stream rippers that request a very large client-side buffer to steal content, since unlimited buffer time can lead to server-side memory run-up. Set to 0 to turn off the check. |
Manager element
The <Manager> element contains the children listed in the table below.
| Element | Type | Description |
|---|---|---|
<TestPlayer> |
Container | How a URL is built for test players connecting to WSE. You can define multiple <TestPlayer> containers to manage the Server options and Secure URL interactions for the Test Playback modal in WSE Manager. See the comments in VHost.xml for details on this setup. |
<TestPlayer>/<IpAddress> |
String | IP address or server name the test player uses to connect to the server. Defaults to Note: Amazon EC2 instances use private and public DNS values as IP addresses. For EC2 AMIs with StreamLock configurations to work, use the private DNS value or the wildcard (*) as the IP address; bind failures occur if the EC2 public DNS value is used. Restart the server to apply StreamLock changes, as restarting the VHost doesn't apply them. |
<TestPlayer>/<Port> |
Integer | Port the test player uses to connect to the server. Defaults to ${com.wowza.wms.HostPort.FirstStreamingPort}. Nonstandard SSL/TLS ports must be set explicitly, for example <Port>9443</Port>. If StreamLock is enabled for the default streaming port (1935), keep the default. The default can be overridden when multiple streaming ports are defined for a vhost. |
<TestPlayer>/<SSLEnable> |
Boolean | Whether the test player uses a vhost port with SSL/TLS enabled, which sets the stream URL protocol to https, rtmps, or rtsps rather than http, rtmp, or rtsp. Defaults to ${com.wowza.wms.HostPort.SSLEnable}, which queries the host port in VHost.xml and resolves to true or false based on its value. |
<Properties> |
Container | A container element for custom WSE Manager <Property> elements. |
Property element
The <Property> element contains the children listed in the table below. Virtual host properties are copied to virtual hosts at creation, and are available in the Java API through IVHost.getProperties().
| Element | Type | Description |
|---|---|---|
<Property> |
Container | The container element for a single custom property. |
<Property>/<Name> |
String | Name of the property. |
<Property>/<Value> |
— | Value of the property as defined by the type. |
<Property>/<Type> |
String | Type of property (Integer, Boolean, or String). |




