private static String defaultAccessLoggerName(String hostnamePattern) {
        requireNonNull(hostnamePattern, "hostnamePattern");
        final HostAndPort hostAndPort = HostAndPort.fromString(hostnamePattern);
        hostnamePattern = hostAndPort.getHost();
        final String[] elements = hostnamePattern.split("\\.");
        final StringBuilder name = new StringBuilder(
                DEFAULT_ACCESS_LOGGER_PREFIX.length() + hostnamePattern.length() + 1);
        name.append(DEFAULT_ACCESS_LOGGER_PREFIX);
        for (int i = elements.length - 1; i >= 0; i--) {
            final String element = elements[i];
            if (element.isEmpty() || "*".equals(element)) {
                continue;
            }
            name.append('.');
            name.append(element);
        }
        if (hostAndPort.hasPort()) {
            name.append(':');
            name.append(hostAndPort.getPort());
        }
        return name.toString();
    }
Builds a new {@link Server} and its {@link ServerConfig}.
<h2>Example</h2>
<pre>{@code
ServerBuilder sb = Server.builder();
// Add a port to listen
sb.http(8080);
// Add services to the default virtual host.
sb.service(...);
sb.serviceUnder(...);
// Build a server.
Server s = sb.build();
}</pre>

<h2>Example 2</h2>
<pre>{@code
ServerBuilder sb = Server.builder();
Server server =
    sb.http(8080) // Add a port to listen
      .defaultVirtualHost() // Add services to the default virtual host.
          .service(...)
          .serviceUnder(...)
      .and().virtualHost("*.foo.com") // Add a another virtual host.
          .service(...)
          .serviceUnder(...)
      .and().build(); // Build a server.
}</pre>

<h2 id="no_port_specified">What happens if no HTTP(S) port is specified?</h2>

<p>When no TCP/IP port number or local address is specified, {@link ServerBuilder} will automatically bind
to a random TCP/IP port assigned by the OS. It will serve HTTPS if you configured TLS (or HTTP otherwise),
e.g.

<pre>{@code
// Build an HTTP server that runs on an ephemeral TCP/IP port.
Server httpServer = Server.builder()
                          .service(...)
                          .build();

// Build an HTTPS server that runs on an ephemeral TCP/IP port.
Server httpsServer = Server.builder()
                           .tls(...)
                           .service(...)
                           .build();
}</pre>

@see VirtualHostBuilder
core/src/main/java/com/linecorp/armeria/server/ServerBuilder.java