changeset 2866:8bd6f772005f

Updated docs for the upcoming NGINX Plus release.
author Yaroslav Zhuravlev <yar@nginx.com>
date Sat, 25 Jun 2022 18:55:17 +0100
parents 0d355d154181
children f6f8ade13fcb
files xml/en/docs/http/ngx_http_api_module.xml xml/en/docs/http/ngx_http_api_module_head.xml xml/en/docs/http/ngx_http_auth_jwt_module.xml xml/en/docs/http/ngx_http_upstream_hc_module.xml xml/ru/docs/http/ngx_http_auth_jwt_module.xml xml/ru/docs/http/ngx_http_upstream_hc_module.xml yaml/nginx_api.yaml
diffstat 7 files changed, 383 insertions(+), 87 deletions(-) [+]
line wrap: on
line diff
--- a/xml/en/docs/http/ngx_http_api_module.xml	Thu Jun 23 14:00:09 2022 +0400
+++ b/xml/en/docs/http/ngx_http_api_module.xml	Sat Jun 25 18:55:17 2022 +0100
@@ -110,21 +110,21 @@
 a supported API <link id="api_version">version</link> in the URI.
 Examples of API requests with this configuration:
 <example>
-http://127.0.0.1/api/7/
-http://127.0.0.1/api/7/nginx
-http://127.0.0.1/api/7/connections
-http://127.0.0.1/api/7/http/requests
-http://127.0.0.1/api/7/http/server_zones/server_backend
-http://127.0.0.1/api/7/http/caches/cache_backend
-http://127.0.0.1/api/7/http/upstreams/backend
-http://127.0.0.1/api/7/http/upstreams/backend/servers/
-http://127.0.0.1/api/7/http/upstreams/backend/servers/1
-http://127.0.0.1/api/7/http/keyvals/one?key=arg1
-http://127.0.0.1/api/7/stream/
-http://127.0.0.1/api/7/stream/server_zones/server_backend
-http://127.0.0.1/api/7/stream/upstreams/
-http://127.0.0.1/api/7/stream/upstreams/backend
-http://127.0.0.1/api/7/stream/upstreams/backend/servers/1
+http://127.0.0.1/api/8/
+http://127.0.0.1/api/8/nginx
+http://127.0.0.1/api/8/connections
+http://127.0.0.1/api/8/http/requests
+http://127.0.0.1/api/8/http/server_zones/server_backend
+http://127.0.0.1/api/8/http/caches/cache_backend
+http://127.0.0.1/api/8/http/upstreams/backend
+http://127.0.0.1/api/8/http/upstreams/backend/servers/
+http://127.0.0.1/api/8/http/upstreams/backend/servers/1
+http://127.0.0.1/api/8/http/keyvals/one?key=arg1
+http://127.0.0.1/api/8/stream/
+http://127.0.0.1/api/8/stream/server_zones/server_backend
+http://127.0.0.1/api/8/stream/upstreams/
+http://127.0.0.1/api/8/stream/upstreams/backend
+http://127.0.0.1/api/8/stream/upstreams/backend/servers/1
 </example>
 </para>
 
@@ -155,14 +155,14 @@
 All API requests should contain a supported API version in the URI.
 If the request URI equals the location prefix,
 the list of supported API versions is returned.
-The current API version is “<literal>7</literal>”.
+The current API version is “<literal>8</literal>”.
 </para>
 
 <para>
 The optional “<literal>fields</literal>” argument in the request line
 specifies which fields of the requested objects will be output:
 <example>
-http://127.0.0.1/api/7/nginx?fields=version,build
+http://127.0.0.1/api/8/nginx?fields=version,build
 </example>
 </para>
 
@@ -208,6 +208,17 @@
 <list type="bullet">
 
 <listitem>
+The <literal>ssl</literal> data
+for each HTTP
+<link id="def_nginx_http_upstream">upstream</link>,
+<link id="def_nginx_http_server_zone">server zone</link>,
+and stream
+<link id="def_nginx_stream_upstream">upstream</link>,
+<link id="def_nginx_stream_server_zone">server zone</link>,
+were added in <link id="api_version">version</link> 8.
+</listitem>
+
+<listitem>
 The <literal>codes</literal> data
 in <literal>responses</literal> for each HTTP
 <link id="def_nginx_http_upstream">upstream</link>,
@@ -597,7 +608,7 @@
 </listitem>
 <listitem id="deleteHttpServerZoneStat">
 <literal>DELETE</literal> - Reset statistics for an HTTP server zone
-<para>Resets statistics of accepted and discarded requests, responses, received and sent bytes in a particular HTTP server zone.</para>
+<para>Resets statistics of accepted and discarded requests, responses, received and sent bytes, counters of SSL handshakes and session reuses in a particular HTTP server zone.</para>
 <para>
 Possible responses:
 </para>
@@ -1384,7 +1395,7 @@
 </listitem>
 <listitem id="deleteStreamServerZoneStat">
 <literal>DELETE</literal> - Reset statistics for a stream server zone
-<para>Resets statistics of accepted and discarded connections, sessions, received and sent bytes in a particular stream server zone.</para>
+<para>Resets statistics of accepted and discarded connections, sessions, received and sent bytes, counters of SSL handshakes and session reuses in a particular stream server zone.</para>
 <para>
 Possible responses:
 </para>
@@ -2055,12 +2066,12 @@
 <example>
 {
   "nginx" : {
-    "version" : "1.17.3",
-    "build" : "nginx-plus-r19",
+    "version" : "1.21.6",
+    "build" : "nginx-plus-r27",
     "address" : "206.251.255.64",
     "generation" : 6,
-    "load_timestamp" : "2019-10-01T11:15:44.467Z",
-    "timestamp" : "2019-10-01T09:26:07.305Z",
+    "load_timestamp" : "2022-06-28T11:15:44.467Z",
+    "timestamp" : "2022-06-28T09:26:07.305Z",
     "pid" : 32212,
     "ppid" : 32210
   }
@@ -2362,6 +2373,30 @@
 <tag-desc>
 The total number of bytes sent to clients.
 </tag-desc>
+<tag-name>
+<literal>ssl</literal></tag-name>
+<tag-desc>
+<list type="tag">
+<tag-name>
+<literal>handshakes</literal> (<literal>integer</literal>)
+</tag-name>
+<tag-desc>
+The total number of successful SSL handshakes.
+</tag-desc>
+<tag-name>
+<literal>handshakes_failed</literal> (<literal>integer</literal>)
+</tag-name>
+<tag-desc>
+The total number of failed SSL handshakes.
+</tag-desc>
+<tag-name>
+<literal>session_reuses</literal> (<literal>integer</literal>)
+</tag-name>
+<tag-desc>
+The total number of session reuses during SSL handshake.
+</tag-desc>
+</list>
+</tag-desc>
 </list>
 <para>Example:</para>
 <example>
@@ -2384,7 +2419,12 @@
   },
   "discarded" : 1513,
   "received" : 172711587,
-  "sent" : 19415530115
+  "sent" : 19415530115,
+  "ssl" : {
+    "handshakes" : 104303,
+    "handshakes_failed" : 1421,
+    "session_reuses" : 54645
+  }
 }</example>
 </listitem>
 <listitem id="def_nginx_http_location_zone">
@@ -2846,6 +2886,30 @@
 The current number of active connections.
 </tag-desc>
 <tag-name>
+<literal>ssl</literal></tag-name>
+<tag-desc>
+<list type="tag">
+<tag-name>
+<literal>handshakes</literal> (<literal>integer</literal>)
+</tag-name>
+<tag-desc>
+The total number of successful SSL handshakes.
+</tag-desc>
+<tag-name>
+<literal>handshakes_failed</literal> (<literal>integer</literal>)
+</tag-name>
+<tag-desc>
+The total number of failed SSL handshakes.
+</tag-desc>
+<tag-name>
+<literal>session_reuses</literal> (<literal>integer</literal>)
+</tag-name>
+<tag-desc>
+The total number of session reuses during SSL handshake.
+</tag-desc>
+</list>
+</tag-desc>
+<tag-name>
 <literal>max_conns</literal> (<literal>integer</literal>)
 </tag-name>
 <tag-desc>
@@ -3053,6 +3117,11 @@
         "weight" : 5,
         "state" : "up",
         "active" : 0,
