H2O

the optimized HTTP/1.x, HTTP/2, HTTP/3 server

Powered by Oktavia

Configure > Using CGI

Starting from version 1.7, H2O comes with a FastCGI-to-CGI gateway (fastcgi-cgi), which can be found under share/h2o directory of the installation path. The gateway can be used for running CGI scripts through the FastCGI handler.

The example below maps .cgi files to be executed by the gateway. It is also possible to run CGI scripts under different privileges by specifying the user attribute of the directive.

Example. Execute .cgi files using FastCGI-to-CGI gateway
file.custom-handler:
  extension: .cgi
  fastcgi.spawn:
    command: "exec $H2O_ROOT/share/h2o/fastcgi-cgi"
The gateway also provides options to for tuning the behavior. A full list of options can be obtained by running the gateway directly with --help option.
Example. Output of share/h2o/fastcgi-cgi --help
$ share/h2o/fastcgi-cgi --help
Usage:
    share/h2o/fastcgi-cgi [options]

Options:
  --listen=sockfn    path to the UNIX socket.  If specified, the program will
                     create a UNIX socket at given path replacing the existing
                     file (should it exist).  If not, file descriptor zero (0)
                     will be used as the UNIX socket for accepting new
                     connections.
  --max-workers=nnn  maximum number of CGI processes (default: unlimited)
  --pass-authz       if set, preserves HTTP_AUTHORIZATION parameter
  --verbose          verbose mode