diff options
author | Maxim Dounin <mdounin@mdounin.ru> | 2021-10-21 18:44:07 +0300 |
---|---|---|
committer | Maxim Dounin <mdounin@mdounin.ru> | 2021-10-21 18:44:07 +0300 |
commit | 1fc61b7b1ff182e86078200a59d3c523419c7b3b (patch) | |
tree | 51324f2d711aaf1b3a83f0e57834e9be400a6257 /src/http/ngx_http_request.c | |
parent | 3ab1b64463cfc1cea5209f159d8fe3797328be51 (diff) | |
download | nginx-1fc61b7b1ff182e86078200a59d3c523419c7b3b.tar.gz nginx-1fc61b7b1ff182e86078200a59d3c523419c7b3b.zip |
SSL: SSL_sendfile() support with kernel TLS.
Requires OpenSSL 3.0 compiled with "enable-ktls" option. Further, KTLS
needs to be enabled in kernel, and in OpenSSL, either via OpenSSL
configuration file or with "ssl_conf_command Options KTLS;" in nginx
configuration.
On FreeBSD, kernel TLS is available starting with FreeBSD 13.0, and
can be enabled with "sysctl kern.ipc.tls.enable=1" and "kldload ktls_ocf"
to load a software backend, see man ktls(4) for details.
On Linux, kernel TLS is available starting with kernel 4.13 (at least 5.2
is recommended), and needs kernel compiled with CONFIG_TLS=y (with
CONFIG_TLS=m, which is used at least on Ubuntu 21.04 by default,
the tls module needs to be loaded with "modprobe tls").
Diffstat (limited to 'src/http/ngx_http_request.c')
-rw-r--r-- | src/http/ngx_http_request.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c index 76bbcd67c..013b7158e 100644 --- a/src/http/ngx_http_request.c +++ b/src/http/ngx_http_request.c @@ -607,7 +607,7 @@ ngx_http_alloc_request(ngx_connection_t *c) } #if (NGX_HTTP_SSL) - if (c->ssl) { + if (c->ssl && !c->ssl->sendfile) { r->main_filter_need_in_memory = 1; } #endif |