comparison README @ 8982:8f5d0ade0da7 quic

README: updated to QUICv1. While here, removed old browsers tips.
author Sergey Kandaurov <pluknet@nginx.com>
date Wed, 26 Jan 2022 14:15:40 +0300
parents 6f8253673669
children 3b7e690dda27
comparison
equal deleted inserted replaced
8981:7ea585a6ed0f 8982:8f5d0ade0da7
32 32
33 You can always contact us via nginx-devel mailing list [3]. 33 You can always contact us via nginx-devel mailing list [3].
34 34
35 What works now: 35 What works now:
36 36
37 Currently we support IETF-QUIC draft-29 through final RFC documents. 37 We support IETF QUIC version 1. Internet drafts are no longer supported.
38 Earlier drafts are NOT supported as they have incompatible wire format.
39 38
40 nginx should be able to respond to HTTP/3 requests over QUIC and 39 nginx should be able to respond to HTTP/3 requests over QUIC and
41 it should be possible to upload and download big files without errors. 40 it should be possible to upload and download big files without errors.
42 41
43 + The handshake completes successfully 42 + The handshake completes successfully
176 175
177 4. Clients 176 4. Clients
178 177
179 * Browsers 178 * Browsers
180 179
181 Known to work: Firefox 80+ and Chrome 85+ (QUIC draft 29+) 180 Known to work: Firefox 90+ and Chrome 92+ (QUIC version 1)
182 181
183 Beware of strange issues: sometimes browser may decide to ignore QUIC 182 Beware of strange issues: sometimes browser may decide to ignore QUIC
184 Cache clearing/restart might help. Always check access.log and 183 Cache clearing/restart might help. Always check access.log and
185 error.log to make sure you are using HTTP/3 and not TCP https. 184 error.log to make sure you are using HTTP/3 and not TCP https.
186 185
187 + to enable QUIC in Firefox, set the following in 'about:config':
188 network.http.http3.enabled = true
189
190 + to enable QUIC in Chrome, enable it on command line and force it
191 on your site:
192
193 $ ./chrome --enable-quic --quic-version=h3-29 \
194 --origin-to-force-quic-on=example.com:8443
195
196 * Console clients 186 * Console clients
197 187
198 Known to work: ngtcp2, firefox's neqo and chromium's console clients: 188 Known to work: ngtcp2, firefox's neqo and chromium's console clients:
199 189
200 $ examples/client 127.0.0.1 8443 https://example.com:8443/index.html 190 $ examples/client 127.0.0.1 8443 https://example.com:8443/index.html
201 191
202 $ ./neqo-client https://127.0.0.1:8443/ 192 $ ./neqo-client https://127.0.0.1:8443/
203 193
204 $ chromium-build/out/my_build/quic_client http://example.com:8443 \ 194 $ chromium-build/out/my_build/quic_client http://example.com:8443
205 --quic_version=h3-29 \
206 --allow_unknown_root_cert \
207 --disable_certificate_verification
208 195
209 196
210 If you've got it right, in the access log you should see something like: 197 If you've got it right, in the access log you should see something like:
211 198
212 127.0.0.1 - - [24/Apr/2020:11:27:29 +0300] "GET / HTTP/3" 200 805 "-" 199 127.0.0.1 - - [24/Apr/2020:11:27:29 +0300] "GET / HTTP/3" 200 805 "-"
220 + Ensure you are building with proper SSL library that supports QUIC 207 + Ensure you are building with proper SSL library that supports QUIC
221 208
222 + Ensure you are using the proper SSL library in runtime 209 + Ensure you are using the proper SSL library in runtime
223 (`nginx -V` will show you what you are using) 210 (`nginx -V` will show you what you are using)
224 211
225 + Ensure your client is actually sending QUIC requests 212 + Ensure your client is actually sending requests over QUIC
226 (see "Clients" section about browsers and cache) 213 (see "Clients" section about browsers and cache)
227 214
228 We recommend to start with simple console client like ngtcp2 215 We recommend to start with simple console client like ngtcp2
229 to ensure you've got server configured properly before trying 216 to ensure you've got server configured properly before trying
230 with real browsers that may be very picky with certificates, 217 with real browsers that may be very picky with certificates,