+        "ssl" : {
+          "handshakes" : 620311,
+          "handshakes_failed" : 3432,
+          "session_reuses" : 36442
+        },
         "max_conns" : 20,
         "requests" : 667231,
         "header_time" : 20,
@@ -3081,8 +3150,8 @@
           "last_passed" : true
         },
         "downtime" : 0,
-        "downstart" : "2019-10-01T11:09:21.602Z",
-        "selected" : "2019-10-01T15:01:25.000Z"
+        "downstart" : "2022-06-28T11:09:21.602Z",
+        "selected" : "2022-06-28T15:01:25.000Z"
       },
       {
         "id" : 1,
@@ -3115,8 +3184,8 @@
           "last_passed" : false
         },
         "downtime" : 262925617,
-        "downstart" : "2019-10-01T11:09:21.602Z",
-        "selected" : "2019-10-01T15:01:25.000Z"
+        "downstart" : "2022-06-28T11:09:21.602Z",
+        "selected" : "2022-06-28T15:01:25.000Z"
       }
     ],
     "keepalive" : 0,
@@ -3317,6 +3386,30 @@
 <tag-desc>
 The total number of bytes sent to clients.
 </tag-desc>
+<tag-name>
+<literal>ssl</literal></tag-name>
+<tag-desc>
+<list type="tag">
+<tag-name>
+<literal>handshakes</literal> (<literal>integer</literal>)
+</tag-name>
+<tag-desc>
+The total number of successful SSL handshakes.
+</tag-desc>
+<tag-name>
+<literal>handshakes_failed</literal> (<literal>integer</literal>)
+</tag-name>
+<tag-desc>
+The total number of failed SSL handshakes.
+</tag-desc>
+<tag-name>
+<literal>session_reuses</literal> (<literal>integer</literal>)
+</tag-name>
+<tag-desc>
+The total number of session reuses during SSL handshake.
+</tag-desc>
+</list>
+</tag-desc>
 </list>
 <para>Example:</para>
 <example>
@@ -3332,7 +3425,12 @@
     },
     "discarded" : 0,
     "received" : 4200363,
-    "sent" : 20489184
+    "sent" : 20489184,
+    "ssl" : {
+      "handshakes" : 76455,
+      "handshakes_failed" : 432,
+      "session_reuses" : 28770
+    }
   }
 }</example>
 </listitem>
@@ -3422,6 +3520,30 @@
 The current number of connections.
 </tag-desc>
 <tag-name>
+<literal>ssl</literal></tag-name>
+<tag-desc>
+<list type="tag">
+<tag-name>
+<literal>handshakes</literal> (<literal>integer</literal>)
+</tag-name>
+<tag-desc>
+The total number of successful SSL handshakes.
+</tag-desc>
+<tag-name>
+<literal>handshakes_failed</literal> (<literal>integer</literal>)
+</tag-name>
+<tag-desc>
+The total number of failed SSL handshakes.
+</tag-desc>
+<tag-name>
+<literal>session_reuses</literal> (<literal>integer</literal>)
+</tag-name>
+<tag-desc>
+The total number of session reuses during SSL handshake.
+</tag-desc>
+</list>
+</tag-desc>
+<tag-name>
 <literal>max_conns</literal> (<literal>integer</literal>)
 </tag-name>
 <tag-desc>
@@ -3551,6 +3673,11 @@
         "weight" : 5,
         "state" : "up",
         "active" : 0,
+        "ssl" : {
+          "handshakes" : 200,
+          "handshakes_failed" : 4,
+          "session_reuses" : 189
+        },
         "max_conns" : 50,
         "connections" : 667231,
         "sent" : 251946292,
@@ -3564,8 +3691,8 @@
           "last_passed" : true
         },
         "downtime" : 0,
-        "downstart" : "2019-10-01T11:09:21.602Z",
-        "selected" : "2019-10-01T15:01:25.000Z"
+        "downstart" : "2022-06-28T11:09:21.602Z",
+        "selected" : "2022-06-28T15:01:25.000Z"
       },
       {
         "id" : 1,
@@ -3588,8 +3715,8 @@
           "last_passed" : false
         },
         "downtime" : 262925617,
