annotate xml/en/docs/quic.xml @ 2964:23eedf89fd5d

Updated QUIC documentation after QUIC code merge. - removed http3_max_concurrent_pushes, http3_push http3_push_preload, quic_mtu - updated apperared-in version - update of quic.xml, adding Rus translation
author Yaroslav Zhuravlev <yar@nginx.com>
date Tue, 23 May 2023 16:44:47 +0100
parents cebca5ba84d7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2956
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
1 <!--
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
2 Copyright (C) Nginx, Inc.
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
3 -->
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
4
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
5 <!DOCTYPE article SYSTEM "../../../dtd/article.dtd">
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
6
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
7 <article name="Support for QUIC and HTTP/3"
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
8 link="/en/docs/quic.html"
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
9 lang="en"
2964
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
10 rev="2">
2956
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
11
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
12 <section>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
13
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
14 <para>
2964
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
15 Support for
2956
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
16 <link url="https://datatracker.ietf.org/doc/html/rfc9000">QUIC</link>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
17 and
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
18 <link url="https://datatracker.ietf.org/doc/html/rfc9114">HTTP/3</link>
2964
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
19 protocols is available since 1.25.0.
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
20 Also, since 1.25.0, the QUIC and HTTP/3 support is available in
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
21 Linux <link doc="../linux_packages.xml">binary packages</link>.
2956
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
22 </para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
23
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
24 <para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
25 <note>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
26 The QUIC and HTTP/3 support is experimental, caveat emptor applies.
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
27 </note>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
28 </para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
29
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
30 </section>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
31
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
32
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
33 <section id="building" name="Building from sources">
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
34
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
35 <para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
36 The build is configured using the <command>configure</command> command.
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
37 Please refer to <link doc="configure.xml"/> for details.
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
38 </para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
39
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
40 <para>
2964
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
41 When configuring nginx, it is possible to enable QUIC and HTTP/3 using the
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
42 <link doc="configure.xml" id="http_v3_module"><literal>--with-http_v3_module</literal></link>
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
43 configuration parameter.
2956
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
44 </para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
45
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
46 <para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
47 An SSL library that provides QUIC support is recommended to build nginx, such as
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
48 <link url="https://boringssl.googlesource.com/boringssl">BoringSSL</link>,
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
49 <link url="https://www.libressl.org">LibreSSL</link>, or
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
50 <link url="https://github.com/quictls/openssl">QuicTLS</link>.
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
51 Otherwise, the <link url="https://openssl.org">OpenSSL</link>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
52 compatibility layer will be used that does not support
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
53 <link doc="http/ngx_http_ssl_module.xml" id="ssl_early_data">early data</link>.
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
54 </para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
55
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
56 <para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
57 Use the following command to configure nginx with
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
58 <link url="https://boringssl.googlesource.com/boringssl">BoringSSL</link>:
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
59 <programlisting>
2964
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
60 ./configure
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
61 --with-debug
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
62 --with-http_v3_module
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
63 --with-cc-opt="-I../boringssl/include"
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
64 --with-ld-opt="-L../boringssl/build/ssl
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
65 -L../boringssl/build/crypto"
2956
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
66 </programlisting>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
67 </para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
68
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
69 <para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
70 Alternatively, nginx can be configured with
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
71 <link url="https://github.com/quictls/openssl">QuicTLS</link>:
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
72 <programlisting>
2964
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
73 ./configure
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
74 --with-debug
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
75 --with-http_v3_module
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
76 --with-cc-opt="-I../quictls/build/include"
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
77 --with-ld-opt="-L../quictls/build/lib"
2956
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
78 </programlisting>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
79 </para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
80
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
81 <para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
82 Alternatively, nginx can be configured with a modern version of
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
83 <link url="https://www.libressl.org">LibreSSL</link>:
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
84 <programlisting>
2964
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
85 ./configure
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
86 --with-debug
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
87 --with-http_v3_module
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
88 --with-cc-opt="-I../libressl/build/include"
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
89 --with-ld-opt="-L../libressl/build/lib"
2956
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
90 </programlisting>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
91 </para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
92
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
93 <para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
94 After configuration,
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
95 nginx is compiled and installed using <command>make</command>.
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
96 </para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
97
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
98 </section>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
99
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
100
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
101 <section id="configuration" name="Configuration">
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
102
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
103 <para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
104 The <link doc="http/ngx_http_core_module.xml" id="listen"/> directive in
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
105 <link doc="http/ngx_http_core_module.xml">ngx_http_core_module</link>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
106 module got a new parameter
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
107 <link doc="http/ngx_http_core_module.xml" id="quic">quic</link>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
108 which enables HTTP/3 over QUIC on the specified port.
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
109 </para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
110
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
111 <para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
112 Along with the <literal>quic</literal> parameter
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
113 it is also possible to specify the
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
114 <link doc="http/ngx_http_core_module.xml" id="reuseport">reuseport</link>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
115 parameter to make it work properly with multiple workers.
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
116 </para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
117
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
118 <para>
2964
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
119 For the list of directives, see
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
120 <link doc="http/ngx_http_v3_module.xml">ngx_http_v3_module</link>.
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
121 </para>
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
122
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
123 <para>
2956
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
124 To <link doc="http/ngx_http_v3_module.xml" id="quic_retry">enable</link>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
125 address validation:
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
126 <programlisting>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
127 quic_retry on;
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
128 </programlisting>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
129
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
130 To <link doc="http/ngx_http_ssl_module.xml" id="ssl_early_data">enable</link>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
131 0-RTT:
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
132 <programlisting>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
133 ssl_early_data on;
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
134 </programlisting>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
135
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
136 To <link doc="http/ngx_http_v3_module.xml" id="quic_gso">enable</link>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
137 GSO (Generic Segmentation Offloading):
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
138 <programlisting>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
139 quic_gso on;
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
140 </programlisting>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
141
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
142 To <link doc="http/ngx_http_v3_module.xml" id="quic_host_key">set</link>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
143 host key for various tokens:
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
144 <programlisting>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
145 quic_host_key &lt;filename&gt;;
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
146 </programlisting>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
147 </para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
148
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
149 <para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
150 QUIC requires TLSv1.3 protocol version which is enabled by default
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
151 in the <link doc="http/ngx_http_ssl_module.xml" id="ssl_protocols"/> directive.
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
152 </para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
153
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
154 <para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
155 By default,
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
156 <link url="http://vger.kernel.org/lpc_net2018_talks/willemdebruijn-lpc2018-udpgso-paper-DRAFT-1.pdf">GSO Linux-specific optimization</link>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
157 is disabled.
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
158 Enable it in case a corresponding network interface is configured
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
159 to support GSO.
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
160 </para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
161
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
162 </section>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
163
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
164
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
165 <section id="example" name="Example Configuration">
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
166
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
167 <para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
168 <example>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
169 http {
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
170 log_format quic '$remote_addr - $remote_user [$time_local] '
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
171 '"$request" $status $body_bytes_sent '
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
172 '"$http_referer" "$http_user_agent" "$http3"';
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
173
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
174 access_log logs/access.log quic;
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
175
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
176 server {
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
177 # for better compatibility it's recommended
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
178 # to use the same port for quic and https
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
179 listen 8443 quic reuseport;
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
180 listen 8443 ssl;
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
181
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
182 ssl_certificate certs/example.com.crt;
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
183 ssl_certificate_key certs/example.com.key;
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
184
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
185 location / {
2964
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
186 # required for browsers to direct them to quic port
2956
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
187 add_header Alt-Svc 'h3=":8443"; ma=86400';
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
188 }
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
189 }
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
190 }
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
191 </example>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
192 </para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
193
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
194 </section>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
195
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
196
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
197 <section id="troubleshooting " name="Troubleshooting">
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
198
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
199 <para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
200 Tips that may help to identify problems:
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
201 <list type="bullet">
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
202
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
203 <listitem>
2964
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
204 Ensure nginx is built with the proper SSL library.
2956
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
205 </listitem>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
206
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
207 <listitem>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
208 Ensure nginx is using the proper SSL library in runtime
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
209 (the <literal>nginx -V</literal> shows what it is currently used).
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
210 </listitem>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
211
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
212 <listitem>
2957
cebca5ba84d7 Minor fixes in http/3 and OTel modules.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2956
diff changeset
213 Ensure a client is actually sending requests over QUIC.
2964
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
214 It is recommended to start with a simple console client such as
2956
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
215 <link url="https://nghttp2.org/ngtcp2">ngtcp2</link>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
216 to ensure the server is configured properly before trying
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
217 with real browsers that may be quite picky with certificates.
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
218 </listitem>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
219
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
220 <listitem>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
221 Build nginx with <link doc="debugging_log.xml">debug support</link>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
222 and check the debug log.
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
223 It should contain all details about the connection and why it failed.
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
224 All related messages contain the “<literal>quic</literal>” prefix
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
225 and can be easily filtered out.
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
226 </listitem>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
227
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
228 <listitem>
2964
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
229 For a deeper investigation, additional debugging can be enabled
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
230 using the following macros:
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
231 <literal>NGX_QUIC_DEBUG_PACKETS</literal>,
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
232 <literal>NGX_QUIC_DEBUG_FRAMES</literal>,
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
233 <literal>NGX_QUIC_DEBUG_ALLOC</literal>,
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
234 <literal>NGX_QUIC_DEBUG_CRYPTO</literal>.
2956
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
235
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
236 <para>
2964
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
237 <programlisting>
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
238 ./configure
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
239 --with-http_v3_module
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
240 --with-debug
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
241 --with-cc-opt="-DNGX_QUIC_DEBUG_PACKETS -DNGX_QUIC_DEBUG_CRYPTO"
23eedf89fd5d Updated QUIC documentation after QUIC code merge.
Yaroslav Zhuravlev <yar@nginx.com>
parents: 2957
diff changeset
242 </programlisting>
2956
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
243 </para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
244 </listitem>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
245
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
246 </list>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
247 </para>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
248
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
249 </section>
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
250
a85e4d126bc7 Updated docs for the upcoming NGINX Plus release.
Yaroslav Zhuravlev <yar@nginx.com>
parents:
diff changeset
251 </article>