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
fora specic IP address. For example, if an HTTP listener uses 0.0.0.0:8080 (all IP addresses on
port8080), another HTTP listener cannot use 1.2.3.4:8080.
Becausethe system running the Enterprise Server typically has access to only one IP address,
HTTPlisteners typically use the 0.0.0.0 IP address and dierent port numbers, with each port
numberserving a dierent purpose. If the system does have access to more than one IP address,
eachaddress can serve a dierent purpose.
Bydefault, when the Enterprise Server starts, it has the following HTTP listeners:
TwoHTTP listeners named http-listener-1 and http-listener-2, associated with the
virtualserver named server. The listener named http-listener-1 does not have security
enabled;http-listener-2 has security enabled.
AnHTTP listener named admin-listener, associated with the virtual server named
__asadmin.This listener hasdoes not have security enabled.
Allthese listeners use the IP address 0.0.0.0 and the port numbers specied as the HTTP server
portnumbers during installation of the Enterprise Server. If the Enterprise Server uses the
defaultport number values, http-listener-1 uses port 8080, http-listener-2 uses port
8181,and admin-listener uses port 48489.
EachHTTP listener has a default virtual server. The default virtual server is the server to which
theHTTP listener routes all request URLs whose host component does not match any of the
virtualservers that are associated with the HTTP listener (a virtual server is associated with an
HTTPlistener by listing the HTTP listener in its http-listeners attribute).
Inaddition, specify the number of acceptor threads in the HTTP listener. Acceptor threads are
threadsthat wait for connections. The threads accept connections and put them in a queue,
calledthe connection queue, where they are then picked up by worker threads. Congure
enoughacceptor threads so that there is always one available when a new request comes in, but
fewenough 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
HTTPlistener thread is responsible for accepting and processing requests. For this reason, the
HTTPlisteners in the Enterprise Server’s default conguration use 50 acceptor threads. The
connectionqueue includes both the new connections just accepted by acceptor threads and
persistentconnections managed by the Keep-Alive connection management subsystem.
Aset of request processing threads retrieves incoming HTTP requests from the connection
queueand processes the requests. These threads parse the HTTP headers, select the appropriate
virtualserver, and run through the request processing engine to service the request. When there
areno more requests to process, but the connection can be kept persistent (either by using
HTTP/1.1or sending a Connection: keep-alive header), the request processing thread
assumesthe connection to be idle and passes the connection to the Keep-Alive connection
managementsubsystem.
HTTPListeners
Chapter13 • Conguring the HT TP Service 151