-        "downstart" : "2019-10-01T11:09:21.602Z",
-        "selected" : "2019-10-01T15:01:25.000Z"
+        "downstart" : "2022-06-28T11:09:21.602Z",
+        "selected" : "2022-06-28T15:01:25.000Z"
       }
     ],
     "zombies" : 0,
--- a/xml/en/docs/http/ngx_http_api_module_head.xml	Thu Jun 23 14:00:09 2022 +0400
+++ b/xml/en/docs/http/ngx_http_api_module_head.xml	Sat Jun 25 18:55:17 2022 +0100
@@ -110,21 +110,21 @@
 a supported API <link id="api_version">version</link> in the URI.
 Examples of API requests with this configuration:
 <example>
-http://127.0.0.1/api/7/
-http://127.0.0.1/api/7/nginx
-http://127.0.0.1/api/7/connections
-http://127.0.0.1/api/7/http/requests
-http://127.0.0.1/api/7/http/server_zones/server_backend
-http://127.0.0.1/api/7/http/caches/cache_backend
-http://127.0.0.1/api/7/http/upstreams/backend
-http://127.0.0.1/api/7/http/upstreams/backend/servers/
-http://127.0.0.1/api/7/http/upstreams/backend/servers/1
-http://127.0.0.1/api/7/http/keyvals/one?key=arg1
-http://127.0.0.1/api/7/stream/
-http://127.0.0.1/api/7/stream/server_zones/server_backend
-http://127.0.0.1/api/7/stream/upstreams/
-http://127.0.0.1/api/7/stream/upstreams/backend
-http://127.0.0.1/api/7/stream/upstreams/backend/servers/1
+http://127.0.0.1/api/8/
+http://127.0.0.1/api/8/nginx
+http://127.0.0.1/api/8/connections
+http://127.0.0.1/api/8/http/requests
+http://127.0.0.1/api/8/http/server_zones/server_backend
+http://127.0.0.1/api/8/http/caches/cache_backend
+http://127.0.0.1/api/8/http/upstreams/backend
+http://127.0.0.1/api/8/http/upstreams/backend/servers/
+http://127.0.0.1/api/8/http/upstreams/backend/servers/1
+http://127.0.0.1/api/8/http/keyvals/one?key=arg1
+http://127.0.0.1/api/8/stream/
+http://127.0.0.1/api/8/stream/server_zones/server_backend
+http://127.0.0.1/api/8/stream/upstreams/
+http://127.0.0.1/api/8/stream/upstreams/backend
+http://127.0.0.1/api/8/stream/upstreams/backend/servers/1
 </example>
 </para>
 
@@ -155,14 +155,14 @@
 All API requests should contain a supported API version in the URI.
 If the request URI equals the location prefix,
 the list of supported API versions is returned.
-The current API version is “<literal>7</literal>”.
+The current API version is “<literal>8</literal>”.
 </para>
 
 <para>
 The optional “<literal>fields</literal>” argument in the request line
 specifies which fields of the requested objects will be output:
 <example>
-http://127.0.0.1/api/7/nginx?fields=version,build
+http://127.0.0.1/api/8/nginx?fields=version,build
 </example>
 </para>
 
@@ -208,6 +208,17 @@
 <list type="bullet">
 
 <listitem>
+The <literal>ssl</literal> data
+for each HTTP
+<link id="def_nginx_http_upstream">upstream</link>,
+<link id="def_nginx_http_server_zone">server zone</link>,
+and stream
+<link id="def_nginx_stream_upstream">upstream</link>,
+<link id="def_nginx_stream_server_zone">server zone</link>,
+were added in <link id="api_version">version</link> 8.
+</listitem>
+
+<listitem>
 The <literal>codes</literal> data
 in <literal>responses</literal> for each HTTP
 <link id="def_nginx_http_upstream">upstream</link>,
--- a/xml/en/docs/http/ngx_http_auth_jwt_module.xml	Thu Jun 23 14:00:09 2022 +0400
+++ b/xml/en/docs/http/ngx_http_auth_jwt_module.xml	Sat Jun 25 18:55:17 2022 +0100
@@ -371,7 +371,11 @@
 
 
 <directive name="auth_jwt_require">
-<syntax><value>value</value> ...</syntax>
+<syntax>
+    <value>$value</value> ...
+    [<literal>error</literal>=<literal>401</literal> |
+                              <literal>403</literal>]
+</syntax>
 <default/>
 <context>http</context>
 <context>server</context>
