HTTP/3: removed $http3 that served its purpose.
To specify final protocol version by hand: add_header Alt-Svc h3=":443";
This commit is contained in:
parent
6fae135f9a
commit
5572c38e66
3 changed files with 6 additions and 60 deletions
11
README
11
README
|
@ -135,17 +135,16 @@ Experimental QUIC support for nginx
|
|||
http3_push
|
||||
http3_push_preload
|
||||
|
||||
Two additional variables are available: $quic and $http3.
|
||||
An additional variable is available: $quic.
|
||||
The value of $quic is "quic" if QUIC connection is used,
|
||||
and empty string otherwise. The value of $http3 is a string
|
||||
"h3-xx" where "xx" is the supported draft number.
|
||||
or an empty string otherwise.
|
||||
|
||||
Example configuration:
|
||||
|
||||
http {
|
||||
log_format quic '$remote_addr - $remote_user [$time_local] '
|
||||
'"$request" $status $body_bytes_sent '
|
||||
'"$http_referer" "$http_user_agent" "$quic" "$http3"';
|
||||
'"$http_referer" "$http_user_agent" "$quic"';
|
||||
|
||||
access_log logs/access.log quic;
|
||||
|
||||
|
@ -161,7 +160,7 @@ Example configuration:
|
|||
|
||||
location / {
|
||||
# required for browsers to direct them into quic port
|
||||
add_header Alt-Svc '$http3=":8443"; ma=86400';
|
||||
add_header Alt-Svc 'h3=":8443"; ma=86400';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -202,7 +201,7 @@ Example configuration:
|
|||
If you've got it right, in the access log you should see something like:
|
||||
|
||||
127.0.0.1 - - [24/Apr/2020:11:27:29 +0300] "GET / HTTP/3" 200 805 "-"
|
||||
"nghttp3/ngtcp2 client" "quic" "h3-29"
|
||||
"nghttp3/ngtcp2 client" "quic"
|
||||
|
||||
|
||||
5. Troubleshooting
|
||||
|
|
|
@ -12,10 +12,6 @@
|
|||
#include <ngx_core.h>
|
||||
|
||||
|
||||
#ifndef NGX_QUIC_DRAFT_VERSION
|
||||
#define NGX_QUIC_DRAFT_VERSION 29
|
||||
#endif
|
||||
|
||||
#define NGX_QUIC_MAX_UDP_PAYLOAD_SIZE 65527
|
||||
|
||||
#define NGX_QUIC_DEFAULT_ACK_DELAY_EXPONENT 3
|
||||
|
|
|
@ -10,9 +10,6 @@
|
|||
#include <ngx_http.h>
|
||||
|
||||
|
||||
static ngx_int_t ngx_http_variable_http3(ngx_http_request_t *r,
|
||||
ngx_http_variable_value_t *v, uintptr_t data);
|
||||
static ngx_int_t ngx_http_v3_add_variables(ngx_conf_t *cf);
|
||||
static void *ngx_http_v3_create_srv_conf(ngx_conf_t *cf);
|
||||
static char *ngx_http_v3_merge_srv_conf(ngx_conf_t *cf, void *parent,
|
||||
void *child);
|
||||
|
@ -64,7 +61,7 @@ static ngx_command_t ngx_http_v3_commands[] = {
|
|||
|
||||
|
||||
static ngx_http_module_t ngx_http_v3_module_ctx = {
|
||||
ngx_http_v3_add_variables, /* preconfiguration */
|
||||
NULL, /* preconfiguration */
|
||||
NULL, /* postconfiguration */
|
||||
|
||||
NULL, /* create main configuration */
|
||||
|
@ -94,52 +91,6 @@ ngx_module_t ngx_http_v3_module = {
|
|||
};
|
||||
|
||||
|
||||
static ngx_http_variable_t ngx_http_v3_vars[] = {
|
||||
|
||||
{ ngx_string("http3"), NULL, ngx_http_variable_http3, 0, 0, 0 },
|
||||
|
||||
ngx_http_null_variable
|
||||
};
|
||||
|
||||
|
||||
static ngx_int_t
|
||||
ngx_http_variable_http3(ngx_http_request_t *r,
|
||||
ngx_http_variable_value_t *v, uintptr_t data)
|
||||
{
|
||||
v->valid = 1;
|
||||
v->no_cacheable = 1;
|
||||
v->not_found = 0;
|
||||
|
||||
v->data = ngx_pnalloc(r->pool, sizeof("h3-xx") - 1);
|
||||
if (v->data == NULL) {
|
||||
return NGX_ERROR;
|
||||
}
|
||||
|
||||
v->len = ngx_sprintf(v->data, "h3-%d", NGX_QUIC_DRAFT_VERSION) - v->data;
|
||||
|
||||
return NGX_OK;
|
||||
}
|
||||
|
||||
|
||||
static ngx_int_t
|
||||
ngx_http_v3_add_variables(ngx_conf_t *cf)
|
||||
{
|
||||
ngx_http_variable_t *var, *v;
|
||||
|
||||
for (v = ngx_http_v3_vars; v->name.len; v++) {
|
||||
var = ngx_http_add_variable(cf, &v->name, v->flags);
|
||||
if (var == NULL) {
|
||||
return NGX_ERROR;
|
||||
}
|
||||
|
||||
var->get_handler = v->get_handler;
|
||||
var->data = v->data;
|
||||
}
|
||||
|
||||
return NGX_OK;
|
||||
}
|
||||
|
||||
|
||||
static void *
|
||||
ngx_http_v3_create_srv_conf(ngx_conf_t *cf)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue