However, if an HTTP listener uses the 0.0.0.0 IP address, which listens on all IP addresses on a
port, you cannot create HTTP listeners for additional IP addresses that listen on the same port
for a specic IP address. For example, if an HTTP listener uses 0.0.0.0:8080 (all IP addresses on
port 8080), another HTTP listener cannot use 1.2.3.4:8080.
Because the system running the Enterprise Server typically has access to only one IP address,
HTTP listeners typically use the 0.0.0.0 IP address and dierent port numbers, with each port
number serving a dierent purpose. If the system does have access to more than one IP address,
each address can serve a dierent purpose.
By default, when the Enterprise Server starts, it has the following HTTP listeners:
■
Two HTTP listeners named http-listener-1 and http-listener-2, associated with the
virtual server named server. The listener named http-listener-1 does not have security
enabled; http-listener-2 has security enabled.
■
An HTTP listener named admin-listener, associated with the virtual server named
__asadmin. This listener hasdoes not have security enabled.
All these listeners use the IP address 0.0.0.0 and the port numbers specied as the HTTP server
port numbers during installation of the Enterprise Server. If the Enterprise Server uses the
default port number values, http-listener-1 uses port 8080, http-listener-2 uses port
8181, and admin-listener uses port 48489.
Each HTTP listener has a default virtual server. The default virtual server is the server to which
the HTTP listener routes all request URLs whose host component does not match any of the
virtual servers that are associated with the HTTP listener (a virtual server is associated with an
HTTP listener by listing the HTTP listener in its http-listeners attribute).
In addition, specify the number of acceptor threads in the HTTP listener. Acceptor threads are
threads that wait for connections. The threads accept connections and put them in a queue,
called the connection queue, where they are then picked up by worker threads. Congure
enough acceptor threads so that there is always one available when a new request comes in, but
few enough so that they do not provide too much of a burden on the system. In the Enterprise
Server, there is no distinction between acceptor and request processing (worker) threads: each
HTTP listener thread is responsible for accepting and processing requests. For this reason, the
HTTP listeners in the Enterprise Server’s default conguration use 50 acceptor threads. The
connection queue includes both the new connections just accepted by acceptor threads and
persistent connections managed by the Keep-Alive connection management subsystem.
A set of request processing threads retrieves incoming HTTP requests from the connection
queue and processes the requests. These threads parse the HTTP headers, select the appropriate
virtual server, and run through the request processing engine to service the request. When there
are no more requests to process, but the connection can be kept persistent (either by using
HTTP/1.1 or sending a Connection: keep-alive header), the request processing thread
assumes the connection to be idle and passes the connection to the Keep-Alive connection
management subsystem.
HTTP Listeners
Chapter13 • Conguringthe HTTPService 151