{ title: 'Ports and Binding', crumbs: [ { "User's Guide": 'index.html' }, ], }

# Ports and Binding

GoAhead can listen for HTTP requests on multiple IP addresses and ports. By default, GoAhead will listen on all network interfaces for selected ports. At build time, you can modify which interfaces, IP addresses and ports will be used.

    ./configure --set listen="http://*:80, https://*:443"

The IP address and component is optional. If the IP address is absent or set to "*", GoAhead will listen on all network interfaces including the loop-back adapter.

## IPv6

GoAhead can listen on both IPv4 and IPv6 endpoints. To specify IPv6 endpoints you need to use IPv6 encoding. IPv6 addresses have eight colon separated segments. For example:

    ./configure --set listen="http://[2001:0db8:85a3:08d3:1319:8a2e:0370:7348]:8080"

Because IPv6 addresses contain a colon character, you need to enclose the IPv6 address in brackets if you want to also specify a network port when using the Listen directive.

    Listen [2001:0db8:85a3:08d3:1319:8a2e:0370:7348]:7777

These two documents are useful IPv6 references:

- Understand IPv6 Addresses
- Wikipedia IPv6

## Running GoAhead

You can override the default port binding via the goahead command line:

    goahead -v ./documents 'http://*:8080'

This will cause GoAhead to run and listen on the port 8080. You can put multiple addresses on the command line including SSL ports by using https. For example:

    goahead ./documents 'http://*:8080' 'https://10.0.0.5'