@@ -380,8 +384,9 @@
 <appeared-in>1.21.2</appeared-in>
 
 <para>
-Defines additional conditions for JWT validation.
-The value can contain text, variables, and their combination.
+Specifies additional checks for JWT validation.
+The value can contain text, variables, and their combination,
+and must start with a variable (1.21.7).
 The authentication will succeed only
 if all the values are not empty and are not equal to “0”.
 <example>
@@ -394,6 +399,13 @@
 </example>
 </para>
 
+<para>
+If any of the checks fails,
+the <literal>401</literal> error code is returned.
+The optional <literal>error</literal> parameter (1.21.7)
+allows redefining the error code to <literal>403</literal>.
+</para>
+
 </directive>
 
 </section>
--- a/xml/en/docs/http/ngx_http_upstream_hc_module.xml	Thu Jun 23 14:00:09 2022 +0400
+++ b/xml/en/docs/http/ngx_http_upstream_hc_module.xml	Sat Jun 25 18:55:17 2022 +0100
@@ -240,6 +240,16 @@
 <link id="health_check_match"><literal>match</literal></link> parameters.
 </tag-desc>
 
+<tag-name id="health_check_keepalive_time">
+<literal>keepalive_time</literal>=<value>time</value>
+</tag-name>
+<tag-desc>
+enables <link doc="ngx_http_upstream_module.xml" id="keepalive">keepalive</link>
+connections for health checks and specifies the time during which
+requests can be processed through one keepalive connection (1.21.7).
+By default keepalive connections are disabled.
+</tag-desc>
+
 </list>
 </para>
 
--- a/xml/ru/docs/http/ngx_http_auth_jwt_module.xml	Thu Jun 23 14:00:09 2022 +0400
+++ b/xml/ru/docs/http/ngx_http_auth_jwt_module.xml	Sat Jun 25 18:55:17 2022 +0100
@@ -369,7 +369,11 @@
 
 
 <directive name="auth_jwt_require">
-<syntax><value>значение</value> ...</syntax>
+<syntax>
+    <value>$значение</value> ...
+    [<literal>error</literal>=<literal>401</literal> |
+                              <literal>403</literal>]
+</syntax>
 <default/>
 <context>http</context>
 <context>server</context>
@@ -379,7 +383,8 @@
 
 <para>
 Задаёт дополнительные условия для проверки JWT.
-В качестве значения можно использовать текст, переменные и их комбинации.
+В качестве значения можно использовать текст, переменные и их комбинации,
+значение должно начинаться c переменной (1.21.7).
 Для успешной аутентификации необходимо, чтобы
 значение всех строковых параметров было непустое или не равно “0”.
 <example>
@@ -392,6 +397,13 @@
 </example>
 </para>
 
+<para>
+При невыполнении любого из условий
+возвращается код ответа <literal>401</literal>.
+Необязательный параметр <literal>error</literal> (1.21.7)
+позволяет переопределить код ответа на <literal>403</literal>.
+</para>
+
 </directive>
 
 </section>
--- a/xml/ru/docs/http/ngx_http_upstream_hc_module.xml	Thu Jun 23 14:00:09 2022 +0400
+++ b/xml/ru/docs/http/ngx_http_upstream_hc_module.xml	Sat Jun 25 18:55:17 2022 +0100
@@ -239,6 +239,16 @@
 <link id="health_check_match"><literal>match</literal></link>.
 </tag-desc>
 
+<tag-name id="health_check_keepalive_time">
+<literal>keepalive_time</literal>=<value>время</value>
+</tag-name>
+<tag-desc>
+включает <link doc="ngx_http_upstream_module.xml" id="keepalive">keepalive</link>
+соединения в проверках работоспособности и задаёт время, в течение которого
+могут обрабатываться запросы в рамках keepalive соединения (1.21.7).
+По умолчанию keepalive соединения выключены.
+</tag-desc>
+
 </list>
 </para>
 
--- a/yaml/nginx_api.yaml	Thu Jun 23 14:00:09 2022 +0400
+++ b/yaml/nginx_api.yaml	Sat Jun 25 18:55:17 2022 +0100
@@ -1,6 +1,6 @@
 swagger: '2.0'
 info:
