'Initialize, but do not start, a WSGI server.
:param name: Pretty name for logging.
:param app: The WSGI application to serve.
:param host: IP address to serve the application.
:param port: Port number to server the application.
:param pool_size: Maximum number of eventlets to spawn concurrently.
:param backlog: Maximum number of queued connections.
:param max_url_len: Maximum length of permitted URLs.
:returns: None
:raises: nova.exception.InvalidInput'

def __init__(self, name, app, host='0.0.0.0', port=0, pool_size=None, protocol=eventlet.wsgi.HttpProtocol, backlog=128, use_ssl=False, max_url_len=None):

    eventlet.wsgi.MAX_HEADER_LINE = CONF.wsgi.max_header_line
    self.name = name
    self.app = app
    self._server = None
    self._protocol = protocol
    self.pool_size = (pool_size or self.default_pool_size)
    self._pool = eventlet.GreenPool(self.pool_size)
    self._logger = logging.getLogger(('nova.%s.wsgi.server' % self.name))
    self._use_ssl = use_ssl
    self._max_url_len = max_url_len
    self.client_socket_timeout = (CONF.wsgi.client_socket_timeout or None)
    if (backlog < 1):
        raise exception.InvalidInput(reason=_('The    backlog    must    be    more    than    0'))
    bind_addr = (host, port)
    try:
        info = socket.getaddrinfo(bind_addr[0], bind_addr[1], socket.AF_UNSPEC, socket.SOCK_STREAM)[0]
        family = info[0]
        bind_addr = info[(-1)]
    except Exception:
        family = socket.AF_INET
    try:
        self._socket = eventlet.listen(bind_addr, family, backlog=backlog)
    except EnvironmentError:
        LOG.error(_LE('Could    not    bind    to    %(host)s:%(port)s'), {'host': host, 'port': port})
        raise
    (self.host, self.port) = self._socket.getsockname()[0:2]
    LOG.info(_LI('%(name)s    listening    on    %(host)s:%(port)s'), {'name': self.name, 'host': self.host, 'port': self.port})
