tizen 2.4 release
[external/nghttp2.git] / doc / nghttpx.h2r
1 FILES
2 -----
3
4 */etc/nghttpx/nghttpx.conf*
5   The default configuration file path nghttpx searches at startup.
6   The configuration file path can be changed using :option:`--conf`
7   option.
8
9   Those lines which are staring ``#`` are treated as comment.
10
11   The option name in the configuration file is the long command-line
12   option name with leading ``--`` stripped (e.g., ``frontend``).  Put
13   ``=`` between option name and value.  Don't put extra leading or
14   trailing spaces.
15
16   The options which do not take argument in the command-line *take*
17   argument in the configuration file.  Specify ``yes`` as an argument
18   (e.g., ``http2-proxy=yes``).  If other string is given, it is
19   ignored.
20
21   To specify private key and certificate file which are given as
22   positional arguments in commnad-line, use ``private-key-file`` and
23   ``certificate-file``.
24
25   :option:`--conf` option cannot be used in the configuration file and
26   will be ignored if specified.
27
28 SIGNALS
29 -------
30
31 SIGQUIT
32   Shutdown gracefully.  First accept pending connections and stop
33   accepting connection.  After all connections are handled, nghttpx
34   exits.
35
36 SIGUSR1
37   Reopen log files.
38
39 SIGUSR2
40   Fork and execute nghttpx.  It will execute the binary in the same
41   path with same command-line arguments and environment variables.
42   After new process comes up, sending SIGQUIT to the original process
43   to perform hot swapping.
44
45 SERVER PUSH
46 -----------
47
48 nghttpx supports HTTP/2 server push in default mode.  nghttpx looks
49 for Link header field (`RFC 5988
50 <http://tools.ietf.org/html/rfc5988>`_) in response headers for
51 backend server and extracts URI-reference with parameter
52 ``rel=preload`` (see `preload
53 <http://w3c.github.io/preload/#interoperability-with-http-link-header>`_)
54 and pushes those URIs to the frontend client. Here is a sample Link
55 header field to initiate server push:
56
57 .. code-block:: http
58
59   Link: </fonts/font.woff>; rel=preload
60   Link: </css/theme.css>; rel=preload
61
62 Currently, the following restrictions are applied for server push:
63
64 1. URI-reference must not contain authority.  If it exists, it is not
65    pushed.  ``/fonts/font.woff`` and ``css/theme.css`` are eligible to
66    be pushed.  ``https://example.org/fonts/font.woff`` and
67    ``//example.org/css/theme.css`` are not.
68
69 2. The associated stream must have method "GET" or "POST".  The
70    associated stream's status code must be 200.
71
72 These limitations may be loosened in the future release.
73
74 SEE ALSO
75 --------
76
77 :manpage:`nghttp(1)`, :manpage:`nghttpd(1)`, :manpage:`h2load(1)`