-  version: '7.0'
+  version: '8.0'
   title: NGINX Plus REST API
   description: NGINX Plus REST
     [API](https://nginx.org/en/docs/http/ngx_http_api_module.html)
@@ -9,7 +9,7 @@
     key-value pairs management for
     [http](https://nginx.org/en/docs/http/ngx_http_keyval_module.html) and
     [stream](https://nginx.org/en/docs/stream/ngx_stream_keyval_module.html).
-basePath: /api/7
+basePath: /api/8
 tags:
   - name: General Info
   - name: Processes
@@ -374,7 +374,8 @@
         - Method DELETE
       summary: Reset statistics for an HTTP server zone
       description: Resets statistics of accepted and discarded requests, responses,
-        received and sent bytes in a particular HTTP server zone.
+        received and sent bytes, counters of SSL handshakes and session reuses
+        in a particular HTTP server zone.
       operationId: deleteHttpServerZoneStat
       responses:
         '204':
@@ -1330,7 +1331,8 @@
         - Method DELETE
       summary: Reset statistics for a stream server zone
       description: Resets statistics of accepted and discarded connections, sessions,
-        received and sent bytes in a particular stream server zone.
+        received and sent bytes, counters of SSL handshakes and session reuses
+        in a particular stream server zone.
       operationId: deleteStreamServerZoneStat
       responses:
         '204':
@@ -2148,12 +2150,12 @@
           <a href="https://nginx.org/en/docs/http/ngx_http_status_module.html#pid">worker process</a>.
     example:
       nginx:
-        version: 1.17.3
-        build: nginx-plus-r19
+        version: 1.21.6
+        build: nginx-plus-r27
         address: 206.251.255.64
         generation: 6
-        load_timestamp: 2019-10-01T11:15:44.467Z
-        timestamp: 2019-10-01T09:26:07.305Z
+        load_timestamp: 2022-06-28T11:15:44.467Z
+        timestamp: 2022-06-28T09:26:07.305Z
         pid: 32212
         ppid: 32210
   NginxProcesses:
@@ -2393,6 +2395,10 @@
         discarded: 2020
         received: 180157219
         sent: 20183175459
+        ssl:
+          handshakes: 65432
+          handshakes_failed: 421
+          session_reuses: 4645
       site2:
         processing: 1
         requests: 185307
@@ -2411,6 +2417,10 @@
         discarded: 20326
         received: 51575327
         sent: 2983241510
+        ssl:
+          handshakes: 104303
+          handshakes_failed: 1421
+          session_reuses: 54645
   NginxHTTPServerZone:
     title: HTTP Server Zone
     type: object
@@ -2474,6 +2484,22 @@
       sent:
         type: integer
         description: The total number of bytes sent to clients.
+      ssl:
+        type: object
+        readOnly: true
+        properties:
+          handshakes:
+            type: integer
+            description: The total number of successful SSL handshakes.
+            readOnly: true
+          handshakes_failed:
+            type: integer
+            description: The total number of failed SSL handshakes.
+            readOnly: true
+          session_reuses:
+            type: integer
+            description: The total number of session reuses during SSL handshake.
+            readOnly: true
     example:
       processing: 1
       requests: 706690
@@ -2492,6 +2518,10 @@
       discarded: 1513
       received: 172711587
       sent: 19415530115
+      ssl:
+        handshakes: 104303
+        handshakes_failed: 1421
+        session_reuses: 54645
   NginxHTTPLocationZonesMap:
     title: HTTP Location Zones
     description: |
@@ -2901,6 +2931,10 @@
             weight: 5
             state: up
             active: 0
+            ssl:
+              handshakes: 620311
+              handshakes_failed: 3432
+              session_reuses: 36442
             requests: 667231
             header_time: 20
             response_time: 36
@@ -2925,8 +2959,8 @@
               unhealthy: 0
               last_passed: true
             downtime: 0
-            downstart: 2019-10-01T11:09:21.602Z
-            selected: 2019-10-01T15:01:25Z
+            downstart: 2022-06-28T11:09:21.602Z
+            selected: 2022-06-28T15:01:25Z
           - id: 1
             server: 10.0.0.1:8089
             name: 10.0.0.1:8089
@@ -2953,8 +2987,8 @@
               unhealthy: 1
               last_passed: false
             downtime: 262925617
-            downstart: 2019-10-01T11:09:21.602Z
-            selected: 2019-10-01T15:01:25Z
+            downstart: 2022-06-28T11:09:21.602Z
+            selected: 2022-06-28T15:01:25Z
         keepalive: 0
         zombies: 0
         zone: trac-backend
@@ -2967,6 +3001,10 @@
             weight: 5
             state: up
             active: 0
+            ssl:
+              handshakes: 620311
+              handshakes_failed: 3432
+              session_reuses: 36442
             requests: 667231
             header_time: 20
             response_time: 36
@@ -2991,8 +3029,8 @@
               unhealthy: 0
               last_passed: true
             downtime: 0
-            downstart: 2019-10-01T11:09:21.602Z
-            selected: 2019-10-01T15:01:25Z
+            downstart: 2022-06-28T11:09:21.602Z
+            selected: 2022-06-28T15:01:25Z
           - id: 1
             server: 10.0.0.1:8089
             name: 10.0.0.1:8089
@@ -3019,8 +3057,8 @@
               unhealthy: 1
               last_passed: false
             downtime: 262925617
-            downstart: 2019-10-01T11:09:21.602Z
-            selected: 2019-10-01T15:01:25Z
+            downstart: 2022-06-28T11:09:21.602Z
+            selected: 2022-06-28T15:01:25Z
         keepalive: 0
         zombies: 0
         zone: hg-backend
@@ -3071,6 +3109,10 @@
             weight: 5
             state: up
             active: 0
+            ssl:
+              handshakes: 620311
+              handshakes_failed: 3432
+              session_reuses: 36442
             max_conns: 20
             requests: 667231
             header_time: 20
@@ -3096,8 +3138,8 @@
               unhealthy: 0
               last_passed: true
             downtime: 0
-            downstart: 2019-10-01T11:09:21.602Z
-            selected: 2019-10-01T15:01:25Z
+            downstart: 2022-06-28T11:09:21.602Z
+            selected: 2022-06-28T15:01:25Z
           - id: 1
             server: 10.0.0.1:8089
             name: 10.0.0.1:8089
@@ -3125,8 +3167,8 @@
               unhealthy: 1
               last_passed: false
             downtime: 262925617
-            downstart: 2019-10-01T11:09:21.602Z
-            selected: 2019-10-01T15:01:25Z
+            downstart: 2022-06-28T11:09:21.602Z
+            selected: 2022-06-28T15:01:25Z
         keepalive: 0
         zombies: 0
         zone: upstream_backend
@@ -3189,6 +3231,22 @@
         type: integer
         description: The current number of active connections.
         readOnly: true
+      ssl:
+        type: object
+        readOnly: true
+        properties:
+          handshakes:
+            type: integer
+            description: The total number of successful SSL handshakes.
+            readOnly: true
+          handshakes_failed:
+            type: integer
+            description: The total number of failed SSL handshakes.
+            readOnly: true
+          session_reuses:
+            type: integer
+            description: The total number of session reuses during SSL handshake.
+            readOnly: true
       max_conns:
         type: integer
         description: The
@@ -3496,6 +3554,10 @@
         discarded: 0
         received: 28988975
         sent: 3879346317
+        ssl:
+          handshakes: 76455
+          handshakes_failed: 432
+          session_reuses: 28770
       dns:
         processing: 1
         connections: 155569
@@ -3507,6 +3569,10 @@
         discarded: 0
         received: 4200363
         sent: 20489184
+        ssl:
+          handshakes: 2040
+          handshakes_failed: 23
+          session_reuses: 65
   NginxStreamServerZone:
     title: Stream Server Zone
     type: object
@@ -3552,6 +3618,22 @@
       sent:
         type: integer
         description: The total number of bytes sent to clients.
+      ssl:
+        type: object
+        readOnly: true
+        properties:
+          handshakes:
+            type: integer
+            description: The total number of successful SSL handshakes.
+            readOnly: true
+          handshakes_failed:
+            type: integer
+            description: The total number of failed SSL handshakes.
+            readOnly: true
+          session_reuses:
+            type: integer
+            description: The total number of session reuses during SSL handshake.
+            readOnly: true
     example:
       dns:
         processing: 1
@@ -3564,6 +3646,10 @@
         discarded: 0
         received: 4200363
         sent: 20489184
+        ssl:
+          handshakes: 76455
+          handshakes_failed: 432
+          session_reuses: 28770
   NginxStreamLimitConnZonesMap:
     title: Stream limit_conns
     description: |
@@ -3608,6 +3694,10 @@
             weight: 5
             state: up
             active: 0
+            ssl:
+              handshakes: 1045
+              handshakes_failed: 89
+              session_reuses: 321
             max_conns: 30
             connecions: 1231
             sent: 251946292
@@ -3620,8 +3710,8 @@
               unhealthy: 0
               last_passed: true
             downtime: 0
-            downstart: 2019-10-01T11:09:21.602Z
-            selected: 2019-10-01T15:01:25Z
+            downstart: 2022-06-28T11:09:21.602Z
+            selected: 2022-06-28T15:01:25Z
           - id: 1
             server: 10.0.0.1:12346
             name: 10.0.0.1:12346
@@ -3641,8 +3731,8 @@
               unhealthy: 1
               last_passed: false
             downtime: 262925617
-            downstart: 2019-10-01T11:09:21.602Z
-            selected: 2019-10-01T15:01:25Z
+            downstart: 2022-06-28T11:09:21.602Z
+            selected: 2022-06-28T15:01:25Z
         zombies: 0
         zone: mysql_backends
       dns:
@@ -3654,6 +3744,10 @@
             weight: 5
             state: up
             active: 0
+            ssl:
+              handshakes: 5268
+              handshakes_failed: 121
+              session_reuses: 854
             max_conns: 30
             connections: 667231
             sent: 251946292
@@ -3666,8 +3760,8 @@
               unhealthy: 0
               last_passed: true
             downtime: 0
-            downstart: 2019-10-01T11:09:21.602Z
-            selected: 2019-10-01T15:01:25Z
+            downstart: 2022-06-28T11:09:21.602Z
+            selected: 2022-06-28T15:01:25Z
           - id: 1
             server: 10.0.0.1:12348
             name: 10.0.0.1:12348
@@ -3687,8 +3781,8 @@
               unhealthy: 1
               last_passed: false
             downtime: 262925617
-            downstart: 2019-10-01T11:09:21.602Z
-            selected: 2019-10-01T15:01:25Z
+            downstart: 2022-06-28T11:09:21.602Z
+            selected: 2022-06-28T15:01:25Z
         zombies: 0
         zone: dns
   NginxStreamUpstream:
@@ -3716,6 +3810,10 @@
             weight: 5
             state: up
             active: 0
+            ssl:
+              handshakes: 200
+              handshakes_failed: 4
+              session_reuses: 189
             max_conns: 50
             connections: 667231
             sent: 251946292
@@ -3728,8 +3826,8 @@
               unhealthy: 0
               last_passed: true
             downtime: 0
-            downstart: 2019-10-01T11:09:21.602Z
-            selected: 2019-10-01T15:01:25Z
+            downstart: 2022-06-28T11:09:21.602Z
+            selected: 2022-06-28T15:01:25Z
           - id: 1
             server: 10.0.0.1:12348
             name: 10.0.0.1:12348
@@ -3749,8 +3847,8 @@
               unhealthy: 1
               last_passed: false
             downtime: 262925617
-            downstart: 2019-10-01T11:09:21.602Z
-            selected: 2019-10-01T15:01:25Z
+            downstart: 2022-06-28T11:09:21.602Z
+            selected: 2022-06-28T15:01:25Z
         zombies: 0
         zone: dns
   NginxStreamUpstreamPeerMap:
@@ -3811,6 +3909,22 @@
         type: integer
         description: The current number of connections.
         readOnly: true
+      ssl:
+        type: object
+        readOnly: true
+        properties:
+          handshakes:
+            type: integer
+            description: The total number of successful SSL handshakes.
+            readOnly: true
+          handshakes_failed:
+            type: integer
+            description: The total number of failed SSL handshakes.
+            readOnly: true
+          session_reuses:
+            type: integer
+            description: The total number of session reuses during SSL handshake.
+            readOnly: true
       max_conns:
         type: integer
         description: The