Configure > Quick Start
In order to run the H2O standalone HTTP server, you need to write a configuration file. The minimal configuration file looks like as follows.
listen:
port: 80
hosts:
"myhost.example.com":
listen: &listen_ssl
port: 443
ssl:
certificate-file: /path/to/certificate-file
key-file: /path/to/key-file
listen:
<<: *listen_ssl
type: quic
paths:
/:
file.dir: /path/to/the/public-files
user: nobody
access-log: /path/to/the/access-log
error-log: /path/to/the/error-log
pid-file: /path/to/the/pid-file
The configuration instructs the server to:
- listen on TCP port 80 for all hosts
- for myhost.example.com, listen on TCP port 443 using given TLS certificate and key pair
- listen on UDP port 443 (QUIC), reusing the previous setting named as
listen_ssl
- serve files under
/path/to/the/public-files
- under the privileges of
nobody
- emit access logs to file:
/path/to/the/access-log
- emit error logs to
/path/to/the/error-log
- store the process id of the server in
/path/to/the/pid-file
Enter the command below to start the server.
% sudo h2o -m daemon -c /path/to/the/configuration-file
The command instructs the server to read the configuration file, and start in daemon
mode, which dispatches a pair of master and worker processes that serves the HTTP requests.
To stop the server, send SIGTERM
to the server.
% sudo kill -TERM `cat /path/to/the/pid-file`
Next Step
Now that you know how to start and stop the server, the next step is to learn the configuration directives and their structure, or see the configuration examples.