summaryrefslogtreecommitdiffhomepage
path: root/src/http/v2/ngx_http_v2_module.c
diff options
context:
space:
mode:
authorRoman Arutyunyan <arut@nginx.com>2023-05-16 16:30:08 +0400
committerRoman Arutyunyan <arut@nginx.com>2023-05-16 16:30:08 +0400
commitaefd862ab197c3ab49001fcf69be478aab5b0f4e (patch)
tree7c28971738b77c00264052ac32ee12f79fa2b1a4 /src/http/v2/ngx_http_v2_module.c
parentcb70d5954c65b5683bc1c104bbf2466b73f4aa2b (diff)
downloadnginx-aefd862ab197c3ab49001fcf69be478aab5b0f4e.tar.gz
nginx-aefd862ab197c3ab49001fcf69be478aab5b0f4e.tar.bz2
HTTP/2: "http2" directive.
The directive enables HTTP/2 in the current server. The previous way to enable HTTP/2 via "listen ... http2" is now deprecated. The new approach allows to share HTTP/2 and HTTP/0.9-1.1 on the same port. For SSL connections, HTTP/2 is now selected by ALPN callback based on whether the protocol is enabled in the virtual server chosen by SNI. This however only works since OpenSSL 1.0.2h, where ALPN callback is invoked after SNI callback. For older versions of OpenSSL, HTTP/2 is enabled based on the default virtual server configuration. For plain TCP connections, HTTP/2 is now auto-detected by HTTP/2 preface, if HTTP/2 is enabled in the default virtual server. If preface is not matched, HTTP/0.9-1.1 is assumed.
Diffstat (limited to 'src/http/v2/ngx_http_v2_module.c')
-rw-r--r--src/http/v2/ngx_http_v2_module.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/http/v2/ngx_http_v2_module.c b/src/http/v2/ngx_http_v2_module.c
index 005088611..09396a50b 100644
--- a/src/http/v2/ngx_http_v2_module.c
+++ b/src/http/v2/ngx_http_v2_module.c
@@ -75,6 +75,13 @@ static ngx_conf_post_t ngx_http_v2_chunk_size_post =
static ngx_command_t ngx_http_v2_commands[] = {
+ { ngx_string("http2"),
+ NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_FLAG,
+ ngx_conf_set_flag_slot,
+ NGX_HTTP_SRV_CONF_OFFSET,
+ offsetof(ngx_http_v2_srv_conf_t, enable),
+ NULL },
+
{ ngx_string("http2_recv_buffer_size"),
NGX_HTTP_MAIN_CONF|NGX_CONF_TAKE1,
ngx_conf_set_size_slot,
@@ -314,6 +321,8 @@ ngx_http_v2_create_srv_conf(ngx_conf_t *cf)
return NULL;
}
+ h2scf->enable = NGX_CONF_UNSET;
+
h2scf->pool_size = NGX_CONF_UNSET_SIZE;
h2scf->concurrent_streams = NGX_CONF_UNSET_UINT;
@@ -333,6 +342,8 @@ ngx_http_v2_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child)
ngx_http_v2_srv_conf_t *prev = parent;
ngx_http_v2_srv_conf_t *conf = child;
+ ngx_conf_merge_value(conf->enable, prev->enable, 0);
+
ngx_conf_merge_size_value(conf->pool_size, prev->pool_size, 4096);
ngx_conf_merge_uint_value(conf->concurrent_streams,