@VisibleForTesting
    static int getOriginalPort(SessionContext context, Headers headers, int serverPort) {
        if (context.containsKey(CommonContextKeys.PROXY_PROTOCOL_DESTINATION_ADDRESS)) {
            return ((InetSocketAddress) context.get(CommonContextKeys.PROXY_PROTOCOL_DESTINATION_ADDRESS)).getPort();
        }
        String portStr = headers.getFirst(HttpHeaderNames.X_FORWARDED_PORT);
        if (portStr != null && !portStr.isEmpty()) {
            return Integer.parseInt(portStr);
        }

        try {
            // Check if port was specified on a Host header.
            Pair<String, Integer> host = parseHostHeader(headers);
            if (host.second() != -1) {
                return host.second();
            }
        } catch (URISyntaxException e) {
            LOG.debug("Invalid host header, falling back to serverPort", e);
        }

        return serverPort;
    }
The originally request host. This will NOT include port.

The Host header may contain port, but in this method we strip it out for consistency - use the
getOriginalPort method for that.
zuul-core/src/main/java/com/netflix/zuul/message/http/HttpRequestMessageImpl.java