Ports and Binding

Appweb can listen for HTTP requests on multiple IP addresses and ports. Incoming requests may be served by a single server, or they may be processed by different logical servers often called virtual hosts. The process of opening TCP/IP ports to listen for requests is called binding. By default, Appweb will listen on all the interface network cards in the system, but the Appweb configuration file allows explicit control over which interfaces, IP addresses and ports are used.

Listen Directive

The Listen configuration file directive specifies the IP endpoints on which Appweb will listen for incoming HTTP requests. It takes the form:

Listen [IP][:PORT]

The IP address and port components are optional, but at least one must be present. If the IP address is absent, Appweb will listen on all network interfaces including the loop-back adapter. If the PORT is absent, Appweb will listen on the default port which is typically configured to be port 80.

For example:
Listen 80
Listen 209.108.201.67:8888
Listen 209.108.201.68

IPv6

Appweb will 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:

2001:0db8:85a3:08d3:1319:8a2e:0370:7348

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

This notation is also used in http addresses:

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

These two documents are useful IPv6 references:

Virtual Hosts

When a Listen directive is defined inside a Virtual Host, all requests on that endpoint will be managed by the directives inside the VirtualHost block. See the VirtualHost configuration file directive for more information.

© Embedthis Software. All rights reserved.