Binds#
Hypercorn serves by binding to sockets, sockets are specified by their address and can be IPv4, IPv6, a unix domain (on unix) or a file descriptor. By default Hypercorn will bind to “127.0.0.1:8000”.
Unix domain#
To specify a unix domain socket use a unix:
prefix before
specify an address. For example,
$ hypercorn --bind unix:/tmp/socket.sock
It is possible to control the permissions and ownership of the created
socket using the umask
, user
, and group
configurations
respectively.
File descriptor#
To specify a file descriptor to bind too use a fd://
prefix before
the descriptor number. For example,
$ hypercorn --bind fd://2
Multiple binds#
Hypercorn supports binding to multiple addresses and serving on all of them at the same time. This allows for example binding to an IPv4 and an IPv6 address. To do this simply specify multiple binds either on the command line, or in the configuration file. For example for a dual stack binding,
$ hypercorn --bind '0.0.0.0:5000' --bind '[::]:5000' ...
or within the configuration file,
bind = ["0.0.0.0:5000", "[::]:5000"]