{
    "directives": [
        {
            "name": "accept_mutex",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "events"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#accept_mutex",
            "doc": "\nIf accept_mutex is enabled,\nworker processes will accept new connections by turn.\nOtherwise, all worker processes will be notified about new connections,\nand if volume of new connections is low, some of the worker processes\nmay just waste system resources.\n",
            "example": ""
        },
        {
            "name": "accept_mutex_delay",
            "value": "time",
            "type": "string",
            "context": [
                "events"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#accept_mutex_delay",
            "doc": "\nIf accept_mutex is enabled, specifies the maximum time\nduring which a worker process will try to restart accepting new\nconnections if another worker process is currently accepting\nnew connections.\n",
            "example": ""
        },
        {
            "name": "daemon",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#daemon",
            "doc": "\nDetermines whether nginx should become a daemon.\nMainly used during development.\n",
            "example": ""
        },
        {
            "name": "debug_connection",
            "value": "\"address\" | \"CIDR\" | \"unix:\"",
            "type": "\"address\" | \"CIDR\" | \"unix:\"",
            "context": [
                "events"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#debug_connection",
            "doc": "\nEnables debugging log for selected client connections.\nOther connections will use logging level set by the\nerror_log directive.\nDebugged connections are specified by IPv4 or IPv6 (1.3.0, 1.2.1)\naddress or network.\nA connection may also be specified using a hostname.\nFor connections using UNIX-domain sockets (1.3.0, 1.2.1),\ndebugging log is enabled by the “unix:” parameter.\n",
            "example": "events {\n    debug_connection 127.0.0.1;\n    debug_connection localhost;\n    debug_connection 192.0.2.0/24;\n    debug_connection ::1;\n    debug_connection 2001:0db8::/32;\n    debug_connection unix:;\n    ...\n}\n"
        },
        {
            "name": "debug_points",
            "value": "\"abort\" | \"stop\"",
            "type": "\"abort\" | \"stop\"",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#debug_points",
            "doc": "\nThis directive is used for debugging.\n",
            "example": ""
        },
        {
            "name": "env",
            "value": "variable[=value]",
            "type": "any",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#env",
            "doc": "\nBy default, nginx removes all environment variables inherited\nfrom its parent process except the TZ variable.\nThis directive allows preserving some of the inherited variables,\nchanging their values, or creating new environment variables.\nThese variables are then:\n",
            "example": "env MALLOC_OPTIONS;\nenv PERL5LIB=/data/site/modules;\nenv OPENSSL_ALLOW_PROXY_CERTS=1;\n"
        },
        {
            "name": "error_log",
            "value": "file [level]",
            "type": "any",
            "context": [
                "main",
                "http",
                "mail",
                "stream",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#error_log",
            "doc": "\nConfigures logging.\nSeveral logs can be specified on the same configuration level (1.5.2).\nIf on the main configuration level writing a log to a file\nis not explicitly defined, the default file will be used.\n",
            "example": ""
        },
        {
            "name": "events",
            "value": "{ ... }",
            "type": "any",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#events",
            "doc": "\nProvides the configuration file context in which the directives that\naffect connection processing are specified.\n",
            "example": ""
        },
        {
            "name": "include",
            "value": "\"file\" | \"mask\"",
            "type": "\"file\" | \"mask\"",
            "context": [
                "any"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#include",
            "doc": "\nIncludes another file, or files matching the\nspecified mask, into configuration.\nIncluded files should consist of\nsyntactically correct directives and blocks.\n",
            "example": "include mime.types;\ninclude vhosts/*.conf;\n"
        },
        {
            "name": "load_module",
            "value": "file",
            "type": "any",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#load_module",
            "doc": "\nLoads a dynamic module.\n",
            "example": "load_module modules/ngx_mail_module.so;\n"
        },
        {
            "name": "lock_file",
            "value": "file",
            "type": "any",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#lock_file",
            "doc": "\nnginx uses the locking mechanism to implement accept_mutex\nand serialize access to shared memory.\nOn most systems the locks are implemented using atomic operations,\nand this directive is ignored.\nOn other systems the “lock file” mechanism is used.\nThis directive specifies a prefix for the names of lock files.\n",
            "example": ""
        },
        {
            "name": "master_process",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#master_process",
            "doc": "\nDetermines whether worker processes are started.\nThis directive is intended for nginx developers.\n",
            "example": ""
        },
        {
            "name": "multi_accept",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "events"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#multi_accept",
            "doc": "\nIf multi_accept is disabled, a worker process\nwill accept one new connection at a time.\nOtherwise, a worker process\nwill accept all new connections at a time.\n",
            "example": ""
        },
        {
            "name": "pcre_jit",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#pcre_jit",
            "doc": "\nEnables or disables the use of “just-in-time compilation” (PCRE JIT)\nfor the regular expressions known by the time of configuration parsing.\n",
            "example": ""
        },
        {
            "name": "pid",
            "value": "file",
            "type": "any",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#pid",
            "doc": "\nDefines a file that will store the process ID of the main process.\n",
            "example": ""
        },
        {
            "name": "ssl_engine",
            "value": "device",
            "type": "any",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#ssl_engine",
            "doc": "\nDefines the name of the hardware SSL accelerator.\n",
            "example": ""
        },
        {
            "name": "thread_pool",
            "value": "name    threads=number    [max_queue=number]",
            "type": "any",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#thread_pool",
            "doc": "\nDefines the name and parameters of a thread pool\nused for multi-threaded reading and sending of files\nwithout blocking\nworker processes.\n",
            "example": ""
        },
        {
            "name": "timer_resolution",
            "value": "interval",
            "type": "any",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#timer_resolution",
            "doc": "\nReduces timer resolution in worker processes, thus reducing the\nnumber of gettimeofday() system calls made.\nBy default, gettimeofday() is called each time\na kernel event is received.\nWith reduced resolution, gettimeofday() is only\ncalled once per specified interval.\n",
            "example": "timer_resolution 100ms;\n"
        },
        {
            "name": "use",
            "value": "method",
            "type": "any",
            "context": [
                "events"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#use",
            "doc": "\nSpecifies the connection processing\nmethod to use.\nThere is normally no need to specify it explicitly, because nginx will\nby default use the most efficient method.\n",
            "example": ""
        },
        {
            "name": "user",
            "value": "user [group]",
            "type": "any",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#user",
            "doc": "\nDefines user and group\ncredentials used by worker processes.\nIf group is omitted, a group whose name equals\nthat of user is used.\n",
            "example": ""
        },
        {
            "name": "worker_aio_requests",
            "value": "number",
            "type": "any",
            "context": [
                "events"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#worker_aio_requests",
            "doc": "\nWhen using aio\nwith the epoll\nconnection processing method, sets the maximum number of\noutstanding asynchronous I/O operations\nfor a single worker process.\n",
            "example": ""
        },
        {
            "name": "worker_connections",
            "value": "number",
            "type": "any",
            "context": [
                "events"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#worker_connections",
            "doc": "\nSets the maximum number of simultaneous connections that\ncan be opened by a worker process.\n",
            "example": ""
        },
        {
            "name": "worker_cpu_affinity",
            "value": "cpumask ...worker_cpu_affinity auto [cpumask]",
            "type": "any",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#worker_cpu_affinity",
            "doc": "\nBinds worker processes to the sets of CPUs.\nEach CPU set is represented by a bitmask of allowed CPUs.\nThere should be a separate set defined for each of the worker processes.\nBy default, worker processes are not bound to any specific CPUs.\n",
            "example": "worker_processes    4;\nworker_cpu_affinity 0001 0010 0100 1000;\nworker_processes    2;\nworker_cpu_affinity 0101 1010;\nworker_processes auto;\nworker_cpu_affinity auto;\nworker_cpu_affinity auto 01010101;\n"
        },
        {
            "name": "worker_priority",
            "value": "number",
            "type": "any",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#worker_priority",
            "doc": "\nDefines the scheduling priority for worker processes like it is\ndone by the nice command: a negative\nnumber\nmeans higher priority.\nAllowed range normally varies from -20 to 20.\n",
            "example": "worker_priority -10;\n"
        },
        {
            "name": "worker_processes",
            "value": "\"number\" | \"auto\"",
            "type": "\"number\" | \"auto\"",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#worker_processes",
            "doc": "\nDefines the number of worker processes.\n",
            "example": ""
        },
        {
            "name": "worker_rlimit_core",
            "value": "size",
            "type": "string",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#worker_rlimit_core",
            "doc": "\nChanges the limit on the largest size of a core file\n(RLIMIT_CORE) for worker processes.\nUsed to increase the limit without restarting the main process.\n",
            "example": ""
        },
        {
            "name": "worker_rlimit_nofile",
            "value": "number",
            "type": "any",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#worker_rlimit_nofile",
            "doc": "\nChanges the limit on the maximum number of open files\n(RLIMIT_NOFILE) for worker processes.\nUsed to increase the limit without restarting the main process.\n",
            "example": ""
        },
        {
            "name": "worker_shutdown_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#worker_shutdown_timeout",
            "doc": "\nConfigures a timeout for a graceful shutdown of worker processes.\nWhen the time expires,\nnginx will try to close all the connections currently open\nto facilitate shutdown.\n",
            "example": ""
        },
        {
            "name": "working_directory",
            "value": "directory",
            "type": "any",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_core_module.html#working_directory",
            "doc": "\nDefines the current working directory for a worker process.\nIt is primarily used when writing a core-file, in which case\na worker process should have write permission for the\nspecified directory.\n",
            "example": ""
        },
        {
            "name": "absolute_redirect",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#absolute_redirect",
            "doc": "\nIf disabled, redirects issued by nginx will be relative.\n",
            "example": ""
        },
        {
            "name": "aio",
            "value": "\"on\" | \"off\" | \"threads[=pool]\"",
            "type": "\"on\" | \"off\" | \"threads[=pool]\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#aio",
            "doc": "\nEnables or disables the use of asynchronous file I/O (AIO)\non FreeBSD and Linux:\n",
            "example": "location /video/ {\n    aio            on;\n    output_buffers 1 64k;\n}\noptions VFS_AIO\nkldload aio\nlocation /video/ {\n    aio            on;\n    directio       512;\n    output_buffers 1 128k;\n}\nlocation /video/ {\n    sendfile       on;\n    aio            on;\n    directio       8m;\n}\nlocation /video/ {\n    sendfile       on;\n    aio            threads;\n}\naio threads=pool$disk;\n"
        },
        {
            "name": "aio_write",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#aio_write",
            "doc": "\nIf aio is enabled, specifies whether it is used for writing files.\nCurrently, this only works when using\naio threads\nand is limited to writing temporary files\nwith data received from proxied servers.\n",
            "example": ""
        },
        {
            "name": "alias",
            "value": "path",
            "type": "string",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#alias",
            "doc": "\nDefines a replacement for the specified location.\nFor example, with the following configuration\n",
            "example": "location /i/ {\n    alias /data/w3/images/;\n}\nlocation ~ ^/users/(.+\\.(?:gif|jpe?g|png))$ {\n    alias /data/w3/images/$1;\n}\nlocation /images/ {\n    alias /data/w3/images/;\n}\nlocation /images/ {\n    root /data/w3;\n}\n"
        },
        {
            "name": "auth_delay",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#auth_delay",
            "doc": "\nDelays processing of unauthorized requests with 401 response code\nto prevent timing attacks when access is limited by\npassword, by the\nresult of subrequest,\nor by JWT.\n",
            "example": ""
        },
        {
            "name": "chunked_transfer_encoding",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#chunked_transfer_encoding",
            "doc": "\nAllows disabling chunked transfer encoding in HTTP/1.1.\nIt may come in handy when using a software failing to support\nchunked encoding despite the standard’s requirement.\n",
            "example": ""
        },
        {
            "name": "client_body_buffer_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_buffer_size",
            "doc": "\nSets buffer size for reading client request body.\nIn case the request body is larger than the buffer,\nthe whole body or only its part is written to a\ntemporary file.\nBy default, buffer size is equal to two memory pages.\nThis is 8K on x86, other 32-bit platforms, and x86-64.\nIt is usually 16K on other 64-bit platforms.\n",
            "example": ""
        },
        {
            "name": "client_body_in_file_only",
            "value": "\"on\" | \"clean\" | \"off\"",
            "type": "\"on\" | \"clean\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_in_file_only",
            "doc": "\nDetermines whether nginx should save the entire client request body\ninto a file.\nThis directive can be used during debugging, or when using the\n$request_body_file\nvariable, or the\n$r->request_body_file\nmethod of the module\nngx_http_perl_module.\n",
            "example": ""
        },
        {
            "name": "client_body_in_single_buffer",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_in_single_buffer",
            "doc": "\nDetermines whether nginx should save the entire client request body\nin a single buffer.\nThe directive is recommended when using the\n$request_body\nvariable, to save the number of copy operations involved.\n",
            "example": ""
        },
        {
            "name": "client_body_temp_path",
            "value": "path    [level1    [level2    [level3]]]",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_temp_path",
            "doc": "\nDefines a directory for storing temporary files holding client request bodies.\nUp to three-level subdirectory hierarchy can be used under the specified\ndirectory.\nFor example, in the following configuration\n",
            "example": "client_body_temp_path /spool/nginx/client_temp 1 2;\n/spool/nginx/client_temp/7/45/00000123457\n"
        },
        {
            "name": "client_body_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_timeout",
            "doc": "\nDefines a timeout for reading client request body.\nThe timeout is set only for a period between two successive read operations,\nnot for the transmission of the whole request body.\nIf a client does not transmit anything within this time, the\nrequest is terminated with the\n408 (Request Time-out)\nerror.\n",
            "example": ""
        },
        {
            "name": "client_header_buffer_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#client_header_buffer_size",
            "doc": "\nSets buffer size for reading client request header.\nFor most requests, a buffer of 1K bytes is enough.\nHowever, if a request includes long cookies, or comes from a WAP client,\nit may not fit into 1K.\nIf a request line or a request header field does not fit into\nthis buffer then larger buffers, configured by the\nlarge_client_header_buffers directive,\nare allocated.\n",
            "example": ""
        },
        {
            "name": "client_header_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#client_header_timeout",
            "doc": "\nDefines a timeout for reading client request header.\nIf a client does not transmit the entire header within this time, the\nrequest is terminated with the\n408 (Request Time-out)\nerror.\n",
            "example": ""
        },
        {
            "name": "client_max_body_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size",
            "doc": "\nSets the maximum allowed size of the client request body.\nIf the size in a request exceeds the configured value, the\n413 (Request Entity Too Large)\nerror is returned to the client.\nPlease be aware that\nbrowsers cannot correctly display\nthis error.\nSetting size to 0 disables checking of client\nrequest body size.\n",
            "example": ""
        },
        {
            "name": "connection_pool_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#connection_pool_size",
            "doc": "\nAllows accurate tuning of per-connection memory allocations.\nThis directive has minimal impact on performance\nand should not generally be used.\nBy default, the size is equal to\n256 bytes on 32-bit platforms and 512 bytes on 64-bit platforms.\n",
            "example": ""
        },
        {
            "name": "default_type",
            "value": "mime-type",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#default_type",
            "doc": "\nDefines the default MIME type of a response.\nMapping of file name extensions to MIME types can be set\nwith the types directive.\n",
            "example": ""
        },
        {
            "name": "directio",
            "value": "\"size\" | \"off\"",
            "type": "\"size\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#directio",
            "doc": "\nEnables the use of\nthe O_DIRECT flag (FreeBSD, Linux),\nthe F_NOCACHE flag (macOS),\nor the directio() function (Solaris),\nwhen reading files that are larger than or equal to\nthe specified size.\nThe directive automatically disables (0.7.15) the use of\nsendfile\nfor a given request.\nIt can be useful for serving large files:\n",
            "example": "directio 4m;\n"
        },
        {
            "name": "directio_alignment",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#directio_alignment",
            "doc": "\nSets the alignment for\ndirectio.\nIn most cases, a 512-byte alignment is enough.\nHowever, when using XFS under Linux, it needs to be increased to 4K.\n",
            "example": ""
        },
        {
            "name": "disable_symlinks",
            "value": "\"offdisable_symlinks     on\" | \"if_not_owner    [from=part]\"",
            "type": "\"offdisable_symlinks     on\" | \"if_not_owner    [from=part]\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#disable_symlinks",
            "doc": "\nDetermines how symbolic links should be treated when opening files:\n",
            "example": "disable_symlinks on from=$document_root;\n"
        },
        {
            "name": "error_page",
            "value": "code ...    [=[response]]    uri",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#error_page",
            "doc": "\nDefines the URI that will be shown for the specified errors.\nA uri value can contain variables.\n",
            "example": "error_page 404             /404.html;\nerror_page 500 502 503 504 /50x.html;\nerror_page 404 =200 /empty.gif;\nerror_page 404 = /404.php;\nlocation / {\n    error_page 404 = @fallback;\n}\n\nlocation @fallback {\n    proxy_pass http://backend;\n}\nerror_page 403      http://example.com/forbidden.html;\nerror_page 404 =301 http://example.com/notfound.html;\n"
        },
        {
            "name": "etag",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#etag",
            "doc": "\nEnables or disables automatic generation of the “ETag”\nresponse header field for static resources.\n",
            "example": ""
        },
        {
            "name": "http",
            "value": "{ ... }",
            "type": "any",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#http",
            "doc": "\nProvides the configuration file context in which the HTTP server directives\nare specified.\n",
            "example": ""
        },
        {
            "name": "if_modified_since",
            "value": "\"off\" | \"exact\" | \"before\"",
            "type": "\"off\" | \"exact\" | \"before\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#if_modified_since",
            "doc": "\nSpecifies how to compare modification time of a response\nwith the time in the\n“If-Modified-Since”\nrequest header field:\n\n",
            "example": ""
        },
        {
            "name": "ignore_invalid_headers",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#ignore_invalid_headers",
            "doc": "\nControls whether header fields with invalid names should be ignored.\nValid names are composed of English letters, digits, hyphens, and possibly\nunderscores (as controlled by the underscores_in_headers\ndirective).\n",
            "example": ""
        },
        {
            "name": "internal",
            "value": "",
            "type": "any",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#internal",
            "doc": "\nSpecifies that a given location can only be used for internal requests.\nFor external requests, the client error\n404 (Not Found)\nis returned.\nInternal requests are the following:\n\n",
            "example": "error_page 404 /404.html;\n\nlocation = /404.html {\n    internal;\n}\n"
        },
        {
            "name": "keepalive_disable",
            "value": "\"none\" | string",
            "type": "\"none\" | string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_disable",
            "doc": "\nDisables keep-alive connections with misbehaving browsers.\nThe browser parameters specify which\nbrowsers will be affected.\nThe value msie6 disables keep-alive connections\nwith old versions of MSIE, once a POST request is received.\nThe value safari disables keep-alive connections\nwith Safari and Safari-like browsers on macOS and macOS-like\noperating systems.\nThe value none enables keep-alive connections\nwith all browsers.\n",
            "example": ""
        },
        {
            "name": "keepalive_requests",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_requests",
            "doc": "\nSets the maximum number of requests that can be\nserved through one keep-alive connection.\nAfter the maximum number of requests are made, the connection is closed.\n",
            "example": ""
        },
        {
            "name": "keepalive_time",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_time",
            "doc": "\nLimits the maximum time during which\nrequests can be processed through one keep-alive connection.\nAfter this time is reached, the connection is closed\nfollowing the subsequent request processing.\n",
            "example": ""
        },
        {
            "name": "keepalive_timeout",
            "value": "timeout    [header_timeout]",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout",
            "doc": "\nThe first parameter sets a timeout during which a keep-alive\nclient connection will stay open on the server side.\nThe zero value disables keep-alive client connections.\nThe optional second parameter sets a value in the\n“Keep-Alive: timeout=time”\nresponse header field.\nTwo parameters may differ.\n",
            "example": ""
        },
        {
            "name": "large_client_header_buffers",
            "value": "number size",
            "type": "any",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#large_client_header_buffers",
            "doc": "\nSets the maximum number and size of\nbuffers used for reading large client request header.\nA request line cannot exceed the size of one buffer, or the\n414 (Request-URI Too Large)\nerror is returned to the client.\nA request header field cannot exceed the size of one buffer as well, or the\n400 (Bad Request)\nerror is returned to the client.\nBuffers are allocated only on demand.\nBy default, the buffer size is equal to 8K bytes.\nIf after the end of request processing a connection is transitioned\ninto the keep-alive state, these buffers are released.\n",
            "example": ""
        },
        {
            "name": "limit_except",
            "value": "method ... { ... }",
            "type": "any",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#limit_except",
            "doc": "\nLimits allowed HTTP methods inside a location.\nThe method parameter can be one of the following:\nGET,\nHEAD,\nPOST,\nPUT,\nDELETE,\nMKCOL,\nCOPY,\nMOVE,\nOPTIONS,\nPROPFIND,\nPROPPATCH,\nLOCK,\nUNLOCK,\nor\nPATCH.\nAllowing the GET method makes the\nHEAD method also allowed.\nAccess to other methods can be limited using the\nngx_http_access_module,\nngx_http_auth_basic_module,\nand\nngx_http_auth_jwt_module\n(1.13.10)\nmodules directives:\n",
            "example": "limit_except GET {\n    allow 192.168.1.0/32;\n    deny  all;\n}\n"
        },
        {
            "name": "limit_rate",
            "value": "rate",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#limit_rate",
            "doc": "\nLimits the rate of response transmission to a client.\nThe rate is specified in bytes per second.\nThe zero value disables rate limiting.\n\nThe limit is set per a request, and so if a client simultaneously opens\ntwo connections, the overall rate will be twice as much\nas the specified limit.\n",
            "example": "map $slow $rate {\n    1     4k;\n    2     8k;\n}\n\nlimit_rate $rate;\nserver {\n\n    if ($slow) {\n        set $limit_rate 4k;\n    }\n\n    ...\n}\n"
        },
        {
            "name": "limit_rate_after",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#limit_rate_after",
            "doc": "\nSets the initial amount after which the further transmission\nof a response to a client will be rate limited.\nParameter value can contain variables (1.17.0).\n",
            "example": "location /flv/ {\n    flv;\n    limit_rate_after 500k;\n    limit_rate       50k;\n}\n"
        },
        {
            "name": "lingering_close",
            "value": "\"off\" | \"on\" | \"always\"",
            "type": "\"off\" | \"on\" | \"always\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#lingering_close",
            "doc": "\nControls how nginx closes client connections.\n",
            "example": ""
        },
        {
            "name": "lingering_time",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#lingering_time",
            "doc": "\nWhen lingering_close is in effect,\nthis directive specifies the maximum time during which nginx\nwill process (read and ignore) additional data coming from a client.\nAfter that, the connection will be closed, even if there will be\nmore data.\n",
            "example": ""
        },
        {
            "name": "lingering_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#lingering_timeout",
            "doc": "\nWhen lingering_close is in effect, this directive specifies\nthe maximum waiting time for more client data to arrive.\nIf data are not received during this time, the connection is closed.\nOtherwise, the data are read and ignored, and nginx starts waiting\nfor more data again.\nThe “wait-read-ignore” cycle is repeated, but no longer than specified by the\nlingering_time directive.\n",
            "example": ""
        },
        {
            "name": "listen",
            "value": "\"address[:port]    [default_server]    [ssl]    [http2\" | \"spdy]    [proxy_protocol]    [setfib=number]    [fastopen=number]    [backlog=number]    [rcvbuf=size]    [sndbuf=size]    [accept_filter=filter]    [deferred]    [bind]    [ipv6only=on\" | \"off]    [reuseport]    [so_keepalive=on\" | \"off\" | \"[keepidle]:[keepintvl]:[keepcnt]]listen     port    [default_server]    [ssl]    [http2\" | \"spdy]    [proxy_protocol]    [setfib=number]    [fastopen=number]    [backlog=number]    [rcvbuf=size]    [sndbuf=size]    [accept_filter=filter]    [deferred]    [bind]    [ipv6only=on\" | \"off]    [reuseport]    [so_keepalive=on\" | \"off\" | \"[keepidle]:[keepintvl]:[keepcnt]]listen     unix:path    [default_server]    [ssl]    [http2\" | \"spdy]    [proxy_protocol]    [backlog=number]    [rcvbuf=size]    [sndbuf=size]    [accept_filter=filter]    [deferred]    [bind]    [so_keepalive=on\" | \"off\" | \"[keepidle]:[keepintvl]:[keepcnt]]\"",
            "type": "\"address[:port]    [default_server]    [ssl]    [http2\" | \"spdy]    [proxy_protocol]    [setfib=number]    [fastopen=number]    [backlog=number]    [rcvbuf=size]    [sndbuf=size]    [accept_filter=filter]    [deferred]    [bind]    [ipv6only=on\" | \"off]    [reuseport]    [so_keepalive=on\" | \"off\" | \"[keepidle]:[keepintvl]:[keepcnt]]listen     port    [default_server]    [ssl]    [http2\" | \"spdy]    [proxy_protocol]    [setfib=number]    [fastopen=number]    [backlog=number]    [rcvbuf=size]    [sndbuf=size]    [accept_filter=filter]    [deferred]    [bind]    [ipv6only=on\" | \"off]    [reuseport]    [so_keepalive=on\" | \"off\" | \"[keepidle]:[keepintvl]:[keepcnt]]listen     unix:path    [default_server]    [ssl]    [http2\" | \"spdy]    [proxy_protocol]    [backlog=number]    [rcvbuf=size]    [sndbuf=size]    [accept_filter=filter]    [deferred]    [bind]    [so_keepalive=on\" | \"off\" | \"[keepidle]:[keepintvl]:[keepcnt]]\"",
            "context": [
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#listen",
            "doc": "\nSets the address and port for IP,\nor the path for a UNIX-domain socket on which\nthe server will accept requests.\nBoth address and port,\nor only address or only port can be specified.\nAn address may also be a hostname, for example:\n",
            "example": "listen 127.0.0.1:8000;\nlisten 127.0.0.1;\nlisten 8000;\nlisten *:8000;\nlisten localhost:8000;\nlisten [::]:8000;\nlisten [::1];\nlisten unix:/var/run/nginx.sock;\nlisten 127.0.0.1 default_server accept_filter=dataready backlog=1024;\n"
        },
        {
            "name": "location",
            "value": "\"[    =\" | \"~\" | \"~*\" | \"^~    ] uri { ... }location @name { ... }\"",
            "type": "\"[    =\" | \"~\" | \"~*\" | \"^~    ] uri { ... }location @name { ... }\"",
            "context": [
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#location",
            "doc": "\nSets configuration depending on a request URI.\n",
            "example": "location = / {\n    [ configuration A ]\n}\n\nlocation / {\n    [ configuration B ]\n}\n\nlocation /documents/ {\n    [ configuration C ]\n}\n\nlocation ^~ /images/ {\n    [ configuration D ]\n}\n\nlocation ~* \\.(gif|jpg|jpeg)$ {\n    [ configuration E ]\n}\nlocation /user/ {\n    proxy_pass http://user.example.com;\n}\n\nlocation = /user {\n    proxy_pass http://login.example.com;\n}\n"
        },
        {
            "name": "log_not_found",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#log_not_found",
            "doc": "\nEnables or disables logging of errors about not found files into\nerror_log.\n",
            "example": ""
        },
        {
            "name": "log_subrequest",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#log_subrequest",
            "doc": "\nEnables or disables logging of subrequests into\naccess_log.\n",
            "example": ""
        },
        {
            "name": "max_ranges",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#max_ranges",
            "doc": "\nLimits the maximum allowed number of ranges in byte-range requests.\nRequests that exceed the limit are processed as if there were no\nbyte ranges specified.\nBy default, the number of ranges is not limited.\nThe zero value disables the byte-range support completely.\n",
            "example": ""
        },
        {
            "name": "merge_slashes",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#merge_slashes",
            "doc": "\nEnables or disables compression of two or more adjacent slashes\nin a URI into a single slash.\n",
            "example": "location /scripts/ {\n    ...\n}\n"
        },
        {
            "name": "msie_padding",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#msie_padding",
            "doc": "\nEnables or disables adding comments to responses for MSIE clients with status\ngreater than 400 to increase the response size to 512 bytes.\n",
            "example": ""
        },
        {
            "name": "msie_refresh",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#msie_refresh",
            "doc": "\nEnables or disables issuing refreshes instead of redirects for MSIE clients.\n",
            "example": ""
        },
        {
            "name": "open_file_cache",
            "value": "offopen_file_cache max=N[inactive=time]",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#open_file_cache",
            "doc": "\nConfigures a cache that can store:\n",
            "example": "open_file_cache          max=1000 inactive=20s;\nopen_file_cache_valid    30s;\nopen_file_cache_min_uses 2;\nopen_file_cache_errors   on;\n"
        },
        {
            "name": "open_file_cache_errors",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#open_file_cache_errors",
            "doc": "\nEnables or disables caching of file lookup errors by\nopen_file_cache.\n",
            "example": ""
        },
        {
            "name": "open_file_cache_min_uses",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#open_file_cache_min_uses",
            "doc": "\nSets the minimum number of file accesses during\nthe period configured by the inactive parameter\nof the open_file_cache directive, required for a file\ndescriptor to remain open in the cache.\n",
            "example": ""
        },
        {
            "name": "open_file_cache_valid",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#open_file_cache_valid",
            "doc": "\nSets a time after which\nopen_file_cache\nelements should be validated.\n\n",
            "example": ""
        },
        {
            "name": "output_buffers",
            "value": "number size",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#output_buffers",
            "doc": "\nSets the number and size of the\nbuffers used for reading a response from a disk.\n",
            "example": ""
        },
        {
            "name": "port_in_redirect",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#port_in_redirect",
            "doc": "\nEnables or disables specifying the port in\nabsolute redirects issued by nginx.\n",
            "example": ""
        },
        {
            "name": "postpone_output",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#postpone_output",
            "doc": "\nIf possible, the transmission of client data will be postponed until\nnginx has at least size bytes of data to send.\nThe zero value disables postponing data transmission.\n",
            "example": ""
        },
        {
            "name": "read_ahead",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#read_ahead",
            "doc": "\nSets the amount of pre-reading for the kernel when working with file.\n",
            "example": ""
        },
        {
            "name": "recursive_error_pages",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#recursive_error_pages",
            "doc": "\nEnables or disables doing several redirects using the\nerror_page\ndirective.\nThe number of such redirects is limited.\n",
            "example": ""
        },
        {
            "name": "request_pool_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#request_pool_size",
            "doc": "\nAllows accurate tuning of per-request memory allocations.\nThis directive has minimal impact on performance\nand should not generally be used.\n",
            "example": ""
        },
        {
            "name": "reset_timedout_connection",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#reset_timedout_connection",
            "doc": "\nEnables or disables resetting timed out connections\nand connections\nclosed\nwith the non-standard code 444 (1.15.2).\nThe reset is performed as follows.\nBefore closing a socket, the\nSO_LINGER\noption is set on it with a timeout value of 0.\nWhen the socket is closed, TCP RST is sent to the client, and all memory\noccupied by this socket is released.\nThis helps avoid keeping an already closed socket with filled buffers\nin a FIN_WAIT1 state for a long time.\n",
            "example": ""
        },
        {
            "name": "resolver",
            "value": "\"address ...    [valid=time]    [ipv6=on\" | \"off]    [status_zone=zone]\"",
            "type": "\"address ...    [valid=time]    [ipv6=on\" | \"off]    [status_zone=zone]\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#resolver",
            "doc": "\nConfigures name servers used to resolve names of upstream servers\ninto addresses, for example:\n",
            "example": "resolver 127.0.0.1 [::1]:5353;\nresolver 127.0.0.1 [::1]:5353 valid=30s;\n"
        },
        {
            "name": "resolver_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#resolver_timeout",
            "doc": "\nSets a timeout for name resolution, for example:\n",
            "example": "resolver_timeout 5s;\n"
        },
        {
            "name": "root",
            "value": "path",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#root",
            "doc": "\nSets the root directory for requests.\nFor example, with the following configuration\n",
            "example": "location /i/ {\n    root /data/w3;\n}\n"
        },
        {
            "name": "satisfy",
            "value": "\"all\" | \"any\"",
            "type": "\"all\" | \"any\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#satisfy",
            "doc": "\nAllows access if all (all) or at least one\n(any) of the\nngx_http_access_module,\nngx_http_auth_basic_module,\nngx_http_auth_request_module,\nor\nngx_http_auth_jwt_module\nmodules allow access.\n",
            "example": "location / {\n    satisfy any;\n\n    allow 192.168.1.0/32;\n    deny  all;\n\n    auth_basic           \"closed site\";\n    auth_basic_user_file conf/htpasswd;\n}\n"
        },
        {
            "name": "send_lowat",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#send_lowat",
            "doc": "\nIf the directive is set to a non-zero value, nginx will try to minimize\nthe number of send operations on client sockets by using either\nNOTE_LOWAT flag of the\nkqueue method\nor the SO_SNDLOWAT socket option.\nIn both cases the specified size is used.\n",
            "example": ""
        },
        {
            "name": "send_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#send_timeout",
            "doc": "\nSets a timeout for transmitting a response to the client.\nThe timeout is set only between two successive write operations,\nnot for the transmission of the whole response.\nIf the client does not receive anything within this time,\nthe connection is closed.\n",
            "example": ""
        },
        {
            "name": "sendfile",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#sendfile",
            "doc": "\nEnables or disables the use of\nsendfile().\n",
            "example": "location /video/ {\n    sendfile       on;\n    tcp_nopush     on;\n    aio            on;\n}\n"
        },
        {
            "name": "sendfile_max_chunk",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#sendfile_max_chunk",
            "doc": "\nLimits the amount of data that can be\ntransferred in a single sendfile() call.\nWithout the limit, one fast connection may seize the worker process entirely.\n",
            "example": ""
        },
        {
            "name": "server",
            "value": "{ ... }",
            "type": "any",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#server",
            "doc": "\nSets configuration for a virtual server.\nThere is no clear separation between IP-based (based on the IP address)\nand name-based (based on the “Host” request header field)\nvirtual servers.\nInstead, the listen directives describe all\naddresses and ports that should accept connections for the server, and the\nserver_name directive lists all server names.\nExample configurations are provided in the\n“How nginx processes a request” document.\n",
            "example": ""
        },
        {
            "name": "server_name",
            "value": "name ...",
            "type": "any",
            "context": [
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#server_name",
            "doc": "\nSets names of a virtual server, for example:\n",
            "example": "server {\n    server_name example.com www.example.com;\n}\nserver {\n    server_name example.com *.example.com www.example.*;\n}\nserver {\n    server_name .example.com;\n}\nserver {\n    server_name www.example.com ~^www\\d+\\.example\\.com$;\n}\nserver {\n    server_name ~^(www\\.)?(.+)$;\n\n    location / {\n        root /sites/$2;\n    }\n}\n\nserver {\n    server_name _;\n\n    location / {\n        root /sites/default;\n    }\n}\nserver {\n    server_name ~^(www\\.)?(?<domain>.+)$;\n\n    location / {\n        root /sites/$domain;\n    }\n}\n\nserver {\n    server_name _;\n\n    location / {\n        root /sites/default;\n    }\n}\nserver {\n    server_name www.example.com \"\";\n}\n"
        },
        {
            "name": "server_name_in_redirect",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#server_name_in_redirect",
            "doc": "\nEnables or disables the use of the primary server name, specified by the\nserver_name directive,\nin absolute redirects issued by nginx.\nWhen the use of the primary server name is disabled, the name from the\n“Host” request header field is used.\nIf this field is not present, the IP address of the server is used.\n",
            "example": ""
        },
        {
            "name": "server_names_hash_bucket_size",
            "value": "size",
            "type": "string",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#server_names_hash_bucket_size",
            "doc": "\nSets the bucket size for the server names hash tables.\nThe default value depends on the size of the processor’s cache line.\nThe details of setting up hash tables are provided in a separate\ndocument.\n",
            "example": ""
        },
        {
            "name": "server_names_hash_max_size",
            "value": "size",
            "type": "string",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#server_names_hash_max_size",
            "doc": "\nSets the maximum size of the server names hash tables.\nThe details of setting up hash tables are provided in a separate\ndocument.\n",
            "example": ""
        },
        {
            "name": "server_tokens",
            "value": "\"on\" | \"off\" | \"build\" | string",
            "type": "\"on\" | \"off\" | \"build\" | string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#server_tokens",
            "doc": "\nEnables or disables emitting nginx version on error pages and in the\n“Server” response header field.\n",
            "example": ""
        },
        {
            "name": "subrequest_output_buffer_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#subrequest_output_buffer_size",
            "doc": "\nSets the size of the buffer used for\nstoring the response body of a subrequest.\nBy default, the buffer size is equal to one memory page.\nThis is either 4K or 8K, depending on a platform.\nIt can be made smaller, however.\n",
            "example": ""
        },
        {
            "name": "tcp_nodelay",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#tcp_nodelay",
            "doc": "\nEnables or disables the use of the TCP_NODELAY option.\nThe option is enabled when a connection is transitioned into the\nkeep-alive state.\nAdditionally, it is enabled on SSL connections,\nfor unbuffered proxying,\nand for WebSocket proxying.\n",
            "example": ""
        },
        {
            "name": "tcp_nopush",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#tcp_nopush",
            "doc": "\nEnables or disables the use of\nthe TCP_NOPUSH socket option on FreeBSD\nor the TCP_CORK socket option on Linux.\nThe options are enabled only when sendfile is used.\nEnabling the option allows\n",
            "example": ""
        },
        {
            "name": "try_files",
            "value": "file ... uritry_files file ... =code",
            "type": "any",
            "context": [
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#try_files",
            "doc": "\nChecks the existence of files in the specified order and uses\nthe first found file for request processing; the processing\nis performed in the current context.\nThe path to a file is constructed from the\nfile parameter\naccording to the\nroot and alias directives.\nIt is possible to check directory’s existence by specifying\na slash at the end of a name, e.g. “$uri/”.\nIf none of the files were found, an internal redirect to the\nuri specified in the last parameter is made.\nFor example:\n",
            "example": "location /images/ {\n    try_files $uri /images/default.gif;\n}\n\nlocation = /images/default.gif {\n    expires 30s;\n}\nlocation / {\n    try_files $uri $uri/index.html $uri.html =404;\n}\nlocation / {\n    try_files /system/maintenance.html\n              $uri $uri/index.html $uri.html\n              @mongrel;\n}\n\nlocation @mongrel {\n    proxy_pass http://mongrel;\n}\nlocation / {\n    try_files $uri $uri/ @drupal;\n}\n\nlocation ~ \\.php$ {\n    try_files $uri @drupal;\n\n    fastcgi_pass ...;\n\n    fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name;\n    fastcgi_param SCRIPT_NAME     $fastcgi_script_name;\n    fastcgi_param QUERY_STRING    $args;\n\n    ... other fastcgi_param's\n}\n\nlocation @drupal {\n    fastcgi_pass ...;\n\n    fastcgi_param SCRIPT_FILENAME /path/to/index.php;\n    fastcgi_param SCRIPT_NAME     /index.php;\n    fastcgi_param QUERY_STRING    q=$uri&$args;\n\n    ... other fastcgi_param's\n}\nlocation / {\n    try_files $uri $uri/ @drupal;\n}\nlocation / {\n    error_page 404 = @drupal;\n    log_not_found off;\n}\nlocation ~ \\.php$ {\n    try_files $uri @drupal;\n\n    fastcgi_pass ...;\n\n    fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name;\n\n    ...\n}\nlocation / {\n    try_files $uri $uri/ @wordpress;\n}\n\nlocation ~ \\.php$ {\n    try_files $uri @wordpress;\n\n    fastcgi_pass ...;\n\n    fastcgi_param SCRIPT_FILENAME /path/to$fastcgi_script_name;\n    ... other fastcgi_param's\n}\n\nlocation @wordpress {\n    fastcgi_pass ...;\n\n    fastcgi_param SCRIPT_FILENAME /path/to/index.php;\n    ... other fastcgi_param's\n}\n"
        },
        {
            "name": "types",
            "value": "{ ... }",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#types",
            "doc": "\nMaps file name extensions to MIME types of responses.\nExtensions are case-insensitive.\nSeveral extensions can be mapped to one type, for example:\n",
            "example": "types {\n    application/octet-stream bin exe dll;\n    application/octet-stream deb;\n    application/octet-stream dmg;\n}\nlocation /download/ {\n    types        { }\n    default_type application/octet-stream;\n}\n"
        },
        {
            "name": "types_hash_bucket_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#types_hash_bucket_size",
            "doc": "\nSets the bucket size for the types hash tables.\nThe details of setting up hash tables are provided in a separate\ndocument.\n",
            "example": ""
        },
        {
            "name": "types_hash_max_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#types_hash_max_size",
            "doc": "\nSets the maximum size of the types hash tables.\nThe details of setting up hash tables are provided in a separate\ndocument.\n",
            "example": ""
        },
        {
            "name": "underscores_in_headers",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#underscores_in_headers",
            "doc": "\nEnables or disables the use of underscores in client request header fields.\nWhen the use of underscores is disabled, request header fields whose names\ncontain underscores are\nmarked as invalid and become subject to the\nignore_invalid_headers directive.\n",
            "example": ""
        },
        {
            "name": "variables_hash_bucket_size",
            "value": "size",
            "type": "string",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#variables_hash_bucket_size",
            "doc": "\nSets the bucket size for the variables hash table.\nThe details of setting up hash tables are provided in a separate\ndocument.\n",
            "example": ""
        },
        {
            "name": "variables_hash_max_size",
            "value": "size",
            "type": "string",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#variables_hash_max_size",
            "doc": "\nSets the maximum size of the variables hash table.\nThe details of setting up hash tables are provided in a separate\ndocument.\n",
            "example": ""
        },
        {
            "name": "allow",
            "value": "\"address\" | \"CIDR\" | \"unix:\" | \"all\"",
            "type": "\"address\" | \"CIDR\" | \"unix:\" | \"all\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_access_module.html#allow",
            "doc": "\nAllows access for the specified network or address.\nIf the special value unix: is specified (1.5.1),\nallows access for all UNIX-domain sockets.\n",
            "example": ""
        },
        {
            "name": "deny",
            "value": "\"address\" | \"CIDR\" | \"unix:\" | \"all\"",
            "type": "\"address\" | \"CIDR\" | \"unix:\" | \"all\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_access_module.html#deny",
            "doc": "\nDenies access for the specified network or address.\nIf the special value unix: is specified (1.5.1),\ndenies access for all UNIX-domain sockets.\n",
            "example": ""
        },
        {
            "name": "add_before_body",
            "value": "uri",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_addition_module.html#add_before_body",
            "doc": "\nAdds the text returned as a result of processing a given subrequest\nbefore the response body.\nAn empty string (\"\") as a parameter cancels addition\ninherited from the previous configuration level.\n",
            "example": ""
        },
        {
            "name": "add_after_body",
            "value": "uri",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_addition_module.html#add_after_body",
            "doc": "\nAdds the text returned as a result of processing a given subrequest\nafter the response body.\nAn empty string (\"\") as a parameter cancels addition\ninherited from the previous configuration level.\n",
            "example": ""
        },
        {
            "name": "addition_types",
            "value": "mime-type ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_addition_module.html#addition_types",
            "doc": "\nAllows adding text in responses with the specified MIME types,\nin addition to “text/html”.\nThe special value “*” matches any MIME type (0.8.29).\n",
            "example": ""
        },
        {
            "name": "api",
            "value": "\"[write=on\" | \"off]\"",
            "type": "\"[write=on\" | \"off]\"",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_api_module.html#api",
            "doc": "\nTurns on the REST API interface in the surrounding location.\nAccess to this location should be\nlimited.\n",
            "example": "http://127.0.0.1/api/7/nginx?fields=version,build\n"
        },
        {
            "name": "status_zone",
            "value": "zone",
            "type": "any",
            "context": [
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_api_module.html#status_zone",
            "doc": "\nEnables collection of virtual\nhttp\nor\nstream\nserver status information in the specified zone.\nSeveral servers may share the same zone.\n",
            "example": ""
        },
        {
            "name": "auth_basic",
            "value": "string | \"off\"",
            "type": "string | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_auth_basic_module.html#auth_basic",
            "doc": "\nEnables validation of user name and password using the\n“HTTP Basic Authentication” protocol.\nThe specified parameter is used as a realm.\nParameter value can contain variables (1.3.10, 1.2.7).\nThe special value off cancels the effect\nof the auth_basic directive\ninherited from the previous configuration level.\n",
            "example": ""
        },
        {
            "name": "auth_basic_user_file",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_auth_basic_module.html#auth_basic_user_file",
            "doc": "\nSpecifies a file that keeps user names and passwords,\nin the following format:\n",
            "example": "# comment\nname1:password1\nname2:password2:comment\nname3:password3\n"
        },
        {
            "name": "auth_jwt",
            "value": "\"string    [token=$variable]\" | \"off\"",
            "type": "\"string    [token=$variable]\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_auth_jwt_module.html#auth_jwt",
            "doc": "\nEnables validation of JSON Web Token.\nThe specified string is used as a realm.\nParameter value can contain variables.\n",
            "example": "auth_jwt \"closed site\" token=$cookie_auth_token;\n"
        },
        {
            "name": "auth_jwt_claim_set",
            "value": "$variable name ...",
            "type": "any",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_auth_jwt_module.html#auth_jwt_claim_set",
            "doc": "\nSets the variable to a JWT claim parameter\nidentified by key names.\nName matching starts from the top level of the JSON tree.\nFor arrays, the variable keeps a list of array elements separated by commas.\n",
            "example": "auth_jwt_claim_set $email info e-mail;\nauth_jwt_claim_set $job info \"job title\";\n"
        },
        {
            "name": "auth_jwt_header_set",
            "value": "$variable name ...",
            "type": "any",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_auth_jwt_module.html#auth_jwt_header_set",
            "doc": "\nSets the variable to a JOSE header parameter\nidentified by key names.\nName matching starts from the top level of the JSON tree.\nFor arrays, the variable keeps a list of array elements separated by commas.\n",
            "example": ""
        },
        {
            "name": "auth_jwt_key_file",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_auth_jwt_module.html#auth_jwt_key_file",
            "doc": "\nSpecifies a file in\nJSON Web Key Set\nformat for validating JWT signature.\nParameter value can contain variables.\n",
            "example": "auth_jwt_key_file conf/keys.json;\nauth_jwt_key_file conf/key.jwk;\n"
        },
        {
            "name": "auth_jwt_key_request",
            "value": "uri",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_auth_jwt_module.html#auth_jwt_key_request",
            "doc": "\nAllows retrieving a\nJSON Web Key Set\nfile from a subrequest for validating JWT signature and\nsets the URI where the subrequest will be sent to.\nParameter value can contain variables.\nTo avoid validation overhead,\nit is recommended to cache the key file:\n",
            "example": "proxy_cache_path /data/nginx/cache levels=1 keys_zone=foo:10m;\n\nserver {\n    ...\n\n    location / {\n        auth_jwt             \"closed site\";\n        auth_jwt_key_request /jwks_uri;\n    }\n\n    location = /jwks_uri {\n        internal;\n        proxy_cache foo;\n        proxy_pass  http://idp.example.com/keys;\n    }\n}\nauth_jwt_key_request /jwks_uri;\nauth_jwt_key_request /jwks2_uri;\n"
        },
        {
            "name": "auth_jwt_leeway",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_auth_jwt_module.html#auth_jwt_leeway",
            "doc": "\nSets the maximum allowable leeway to compensate\nclock skew when verifying the\nexp\nand\nnbf\nJWT claims.\n",
            "example": ""
        },
        {
            "name": "auth_jwt_type",
            "value": "\"signed\" | \"encrypted\" | \"nested\"",
            "type": "\"signed\" | \"encrypted\" | \"nested\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_auth_jwt_module.html#auth_jwt_type",
            "doc": "\nSpecifies which type of JSON Web Token to expect:\nJWS (signed),\nJWE (encrypted),\nor signed and then encrypted\nNested JWT (nested) (1.21.0).\n",
            "example": ""
        },
        {
            "name": "auth_jwt_require",
            "value": "value ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_auth_jwt_module.html#auth_jwt_require",
            "doc": "\nDefines additional conditions for JWT validation.\nThe value can contain text, variables, and their combination.\nThe authentication will succeed only\nif all the values are not empty and are not equal to “0”.\n",
            "example": "map $jwt_claim_iss $valid_jwt_iss {\n    \"good\" 1;\n}\n...\n\nauth_jwt_require $valid_jwt_iss;\n"
        },
        {
            "name": "auth_request",
            "value": "\"uri\" | \"off\"",
            "type": "\"uri\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_auth_request_module.html#auth_request",
            "doc": "\nEnables authorization based on the result of a subrequest and sets\nthe URI to which the subrequest will be sent.\n",
            "example": ""
        },
        {
            "name": "auth_request_set",
            "value": "$variable value",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_auth_request_module.html#auth_request_set",
            "doc": "\nSets the request variable to the given\nvalue after the authorization request completes.\nThe value may contain variables from the authorization request,\nsuch as $upstream_http_*.\n",
            "example": ""
        },
        {
            "name": "autoindex",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_autoindex_module.html#autoindex",
            "doc": "\nEnables or disables the directory listing output.\n",
            "example": ""
        },
        {
            "name": "autoindex_exact_size",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_autoindex_module.html#autoindex_exact_size",
            "doc": "\nFor the HTML format,\nspecifies whether exact file sizes should be output in the directory listing,\nor rather rounded to kilobytes, megabytes, and gigabytes.\n",
            "example": ""
        },
        {
            "name": "autoindex_format",
            "value": "\"html\" | \"xml\" | \"json\" | \"jsonp\"",
            "type": "\"html\" | \"xml\" | \"json\" | \"jsonp\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_autoindex_module.html#autoindex_format",
            "doc": "\nSets the format of a directory listing.\n",
            "example": ""
        },
        {
            "name": "autoindex_localtime",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_autoindex_module.html#autoindex_localtime",
            "doc": "\nFor the HTML format,\nspecifies whether times in the directory listing should be\noutput in the local time zone or UTC.\n",
            "example": ""
        },
        {
            "name": "ancient_browser",
            "value": "string ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_browser_module.html#ancient_browser",
            "doc": "\nIf any of the specified substrings is found in the “User-Agent”\nrequest header field, the browser will be considered ancient.\nThe special string “netscape4” corresponds to the\nregular expression “^Mozilla/[1-4]”.\n",
            "example": ""
        },
        {
            "name": "ancient_browser_value",
            "value": "string",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_browser_module.html#ancient_browser_value",
            "doc": "\nSets a value for the $ancient_browser variables.\n",
            "example": ""
        },
        {
            "name": "modern_browser",
            "value": "browser versionmodern_browser unlisted",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_browser_module.html#modern_browser",
            "doc": "\nSpecifies a version starting from which a browser is considered modern.\nA browser can be any one of the following: msie,\ngecko (browsers based on Mozilla),\nopera, safari,\nor konqueror.\n",
            "example": ""
        },
        {
            "name": "modern_browser_value",
            "value": "string",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_browser_module.html#modern_browser_value",
            "doc": "\nSets a value for the $modern_browser variables.\n",
            "example": ""
        },
        {
            "name": "charset",
            "value": "\"charset\" | \"off\"",
            "type": "\"charset\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_charset_module.html#charset",
            "doc": "\nAdds the specified charset to the “Content-Type”\nresponse header field.\nIf this charset is different from the charset specified\nin the source_charset directive, a conversion is performed.\n",
            "example": "charset $charset;\ncharset_map iso-8859-5 _ { }\n"
        },
        {
            "name": "charset_map",
            "value": "charset1 charset2 { ... }",
            "type": "any",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_charset_module.html#charset_map",
            "doc": "\nDescribes the conversion table from one charset to another.\nA reverse conversion table is built using the same data.\nCharacter codes are given in hexadecimal.\nMissing characters in the range 80-FF are replaced with “?”.\nWhen converting from UTF-8, characters missing in a one-byte charset\nare replaced with “&#XXXX;”.\n",
            "example": "charset_map koi8-r windows-1251 {\n    C0 FE ; # small yu\n    C1 E0 ; # small a\n    C2 E1 ; # small b\n    C3 F6 ; # small ts\n    ...\n}\ncharset_map koi8-r utf-8 {\n    C0 D18E ; # small yu\n    C1 D0B0 ; # small a\n    C2 D0B1 ; # small b\n    C3 D186 ; # small ts\n    ...\n}\n"
        },
        {
            "name": "charset_types",
            "value": "mime-type ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_charset_module.html#charset_types",
            "doc": "\nEnables module processing in responses with the specified MIME types\nin addition to “text/html”.\nThe special value “*” matches any MIME type (0.8.29).\n",
            "example": ""
        },
        {
            "name": "override_charset",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_charset_module.html#override_charset",
            "doc": "\nDetermines whether a conversion should be performed for answers\nreceived from a proxied or a FastCGI/uwsgi/SCGI/gRPC server\nwhen the answers already carry a charset in the “Content-Type”\nresponse header field.\nIf conversion is enabled, a charset specified in the received\nresponse is used as a source charset.\n",
            "example": ""
        },
        {
            "name": "source_charset",
            "value": "charset",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_charset_module.html#source_charset",
            "doc": "\nDefines the source charset of a response.\nIf this charset is different from the charset specified\nin the charset directive, a conversion is performed.\n",
            "example": ""
        },
        {
            "name": "create_full_put_path",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_dav_module.html#create_full_put_path",
            "doc": "\nThe WebDAV specification only allows creating files in already\nexisting directories.\nThis directive allows creating all needed intermediate directories.\n",
            "example": ""
        },
        {
            "name": "dav_access",
            "value": "users:permissions ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_dav_module.html#dav_access",
            "doc": "\nSets access permissions for newly created files and directories, e.g.:\n",
            "example": "dav_access user:rw group:rw all:r;\ndav_access group:rw all:r;\n"
        },
        {
            "name": "dav_methods",
            "value": "\"off\" | string",
            "type": "\"off\" | string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_dav_module.html#dav_methods",
            "doc": "\nAllows the specified HTTP and WebDAV methods.\nThe parameter off denies all methods processed\nby this module.\nThe following methods are supported:\nPUT, DELETE, MKCOL,\nCOPY, and MOVE.\n",
            "example": ""
        },
        {
            "name": "min_delete_depth",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_dav_module.html#min_delete_depth",
            "doc": "\nAllows the DELETE method to remove files provided that\nthe number of elements in a request path is not less than the specified\nnumber.\nFor example, the directive\n",
            "example": "min_delete_depth 4;\n/users/00/00/name\n/users/00/00/name/pic.jpg\n/users/00/00/page.html\n/users/00/00\n"
        },
        {
            "name": "empty_gif",
            "value": "",
            "type": "any",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_empty_gif_module.html#empty_gif",
            "doc": "\nTurns on module processing in a surrounding location.\n",
            "example": ""
        },
        {
            "name": "f4f",
            "value": "",
            "type": "any",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_f4f_module.html#f4f",
            "doc": "\nTurns on module processing in the surrounding location.\n",
            "example": ""
        },
        {
            "name": "f4f_buffer_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_f4f_module.html#f4f_buffer_size",
            "doc": "\nSets the size of the buffer used for\nreading the .f4x index file.\n",
            "example": ""
        },
        {
            "name": "fastcgi_bind",
            "value": "\"address    [transparent]\" | \"off\"",
            "type": "\"address    [transparent]\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_bind",
            "doc": "\nMakes outgoing connections to a FastCGI server originate\nfrom the specified local IP address with an optional port (1.11.2).\nParameter value can contain variables (1.3.12).\nThe special value off (1.3.12) cancels the effect\nof the fastcgi_bind directive\ninherited from the previous configuration level, which allows the\nsystem to auto-assign the local IP address and port.\n",
            "example": "fastcgi_bind $remote_addr transparent;\n"
        },
        {
            "name": "fastcgi_buffer_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_buffer_size",
            "doc": "\nSets the size of the buffer used for reading the first part\nof the response received from the FastCGI server.\nThis part usually contains a small response header.\nBy default, the buffer size is equal to one memory page.\nThis is either 4K or 8K, depending on a platform.\nIt can be made smaller, however.\n",
            "example": ""
        },
        {
            "name": "fastcgi_buffering",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_buffering",
            "doc": "\nEnables or disables buffering of responses from the FastCGI server.\n",
            "example": ""
        },
        {
            "name": "fastcgi_buffers",
            "value": "number size",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_buffers",
            "doc": "\nSets the number and size of the\nbuffers used for reading a response from the FastCGI server,\nfor a single connection.\nBy default, the buffer size is equal to one memory page.\nThis is either 4K or 8K, depending on a platform.\n",
            "example": ""
        },
        {
            "name": "fastcgi_busy_buffers_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_busy_buffers_size",
            "doc": "\nWhen buffering of responses from the FastCGI\nserver is enabled, limits the total size of buffers that\ncan be busy sending a response to the client while the response is not\nyet fully read.\nIn the meantime, the rest of the buffers can be used for reading the response\nand, if needed, buffering part of the response to a temporary file.\nBy default, size is limited by the size of two buffers set by the\nfastcgi_buffer_size and fastcgi_buffers directives.\n",
            "example": ""
        },
        {
            "name": "fastcgi_cache",
            "value": "\"zone\" | \"off\"",
            "type": "\"zone\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache",
            "doc": "\nDefines a shared memory zone used for caching.\nThe same zone can be used in several places.\nParameter value can contain variables (1.7.9).\nThe off parameter disables caching inherited\nfrom the previous configuration level.\n",
            "example": ""
        },
        {
            "name": "fastcgi_cache_background_update",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_background_update",
            "doc": "\nAllows starting a background subrequest\nto update an expired cache item,\nwhile a stale cached response is returned to the client.\nNote that it is necessary to\nallow\nthe usage of a stale cached response when it is being updated.\n",
            "example": ""
        },
        {
            "name": "fastcgi_cache_bypass",
            "value": "string ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_bypass",
            "doc": "\nDefines conditions under which the response will not be taken from a cache.\nIf at least one value of the string parameters is not empty and is not\nequal to “0” then the response will not be taken from the cache:\n",
            "example": "fastcgi_cache_bypass $cookie_nocache $arg_nocache$arg_comment;\nfastcgi_cache_bypass $http_pragma    $http_authorization;\n"
        },
        {
            "name": "fastcgi_cache_key",
            "value": "string",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_key",
            "doc": "\nDefines a key for caching, for example\n",
            "example": "fastcgi_cache_key localhost:9000$request_uri;\n"
        },
        {
            "name": "fastcgi_cache_lock",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_lock",
            "doc": "\nWhen enabled, only one request at a time will be allowed to populate\na new cache element identified according to the fastcgi_cache_key\ndirective by passing a request to a FastCGI server.\nOther requests of the same cache element will either wait\nfor a response to appear in the cache or the cache lock for\nthis element to be released, up to the time set by the\nfastcgi_cache_lock_timeout directive.\n",
            "example": ""
        },
        {
            "name": "fastcgi_cache_lock_age",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_lock_age",
            "doc": "\nIf the last request passed to the FastCGI server\nfor populating a new cache element\nhas not completed for the specified time,\none more request may be passed to the FastCGI server.\n",
            "example": ""
        },
        {
            "name": "fastcgi_cache_lock_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_lock_timeout",
            "doc": "\nSets a timeout for fastcgi_cache_lock.\nWhen the time expires,\nthe request will be passed to the FastCGI server,\nhowever, the response will not be cached.\n",
            "example": ""
        },
        {
            "name": "fastcgi_cache_max_range_offset",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_max_range_offset",
            "doc": "\nSets an offset in bytes for byte-range requests.\nIf the range is beyond the offset,\nthe range request will be passed to the FastCGI server\nand the response will not be cached.\n",
            "example": ""
        },
        {
            "name": "fastcgi_cache_methods",
            "value": "\"GET\" | \"HEAD\" | string",
            "type": "\"GET\" | \"HEAD\" | string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_methods",
            "doc": "\nIf the client request method is listed in this directive then\nthe response will be cached.\n“GET” and “HEAD” methods are always\nadded to the list, though it is recommended to specify them explicitly.\nSee also the fastcgi_no_cache directive.\n",
            "example": ""
        },
        {
            "name": "fastcgi_cache_min_uses",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_min_uses",
            "doc": "\nSets the number of requests after which the response\nwill be cached.\n",
            "example": ""
        },
        {
            "name": "fastcgi_cache_path",
            "value": "\"path    [levels=levels]    [use_temp_path=on\" | \"off]    keys_zone=name:size    [inactive=time]    [max_size=size]    [min_free=size]    [manager_files=number]    [manager_sleep=time]    [manager_threshold=time]    [loader_files=number]    [loader_sleep=time]    [loader_threshold=time]    [purger=on\" | \"off]    [purger_files=number]    [purger_sleep=time]    [purger_threshold=time]\"",
            "type": "\"path    [levels=levels]    [use_temp_path=on\" | \"off]    keys_zone=name:size    [inactive=time]    [max_size=size]    [min_free=size]    [manager_files=number]    [manager_sleep=time]    [manager_threshold=time]    [loader_files=number]    [loader_sleep=time]    [loader_threshold=time]    [purger=on\" | \"off]    [purger_files=number]    [purger_sleep=time]    [purger_threshold=time]\"",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_path",
            "doc": "\nSets the path and other parameters of a cache.\nCache data are stored in files.\nBoth the key and file name in a cache are a result of\napplying the MD5 function to the proxied URL.\n\nThe levels parameter defines hierarchy levels of a cache:\nfrom 1 to 3, each level accepts values 1 or 2.\nFor example, in the following configuration\n",
            "example": "fastcgi_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m;\n/data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029c\n"
        },
        {
            "name": "fastcgi_cache_purge",
            "value": "string ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_purge",
            "doc": "\nDefines conditions under which the request will be considered a cache\npurge request.\nIf at least one value of the string parameters is not empty and is not equal\nto “0” then the cache entry with a corresponding\ncache key is removed.\nThe result of successful operation is indicated by returning\nthe 204 (No Content) response.\n",
            "example": "fastcgi_cache_path /data/nginx/cache keys_zone=cache_zone:10m;\n\nmap $request_method $purge_method {\n    PURGE   1;\n    default 0;\n}\n\nserver {\n    ...\n    location / {\n        fastcgi_pass        backend;\n        fastcgi_cache       cache_zone;\n        fastcgi_cache_key   $uri;\n        fastcgi_cache_purge $purge_method;\n    }\n}\n"
        },
        {
            "name": "fastcgi_cache_revalidate",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_revalidate",
            "doc": "\nEnables revalidation of expired cache items using conditional requests with\nthe “If-Modified-Since” and “If-None-Match”\nheader fields.\n",
            "example": ""
        },
        {
            "name": "fastcgi_cache_use_stale",
            "value": "\"error\" | \"timeout\" | \"invalid_header\" | \"updating\" | \"http_500\" | \"http_503\" | \"http_403\" | \"http_404\" | \"http_429\" | string",
            "type": "\"error\" | \"timeout\" | \"invalid_header\" | \"updating\" | \"http_500\" | \"http_503\" | \"http_403\" | \"http_404\" | \"http_429\" | string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_use_stale",
            "doc": "\nDetermines in which cases a stale cached response can be used\nwhen an error occurs during communication with the FastCGI server.\nThe directive’s parameters match the parameters of the\nfastcgi_next_upstream directive.\n",
            "example": ""
        },
        {
            "name": "fastcgi_cache_valid",
            "value": "[code ...] time",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_valid",
            "doc": "\nSets caching time for different response codes.\nFor example, the following directives\n",
            "example": "fastcgi_cache_valid 200 302 10m;\nfastcgi_cache_valid 404      1m;\nfastcgi_cache_valid 5m;\nfastcgi_cache_valid 200 302 10m;\nfastcgi_cache_valid 301      1h;\nfastcgi_cache_valid any      1m;\n"
        },
        {
            "name": "fastcgi_catch_stderr",
            "value": "string",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_catch_stderr",
            "doc": "\nSets a string to search for in the error stream of a response\nreceived from a FastCGI server.\nIf the string is found then it is considered that the FastCGI\nserver has returned an invalid response.\nThis allows handling application errors in nginx, for example:\n",
            "example": "location /php/ {\n    fastcgi_pass backend:9000;\n    ...\n    fastcgi_catch_stderr \"PHP Fatal error\";\n    fastcgi_next_upstream error timeout invalid_header;\n}\n"
        },
        {
            "name": "fastcgi_connect_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_connect_timeout",
            "doc": "\nDefines a timeout for establishing a connection with a FastCGI server.\nIt should be noted that this timeout cannot usually exceed 75 seconds.\n",
            "example": ""
        },
        {
            "name": "fastcgi_force_ranges",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_force_ranges",
            "doc": "\nEnables byte-range support\nfor both cached and uncached responses from the FastCGI server\nregardless of the “Accept-Ranges” field in these responses.\n",
            "example": ""
        },
        {
            "name": "fastcgi_hide_header",
            "value": "field",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_hide_header",
            "doc": "\nBy default,\nnginx does not pass the header fields “Status” and\n“X-Accel-...” from the response of a FastCGI\nserver to a client.\nThe fastcgi_hide_header directive sets additional fields\nthat will not be passed.\nIf, on the contrary, the passing of fields needs to be permitted,\nthe fastcgi_pass_header directive can be used.\n",
            "example": ""
        },
        {
            "name": "fastcgi_ignore_client_abort",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_ignore_client_abort",
            "doc": "\nDetermines whether the connection with a FastCGI server should be\nclosed when a client closes the connection without waiting\nfor a response.\n",
            "example": ""
        },
        {
            "name": "fastcgi_ignore_headers",
            "value": "field ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_ignore_headers",
            "doc": "\nDisables processing of certain response header fields from the FastCGI server.\nThe following fields can be ignored: “X-Accel-Redirect”,\n“X-Accel-Expires”, “X-Accel-Limit-Rate” (1.1.6),\n“X-Accel-Buffering” (1.1.6),\n“X-Accel-Charset” (1.1.6), “Expires”,\n“Cache-Control”, “Set-Cookie” (0.8.44),\nand “Vary” (1.7.7).\n",
            "example": ""
        },
        {
            "name": "fastcgi_index",
            "value": "name",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_index",
            "doc": "\nSets a file name that will be appended after a URI that ends with\na slash, in the value of the $fastcgi_script_name variable.\nFor example, with these settings\n",
            "example": "fastcgi_index index.php;\nfastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name;\n"
        },
        {
            "name": "fastcgi_intercept_errors",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_intercept_errors",
            "doc": "\nDetermines whether FastCGI server responses with codes greater than or equal\nto 300 should be passed to a client\nor be intercepted and redirected to nginx for processing\nwith the error_page directive.\n",
            "example": ""
        },
        {
            "name": "fastcgi_keep_conn",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_keep_conn",
            "doc": "\nBy default, a FastCGI server will close a connection right after\nsending the response.\nHowever, when this directive is set to the value on,\nnginx will instruct a FastCGI server to keep connections open.\nThis is necessary, in particular, for\nkeepalive\nconnections to FastCGI servers to function.\n",
            "example": ""
        },
        {
            "name": "fastcgi_limit_rate",
            "value": "rate",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_limit_rate",
            "doc": "\nLimits the speed of reading the response from the FastCGI server.\nThe rate is specified in bytes per second.\nThe zero value disables rate limiting.\nThe limit is set per a request, and so if nginx simultaneously opens\ntwo connections to the FastCFI server,\nthe overall rate will be twice as much as the specified limit.\nThe limitation works only if\nbuffering of responses from the FastCGI\nserver is enabled.\n",
            "example": ""
        },
        {
            "name": "fastcgi_max_temp_file_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_max_temp_file_size",
            "doc": "\nWhen buffering of responses from the FastCGI\nserver is enabled, and the whole response does not fit into the buffers\nset by the fastcgi_buffer_size and fastcgi_buffers\ndirectives, a part of the response can be saved to a temporary file.\nThis directive sets the maximum size of the temporary file.\nThe size of data written to the temporary file at a time is set\nby the fastcgi_temp_file_write_size directive.\n",
            "example": ""
        },
        {
            "name": "fastcgi_next_upstream",
            "value": "\"error\" | \"timeout\" | \"invalid_header\" | \"http_500\" | \"http_503\" | \"http_403\" | \"http_404\" | \"http_429\" | \"non_idempotent\" | string",
            "type": "\"error\" | \"timeout\" | \"invalid_header\" | \"http_500\" | \"http_503\" | \"http_403\" | \"http_404\" | \"http_429\" | \"non_idempotent\" | string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_next_upstream",
            "doc": "\nSpecifies in which cases a request should be passed to the next server:\n",
            "example": ""
        },
        {
            "name": "fastcgi_next_upstream_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_next_upstream_timeout",
            "doc": "\nLimits the time during which a request can be passed to the\nnext server.\nThe 0 value turns off this limitation.\n",
            "example": ""
        },
        {
            "name": "fastcgi_next_upstream_tries",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_next_upstream_tries",
            "doc": "\nLimits the number of possible tries for passing a request to the\nnext server.\nThe 0 value turns off this limitation.\n",
            "example": ""
        },
        {
            "name": "fastcgi_no_cache",
            "value": "string ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_no_cache",
            "doc": "\nDefines conditions under which the response will not be saved to a cache.\nIf at least one value of the string parameters is not empty and is not\nequal to “0” then the response will not be saved:\n",
            "example": "fastcgi_no_cache $cookie_nocache $arg_nocache$arg_comment;\nfastcgi_no_cache $http_pragma    $http_authorization;\n"
        },
        {
            "name": "fastcgi_param",
            "value": "parameter value    [if_not_empty]",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_param",
            "doc": "\nSets a parameter that should be passed to the FastCGI server.\nThe value can contain text, variables, and their combination.\nThese directives are inherited from the previous configuration level\nif and only if there are no fastcgi_param directives\ndefined on the current level.\n",
            "example": "fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name;\nfastcgi_param QUERY_STRING    $query_string;\nfastcgi_param REQUEST_METHOD  $request_method;\nfastcgi_param CONTENT_TYPE    $content_type;\nfastcgi_param CONTENT_LENGTH  $content_length;\nfastcgi_param REDIRECT_STATUS 200;\nfastcgi_param HTTPS           $https if_not_empty;\n"
        },
        {
            "name": "fastcgi_pass",
            "value": "address",
            "type": "any",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_pass",
            "doc": "\nSets the address of a FastCGI server.\nThe address can be specified as a domain name or IP address,\nand a port:\n",
            "example": "fastcgi_pass localhost:9000;\nfastcgi_pass unix:/tmp/fastcgi.socket;\n"
        },
        {
            "name": "fastcgi_pass_header",
            "value": "field",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_pass_header",
            "doc": "\nPermits passing otherwise disabled header\nfields from a FastCGI server to a client.\n",
            "example": ""
        },
        {
            "name": "fastcgi_pass_request_body",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_pass_request_body",
            "doc": "\nIndicates whether the original request body is passed\nto the FastCGI server.\nSee also the fastcgi_pass_request_headers directive.\n",
            "example": ""
        },
        {
            "name": "fastcgi_pass_request_headers",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_pass_request_headers",
            "doc": "\nIndicates whether the header fields of the original request are passed\nto the FastCGI server.\nSee also the fastcgi_pass_request_body directive.\n",
            "example": ""
        },
        {
            "name": "fastcgi_read_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_read_timeout",
            "doc": "\nDefines a timeout for reading a response from the FastCGI server.\nThe timeout is set only between two successive read operations,\nnot for the transmission of the whole response.\nIf the FastCGI server does not transmit anything within this time,\nthe connection is closed.\n",
            "example": ""
        },
        {
            "name": "fastcgi_request_buffering",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_request_buffering",
            "doc": "\nEnables or disables buffering of a client request body.\n",
            "example": ""
        },
        {
            "name": "fastcgi_send_lowat",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_send_lowat",
            "doc": "\nIf the directive is set to a non-zero value, nginx will try to\nminimize the number\nof send operations on outgoing connections to a FastCGI server by using either\nNOTE_LOWAT flag of the\nkqueue method,\nor the SO_SNDLOWAT socket option,\nwith the specified size.\n",
            "example": ""
        },
        {
            "name": "fastcgi_send_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_send_timeout",
            "doc": "\nSets a timeout for transmitting a request to the FastCGI server.\nThe timeout is set only between two successive write operations,\nnot for the transmission of the whole request.\nIf the FastCGI server does not receive anything within this time,\nthe connection is closed.\n",
            "example": ""
        },
        {
            "name": "fastcgi_socket_keepalive",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_socket_keepalive",
            "doc": "\nConfigures the “TCP keepalive” behavior\nfor outgoing connections to a FastCGI server.\nBy default, the operating system’s settings are in effect for the socket.\nIf the directive is set to the value “on”, the\nSO_KEEPALIVE socket option is turned on for the socket.\n",
            "example": ""
        },
        {
            "name": "fastcgi_split_path_info",
            "value": "regex",
            "type": "any",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_split_path_info",
            "doc": "\nDefines a regular expression that captures a value for the\n$fastcgi_path_info variable.\nThe regular expression should have two captures: the first becomes\na value of the $fastcgi_script_name variable, the second\nbecomes a value of the $fastcgi_path_info variable.\nFor example, with these settings\n",
            "example": "location ~ ^(.+\\.php)(.*)$ {\n    fastcgi_split_path_info       ^(.+\\.php)(.*)$;\n    fastcgi_param SCRIPT_FILENAME /path/to/php$fastcgi_script_name;\n    fastcgi_param PATH_INFO       $fastcgi_path_info;\n"
        },
        {
            "name": "fastcgi_store",
            "value": "\"on\" | \"off\" | string",
            "type": "\"on\" | \"off\" | string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_store",
            "doc": "\nEnables saving of files to a disk.\nThe on parameter saves files with paths\ncorresponding to the directives\nalias or\nroot.\nThe off parameter disables saving of files.\nIn addition, the file name can be set explicitly using the\nstring with variables:\n",
            "example": "fastcgi_store /data/www$original_uri;\nlocation /images/ {\n    root                 /data/www;\n    error_page           404 = /fetch$uri;\n}\n\nlocation /fetch/ {\n    internal;\n\n    fastcgi_pass         backend:9000;\n    ...\n\n    fastcgi_store        on;\n    fastcgi_store_access user:rw group:rw all:r;\n    fastcgi_temp_path    /data/temp;\n\n    alias                /data/www/;\n}\n"
        },
        {
            "name": "fastcgi_store_access",
            "value": "users:permissions ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_store_access",
            "doc": "\nSets access permissions for newly created files and directories, e.g.:\n",
            "example": "fastcgi_store_access user:rw group:rw all:r;\nfastcgi_store_access group:rw all:r;\n"
        },
        {
            "name": "fastcgi_temp_file_write_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_temp_file_write_size",
            "doc": "\nLimits the size of data written to a temporary file\nat a time, when buffering of responses from the FastCGI server\nto temporary files is enabled.\nBy default, size is limited by two buffers set by the\nfastcgi_buffer_size and fastcgi_buffers directives.\nThe maximum size of a temporary file is set by the\nfastcgi_max_temp_file_size directive.\n",
            "example": ""
        },
        {
            "name": "fastcgi_temp_path",
            "value": "path    [level1    [level2    [level3]]]",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_temp_path",
            "doc": "\nDefines a directory for storing temporary files\nwith data received from FastCGI servers.\nUp to three-level subdirectory hierarchy can be used underneath the specified\ndirectory.\nFor example, in the following configuration\n",
            "example": "fastcgi_temp_path /spool/nginx/fastcgi_temp 1 2;\n/spool/nginx/fastcgi_temp/7/45/00000123457\n"
        },
        {
            "name": "flv",
            "value": "",
            "type": "any",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_flv_module.html#flv",
            "doc": "\nTurns on module processing in a surrounding location.\n",
            "example": ""
        },
        {
            "name": "geo",
            "value": "[$address] $variable { ... }",
            "type": "any",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_geo_module.html#geo",
            "doc": "\nDescribes the dependency of values of the specified variable\non the client IP address.\nBy default, the address is taken from the $remote_addr variable,\nbut it can also be taken from another variable (0.7.27), for example:\n",
            "example": "geo $arg_remote_addr $geo {\n    ...;\n}\ngeo $country {\n    default        ZZ;\n    include        conf/geo.conf;\n    delete         127.0.0.0/16;\n    proxy          192.168.100.0/24;\n    proxy          2001:0db8::/32;\n\n    127.0.0.0/24   US;\n    127.0.0.1/32   RU;\n    10.1.0.0/16    RU;\n    192.168.1.0/24 UK;\n}\n10.2.0.0/16    RU;\n192.168.2.0/24 RU;\ngeo $country {\n    ranges;\n    default                   ZZ;\n    127.0.0.0-127.0.0.0       US;\n    127.0.0.1-127.0.0.1       RU;\n    127.0.0.1-127.0.0.255     US;\n    10.1.0.0-10.1.255.255     RU;\n    192.168.1.0-192.168.1.255 UK;\n}\n"
        },
        {
            "name": "geoip_country",
            "value": "file",
            "type": "any",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_geoip_module.html#geoip_country",
            "doc": "\nSpecifies a database used to determine the country\ndepending on the client IP address.\nThe following variables are available when using this database:\n",
            "example": ""
        },
        {
            "name": "geoip_city",
            "value": "file",
            "type": "any",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_geoip_module.html#geoip_city",
            "doc": "\nSpecifies a database used to determine the country, region, and city\ndepending on the client IP address.\nThe following variables are available when using this database:\n",
            "example": ""
        },
        {
            "name": "geoip_org",
            "value": "file",
            "type": "any",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_geoip_module.html#geoip_org",
            "doc": "\nSpecifies a database used to determine the organization\ndepending on the client IP address.\nThe following variable is available when using this database:\n",
            "example": ""
        },
        {
            "name": "geoip_proxy",
            "value": "\"address\" | \"CIDR\"",
            "type": "\"address\" | \"CIDR\"",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_geoip_module.html#geoip_proxy",
            "doc": "\nDefines trusted addresses.\nWhen a request comes from a trusted address,\nan address from the “X-Forwarded-For” request\nheader field will be used instead.\n",
            "example": ""
        },
        {
            "name": "geoip_proxy_recursive",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_geoip_module.html#geoip_proxy_recursive",
            "doc": "\nIf recursive search is disabled then instead of the original client\naddress that matches one of the trusted addresses, the last\naddress sent in “X-Forwarded-For” will be used.\nIf recursive search is enabled then instead of the original client\naddress that matches one of the trusted addresses, the last\nnon-trusted address sent in “X-Forwarded-For” will be used.\n",
            "example": ""
        },
        {
            "name": "grpc_bind",
            "value": "\"address    [transparent ]\" | \"off\"",
            "type": "\"address    [transparent ]\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_bind",
            "doc": "\nMakes outgoing connections to a gRPC server originate\nfrom the specified local IP address with an optional port.\nParameter value can contain variables.\nThe special value off cancels the effect\nof the grpc_bind directive\ninherited from the previous configuration level, which allows the\nsystem to auto-assign the local IP address and port.\n",
            "example": "grpc_bind $remote_addr transparent;\n"
        },
        {
            "name": "grpc_buffer_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_buffer_size",
            "doc": "\nSets the size of the buffer used for reading the response\nreceived from the gRPC server.\nThe response is passed to the client synchronously, as soon as it is received.\n",
            "example": ""
        },
        {
            "name": "grpc_connect_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_connect_timeout",
            "doc": "\nDefines a timeout for establishing a connection with a gRPC server.\nIt should be noted that this timeout cannot usually exceed 75 seconds.\n",
            "example": ""
        },
        {
            "name": "grpc_hide_header",
            "value": "field",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_hide_header",
            "doc": "\nBy default,\nnginx does not pass the header fields “Date”,\n“Server”, and\n“X-Accel-...” from the response of a gRPC\nserver to a client.\nThe grpc_hide_header directive sets additional fields\nthat will not be passed.\nIf, on the contrary, the passing of fields needs to be permitted,\nthe grpc_pass_header directive can be used.\n",
            "example": ""
        },
        {
            "name": "grpc_ignore_headers",
            "value": "field ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_ignore_headers",
            "doc": "\nDisables processing of certain response header fields from the gRPC server.\nThe following fields can be ignored: “X-Accel-Redirect”\nand “X-Accel-Charset”.\n",
            "example": ""
        },
        {
            "name": "grpc_intercept_errors",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_intercept_errors",
            "doc": "\nDetermines whether gRPC server responses with codes greater than or equal\nto 300 should be passed to a client\nor be intercepted and redirected to nginx for processing\nwith the error_page directive.\n",
            "example": ""
        },
        {
            "name": "grpc_next_upstream",
            "value": "\"error\" | \"timeout\" | \"invalid_header\" | \"http_500\" | \"http_502\" | \"http_503\" | \"http_504\" | \"http_403\" | \"http_404\" | \"http_429\" | \"non_idempotent\" | string",
            "type": "\"error\" | \"timeout\" | \"invalid_header\" | \"http_500\" | \"http_502\" | \"http_503\" | \"http_504\" | \"http_403\" | \"http_404\" | \"http_429\" | \"non_idempotent\" | string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_next_upstream",
            "doc": "\nSpecifies in which cases a request should be passed to the next server:\n",
            "example": ""
        },
        {
            "name": "grpc_next_upstream_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_next_upstream_timeout",
            "doc": "\nLimits the time during which a request can be passed to the\nnext server.\nThe 0 value turns off this limitation.\n",
            "example": ""
        },
        {
            "name": "grpc_next_upstream_tries",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_next_upstream_tries",
            "doc": "\nLimits the number of possible tries for passing a request to the\nnext server.\nThe 0 value turns off this limitation.\n",
            "example": ""
        },
        {
            "name": "grpc_pass",
            "value": "address",
            "type": "any",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_pass",
            "doc": "\nSets the gRPC server address.\nThe address can be specified as a domain name or IP address,\nand a port:\n",
            "example": "grpc_pass localhost:9000;\ngrpc_pass unix:/tmp/grpc.socket;\ngrpc_pass grpc://127.0.0.1:9000;\ngrpc_pass grpcs://127.0.0.1:443;\n"
        },
        {
            "name": "grpc_pass_header",
            "value": "field",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_pass_header",
            "doc": "\nPermits passing otherwise disabled header\nfields from a gRPC server to a client.\n",
            "example": ""
        },
        {
            "name": "grpc_read_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_read_timeout",
            "doc": "\nDefines a timeout for reading a response from the gRPC server.\nThe timeout is set only between two successive read operations,\nnot for the transmission of the whole response.\nIf the gRPC server does not transmit anything within this time,\nthe connection is closed.\n",
            "example": ""
        },
        {
            "name": "grpc_send_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_send_timeout",
            "doc": "\nSets a timeout for transmitting a request to the gRPC server.\nThe timeout is set only between two successive write operations,\nnot for the transmission of the whole request.\nIf the gRPC server does not receive anything within this time,\nthe connection is closed.\n",
            "example": ""
        },
        {
            "name": "grpc_set_header",
            "value": "field value",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_set_header",
            "doc": "\nAllows redefining or appending fields to the request header\npassed to the gRPC server.\nThe value can contain text, variables, and their combinations.\nThese directives are inherited from the previous configuration level\nif and only if there are no grpc_set_header directives\ndefined on the current level.\n",
            "example": "grpc_set_header Accept-Encoding \"\";\n"
        },
        {
            "name": "grpc_socket_keepalive",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_socket_keepalive",
            "doc": "\nConfigures the “TCP keepalive” behavior\nfor outgoing connections to a gRPC server.\nBy default, the operating system’s settings are in effect for the socket.\nIf the directive is set to the value “on”, the\nSO_KEEPALIVE socket option is turned on for the socket.\n",
            "example": ""
        },
        {
            "name": "grpc_ssl_certificate",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_ssl_certificate",
            "doc": "\nSpecifies a file with the certificate in the PEM format\nused for authentication to a gRPC SSL server.\n",
            "example": ""
        },
        {
            "name": "grpc_ssl_certificate_key",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_ssl_certificate_key",
            "doc": "\nSpecifies a file with the secret key in the PEM format\nused for authentication to a gRPC SSL server.\n",
            "example": ""
        },
        {
            "name": "grpc_ssl_ciphers",
            "value": "ciphers",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_ssl_ciphers",
            "doc": "\nSpecifies the enabled ciphers for requests to a gRPC SSL server.\nThe ciphers are specified in the format understood by the OpenSSL library.\n",
            "example": ""
        },
        {
            "name": "grpc_ssl_conf_command",
            "value": "command",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_ssl_conf_command",
            "doc": "\nSets arbitrary OpenSSL configuration\ncommands\nwhen establishing a connection with the gRPC SSL server.\n",
            "example": ""
        },
        {
            "name": "grpc_ssl_crl",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_ssl_crl",
            "doc": "\nSpecifies a file with revoked certificates (CRL)\nin the PEM format used to verify\nthe certificate of the gRPC SSL server.\n",
            "example": ""
        },
        {
            "name": "grpc_ssl_name",
            "value": "name",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_ssl_name",
            "doc": "\nAllows overriding the server name used to\nverify\nthe certificate of the gRPC SSL server and to be\npassed through SNI\nwhen establishing a connection with the gRPC SSL server.\n",
            "example": ""
        },
        {
            "name": "grpc_ssl_password_file",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_ssl_password_file",
            "doc": "\nSpecifies a file with passphrases for\nsecret keys\nwhere each passphrase is specified on a separate line.\nPassphrases are tried in turn when loading the key.\n",
            "example": ""
        },
        {
            "name": "grpc_ssl_protocols",
            "value": "[SSLv2]    [SSLv3]    [TLSv1]    [TLSv1.1]    [TLSv1.2]    [TLSv1.3]",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_ssl_protocols",
            "doc": "\nEnables the specified protocols for requests to a gRPC SSL server.\n",
            "example": ""
        },
        {
            "name": "grpc_ssl_server_name",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_ssl_server_name",
            "doc": "\nEnables or disables passing of the server name through\nTLS\nServer Name Indication extension (SNI, RFC 6066)\nwhen establishing a connection with the gRPC SSL server.\n",
            "example": ""
        },
        {
            "name": "grpc_ssl_session_reuse",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_ssl_session_reuse",
            "doc": "\nDetermines whether SSL sessions can be reused when working with\nthe gRPC server.\nIf the errors\n“SSL3_GET_FINISHED:digest check failed”\nappear in the logs, try disabling session reuse.\n",
            "example": ""
        },
        {
            "name": "grpc_ssl_trusted_certificate",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_ssl_trusted_certificate",
            "doc": "\nSpecifies a file with trusted CA certificates in the PEM format\nused to verify\nthe certificate of the gRPC SSL server.\n",
            "example": ""
        },
        {
            "name": "grpc_ssl_verify",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_ssl_verify",
            "doc": "\nEnables or disables verification of the gRPC SSL server certificate.\n",
            "example": ""
        },
        {
            "name": "grpc_ssl_verify_depth",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_grpc_module.html#grpc_ssl_verify_depth",
            "doc": "\nSets the verification depth in the gRPC SSL server certificates chain.\n",
            "example": ""
        },
        {
            "name": "gunzip",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_gunzip_module.html#gunzip",
            "doc": "\nEnables or disables decompression of gzipped responses\nfor clients that lack gzip support.\nIf enabled, the following directives are also taken into account\nwhen determining if clients support gzip:\ngzip_http_version,\ngzip_proxied, and\ngzip_disable.\nSee also the gzip_vary directive.\n",
            "example": ""
        },
        {
            "name": "gunzip_buffers",
            "value": "number size",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_gunzip_module.html#gunzip_buffers",
            "doc": "\nSets the number and size of buffers\nused to decompress a response.\nBy default, the buffer size is equal to one memory page.\nThis is either 4K or 8K, depending on a platform.\n",
            "example": ""
        },
        {
            "name": "gzip",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_gzip_module.html#gzip",
            "doc": "\nEnables or disables gzipping of responses.\n",
            "example": ""
        },
        {
            "name": "gzip_buffers",
            "value": "number size",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_gzip_module.html#gzip_buffers",
            "doc": "\nSets the number and size of buffers\nused to compress a response.\nBy default, the buffer size is equal to one memory page.\nThis is either 4K or 8K, depending on a platform.\n",
            "example": ""
        },
        {
            "name": "gzip_comp_level",
            "value": "level",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_gzip_module.html#gzip_comp_level",
            "doc": "\nSets a gzip compression level of a response.\nAcceptable values are in the range from 1 to 9.\n",
            "example": ""
        },
        {
            "name": "gzip_disable",
            "value": "regex ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_gzip_module.html#gzip_disable",
            "doc": "\nDisables gzipping of responses for requests with\n“User-Agent” header fields matching\nany of the specified regular expressions.\n",
            "example": ""
        },
        {
            "name": "gzip_http_version",
            "value": "\"1.0\" | \"1.1\"",
            "type": "\"1.0\" | \"1.1\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_gzip_module.html#gzip_http_version",
            "doc": "\nSets the minimum HTTP version of a request required to compress a response.\n",
            "example": ""
        },
        {
            "name": "gzip_min_length",
            "value": "length",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_gzip_module.html#gzip_min_length",
            "doc": "\nSets the minimum length of a response that will be gzipped.\nThe length is determined only from the “Content-Length”\nresponse header field.\n",
            "example": ""
        },
        {
            "name": "gzip_proxied",
            "value": "\"off\" | \"expired\" | \"no-cache\" | \"no-store\" | \"private\" | \"no_last_modified\" | \"no_etag\" | \"auth\" | string",
            "type": "\"off\" | \"expired\" | \"no-cache\" | \"no-store\" | \"private\" | \"no_last_modified\" | \"no_etag\" | \"auth\" | string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_gzip_module.html#gzip_proxied",
            "doc": "\nEnables or disables gzipping of responses for proxied\nrequests depending on the request and response.\nThe fact that the request is proxied is determined by\nthe presence of the “Via” request header field.\nThe directive accepts multiple parameters:\n",
            "example": ""
        },
        {
            "name": "gzip_types",
            "value": "mime-type ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_gzip_module.html#gzip_types",
            "doc": "\nEnables gzipping of responses for the specified MIME types in addition\nto “text/html”.\nThe special value “*” matches any MIME type (0.8.29).\nResponses with the “text/html” type are always compressed.\n",
            "example": ""
        },
        {
            "name": "gzip_vary",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_gzip_module.html#gzip_vary",
            "doc": "\nEnables or disables inserting the “Vary: Accept-Encoding”\nresponse header field if the directives\ngzip,\ngzip_static, or\ngunzip\nare active.\n",
            "example": ""
        },
        {
            "name": "gzip_static",
            "value": "\"on\" | \"off\" | \"always\"",
            "type": "\"on\" | \"off\" | \"always\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_gzip_static_module.html#gzip_static",
            "doc": "\nEnables (“on”) or disables (“off”)\nchecking the existence of precompressed files.\nThe following directives are also taken into account:\ngzip_http_version,\ngzip_proxied,\ngzip_disable,\nand gzip_vary.\n",
            "example": ""
        },
        {
            "name": "add_header",
            "value": "name value[always]",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_headers_module.html#add_header",
            "doc": "\nAdds the specified field to a response header provided that\nthe response code equals 200, 201 (1.3.10), 204, 206, 301, 302, 303, 304,\n307 (1.1.16, 1.0.13), or 308 (1.13.0).\nParameter value can contain variables.\n",
            "example": ""
        },
        {
            "name": "add_trailer",
            "value": "name value[always]",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_headers_module.html#add_trailer",
            "doc": "\nAdds the specified field to the end of a response provided that\nthe response code equals 200, 201, 206, 301, 302, 303, 307, or 308.\nParameter value can contain variables.\n",
            "example": ""
        },
        {
            "name": "expires",
            "value": "\"[modified] timeexpires     epoch\" | \"max\" | \"off\"",
            "type": "\"[modified] timeexpires     epoch\" | \"max\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_headers_module.html#expires",
            "doc": "\nEnables or disables adding or modifying the “Expires”\nand “Cache-Control” response header fields provided that\nthe response code equals 200, 201 (1.3.10), 204, 206, 301, 302, 303, 304,\n307 (1.1.16, 1.0.13), or 308 (1.13.0).\nThe parameter can be a positive or negative\ntime.\n",
            "example": "expires @15h30m;\nmap $sent_http_content_type $expires {\n    default         off;\n    application/pdf 42d;\n    ~image/         max;\n}\n\nexpires $expires;\n"
        },
        {
            "name": "hls",
            "value": "",
            "type": "any",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_hls_module.html#hls",
            "doc": "\nTurns on HLS streaming in the surrounding location.\n",
            "example": ""
        },
        {
            "name": "hls_buffers",
            "value": "number size",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_hls_module.html#hls_buffers",
            "doc": "\nSets the maximum number and size of buffers\nthat are used for reading and writing data frames.\n",
            "example": ""
        },
        {
            "name": "hls_forward_args",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_hls_module.html#hls_forward_args",
            "doc": "\nAdds arguments from a playlist request to URIs of fragments.\nThis may be useful for performing client authorization at the moment of\nrequesting a fragment, or when protecting an HLS stream with the\nngx_http_secure_link_module\nmodule.\n",
            "example": "#EXTM3U\n#EXT-X-VERSION:3\n#EXT-X-TARGETDURATION:15\n#EXT-X-PLAYLIST-TYPE:VOD\n\n#EXTINF:9.333,\ntest.mp4.ts?start=0.000&end=9.333&a=1&b=2\n#EXTINF:7.167,\ntest.mp4.ts?start=9.333&end=16.500&a=1&b=2\n#EXTINF:5.416,\ntest.mp4.ts?start=16.500&end=21.916&a=1&b=2\n#EXTINF:5.500,\ntest.mp4.ts?start=21.916&end=27.416&a=1&b=2\n#EXTINF:15.167,\ntest.mp4.ts?start=27.416&end=42.583&a=1&b=2\n#EXTINF:9.626,\ntest.mp4.ts?start=42.583&end=52.209&a=1&b=2\n\n#EXT-X-ENDLIST\nhttp {\n    ...\n\n    map $uri $hls_uri {\n        ~^(?<base_uri>.*).m3u8$ $base_uri;\n        ~^(?<base_uri>.*).ts$   $base_uri;\n        default                 $uri;\n    }\n\n    server {\n        ...\n\n        location /hls/ {\n            hls;\n            hls_forward_args on;\n\n            alias /var/videos/;\n\n            secure_link $arg_md5,$arg_expires;\n            secure_link_md5 \"$secure_link_expires$hls_uri$remote_addr secret\";\n\n            if ($secure_link = \"\") {\n                return 403;\n            }\n\n            if ($secure_link = \"0\") {\n                return 410;\n            }\n        }\n    }\n}\n"
        },
        {
            "name": "hls_fragment",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_hls_module.html#hls_fragment",
            "doc": "\nDefines the default fragment length for playlist URIs requested without the\n“len” argument.\n",
            "example": ""
        },
        {
            "name": "hls_mp4_buffer_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_hls_module.html#hls_mp4_buffer_size",
            "doc": "\nSets the initial size of the buffer used for\nprocessing MP4 and MOV files.\n",
            "example": ""
        },
        {
            "name": "hls_mp4_max_buffer_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_hls_module.html#hls_mp4_max_buffer_size",
            "doc": "\nDuring metadata processing, a larger buffer may become necessary.\nIts size cannot exceed the specified size,\nor else nginx will return the server error\n500 (Internal Server Error),\nand log the following message:\n",
            "example": "\"/some/movie/file.mp4\" mp4 moov atom is too large:\n12583268, you may want to increase hls_mp4_max_buffer_size\n"
        },
        {
            "name": "image_filter",
            "value": "\"offimage_filter testimage_filter sizeimage_filter     rotate    90\" | \"180\" | \"270image_filter     resize    width    heightimage_filter     crop    width    height\"",
            "type": "\"offimage_filter testimage_filter sizeimage_filter     rotate    90\" | \"180\" | \"270image_filter     resize    width    heightimage_filter     crop    width    height\"",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_image_filter_module.html#image_filter",
            "doc": "\nSets the type of transformation to perform on images:\n",
            "example": ""
        },
        {
            "name": "image_filter_buffer",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_image_filter_module.html#image_filter_buffer",
            "doc": "\nSets the maximum size of the buffer used for reading images.\nWhen the size is exceeded the server returns error\n415 (Unsupported Media Type).\n",
            "example": ""
        },
        {
            "name": "image_filter_interlace",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_image_filter_module.html#image_filter_interlace",
            "doc": "\nIf enabled, final images will be interlaced.\nFor JPEG, final images will be in “progressive JPEG” format.\n",
            "example": ""
        },
        {
            "name": "image_filter_jpeg_quality",
            "value": "quality",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_image_filter_module.html#image_filter_jpeg_quality",
            "doc": "\nSets the desired quality of the transformed JPEG images.\nAcceptable values are in the range from 1 to 100.\nLesser values usually imply both lower image quality and less data to transfer.\nThe maximum recommended value is 95.\nParameter value can contain variables.\n",
            "example": ""
        },
        {
            "name": "image_filter_sharpen",
            "value": "percent",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_image_filter_module.html#image_filter_sharpen",
            "doc": "\nIncreases sharpness of the final image.\nThe sharpness percentage can exceed 100.\nThe zero value disables sharpening.\nParameter value can contain variables.\n",
            "example": ""
        },
        {
            "name": "image_filter_transparency",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_image_filter_module.html#image_filter_transparency",
            "doc": "\nDefines whether transparency should be preserved when transforming\nGIF images or PNG images with colors specified by a palette.\nThe loss of transparency results in images of a better quality.\nThe alpha channel transparency in PNG is always preserved.\n",
            "example": ""
        },
        {
            "name": "image_filter_webp_quality",
            "value": "quality",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_image_filter_module.html#image_filter_webp_quality",
            "doc": "\nSets the desired quality of the transformed WebP images.\nAcceptable values are in the range from 1 to 100.\nLesser values usually imply both lower image quality and less data to transfer.\nParameter value can contain variables.\n",
            "example": ""
        },
        {
            "name": "index",
            "value": "file ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_index_module.html#index",
            "doc": "\nDefines files that will be used as an index.\nThe file name can contain variables.\nFiles are checked in the specified order.\nThe last element of the list can be a file with an absolute path.\nExample:\n",
            "example": "index index.$geo.html index.0.html /index.html;\nlocation = / {\n    index index.html;\n}\n\nlocation / {\n    ...\n}\n"
        },
        {
            "name": "js_body_filter",
            "value": "\"function\" | \"module.function[buffer_type=string\" | \"buffer]\"",
            "type": "\"function\" | \"module.function[buffer_type=string\" | \"buffer]\"",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_js_module.html#js_body_filter",
            "doc": "\nSets an njs function as a response body filter.\nThe filter function is called for each data chunk of a response body\nwith the following arguments:\n\n",
            "example": "function filter(r, data, flags) {\n    r.sendBuffer(data.toLowerCase(), flags);\n}\n"
        },
        {
            "name": "js_content",
            "value": "\"function\" | \"module.function\"",
            "type": "\"function\" | \"module.function\"",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_js_module.html#js_content",
            "doc": "\nSets an njs function as a location content handler.\nSince 0.4.0,\na module function can be referenced.\n",
            "example": ""
        },
        {
            "name": "js_fetch_ciphers",
            "value": "ciphers",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_js_module.html#js_fetch_ciphers",
            "doc": "\nSpecifies the enabled ciphers for HTTPS requests\nwith Fetch API.\nThe ciphers are specified in the format understood by the\nOpenSSL library.\n",
            "example": ""
        },
        {
            "name": "js_fetch_protocols",
            "value": "[TLSv1]    [TLSv1.1]    [TLSv1.2]    [TLSv1.3]",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_js_module.html#js_fetch_protocols",
            "doc": "\nEnables the specified protocols for HTTPS requests\nwith Fetch API.\n",
            "example": ""
        },
        {
            "name": "js_fetch_trusted_certificate",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_js_module.html#js_fetch_trusted_certificate",
            "doc": "\nSpecifies a file with trusted CA certificates in the PEM format\nused to\nverify\nthe HTTPS certificate\nwith Fetch API.\n",
            "example": ""
        },
        {
            "name": "js_fetch_verify_depth",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_js_module.html#js_fetch_verify_depth",
            "doc": "\nSets the verification depth in the HTTPS server certificates chain\nwith Fetch API.\n",
            "example": ""
        },
        {
            "name": "js_header_filter",
            "value": "\"function\" | \"module.function\"",
            "type": "\"function\" | \"module.function\"",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_js_module.html#js_header_filter",
            "doc": "\nSets an njs function as a response header filter.\nThe directive allows changing arbitrary header fields of a response header.\n",
            "example": ""
        },
        {
            "name": "js_import",
            "value": "\"module.js\" | \"export_name from module.js\"",
            "type": "\"module.js\" | \"export_name from module.js\"",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_js_module.html#js_import",
            "doc": "\nImports a module that implements location and variable handlers in njs.\nThe export_name is used as a namespace\nto access module functions.\nIf the export_name is not specified,\nthe module name will be used as a namespace.\n",
            "example": "js_import http.js;\n"
        },
        {
            "name": "js_include",
            "value": "file",
            "type": "any",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_js_module.html#js_include",
            "doc": "\nSpecifies a file that implements location and variable handlers in njs:\n",
            "example": "nginx.conf:\njs_include http.js;\nlocation   /version {\n    js_content version;\n}\n\nhttp.js:\nfunction version(r) {\n    r.return(200, njs.version);\n}\n"
        },
        {
            "name": "js_path",
            "value": "path",
            "type": "string",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_js_module.html#js_path",
            "doc": "\nSets an additional path for njs modules.\n",
            "example": ""
        },
        {
            "name": "js_set",
            "value": "\"$variable function\" | \"module.function\"",
            "type": "\"$variable function\" | \"module.function\"",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_js_module.html#js_set",
            "doc": "\nSets an njs function\nfor the specified variable.\nSince 0.4.0,\na module function can be referenced.\n",
            "example": ""
        },
        {
            "name": "js_var",
            "value": "$variable [value]",
            "type": "any",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_js_module.html#js_var",
            "doc": "\nDeclares\na writable\nvariable.\nThe value can contain text, variables, and their combination.\nThe variable is not overwritten after a redirect\nunlike variables created with the\nset directive.\n",
            "example": ""
        },
        {
            "name": "keyval",
            "value": "key    $variable    zone=name",
            "type": "any",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_keyval_module.html#keyval",
            "doc": "\nCreates a new $variable whose value\nis looked up by the key in the key-value database.\nMatching rules are defined by the\ntype parameter of the\nkeyval_zone directive.\nThe database is stored in a shared memory zone\nspecified by the zone parameter.\n",
            "example": ""
        },
        {
            "name": "keyval_zone",
            "value": "\"zone=name:size    [state=file]    [timeout=time]    [type=string\" | \"ip\" | \"prefix]    [sync]\"",
            "type": "\"zone=name:size    [state=file]    [timeout=time]    [type=string\" | \"ip\" | \"prefix]    [sync]\"",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_keyval_module.html#keyval_zone",
            "doc": "\nSets the name and size of the shared memory zone\nthat keeps the key-value database.\nKey-value pairs are managed by the\nAPI.\n",
            "example": "keyval_zone zone=one:32k state=/var/lib/nginx/state/one.keyval; # path for Linux\nkeyval_zone zone=one:32k state=/var/db/nginx/state/one.keyval;  # path for FreeBSD\n"
        },
        {
            "name": "limit_conn",
            "value": "zone number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_limit_conn_module.html#limit_conn",
            "doc": "\nSets the shared memory zone\nand the maximum allowed number of connections for a given key value.\nWhen this limit is exceeded, the server will return the\nerror\nin reply to a request.\nFor example, the directives\n",
            "example": "limit_conn_zone $binary_remote_addr zone=addr:10m;\n\nserver {\n    location /download/ {\n        limit_conn addr 1;\n    }\nlimit_conn_zone $binary_remote_addr zone=perip:10m;\nlimit_conn_zone $server_name zone=perserver:10m;\n\nserver {\n    ...\n    limit_conn perip 10;\n    limit_conn perserver 100;\n}\n"
        },
        {
            "name": "limit_conn_dry_run",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_limit_conn_module.html#limit_conn_dry_run",
            "doc": "\nEnables the dry run mode.\nIn this mode, the number of connections is not limited, however,\nin the shared memory zone, the number of excessive connections is accounted\nas usual.\n",
            "example": ""
        },
        {
            "name": "limit_conn_log_level",
            "value": "\"info\" | \"notice\" | \"warn\" | \"error\"",
            "type": "\"info\" | \"notice\" | \"warn\" | \"error\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_limit_conn_module.html#limit_conn_log_level",
            "doc": "\nSets the desired logging level for cases when the server\nlimits the number of connections.\n",
            "example": ""
        },
        {
            "name": "limit_conn_status",
            "value": "code",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_limit_conn_module.html#limit_conn_status",
            "doc": "\nSets the status code to return in response to rejected requests.\n",
            "example": ""
        },
        {
            "name": "limit_conn_zone",
            "value": "key    zone=name:size",
            "type": "any",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_limit_conn_module.html#limit_conn_zone",
            "doc": "\nSets parameters for a shared memory zone\nthat will keep states for various keys.\nIn particular, the state includes the current number of connections.\nThe key can contain text, variables, and their combination.\nRequests with an empty key value are not accounted.\n",
            "example": "limit_conn_zone $binary_remote_addr zone=addr:10m;\n"
        },
        {
            "name": "limit_zone",
            "value": "name    $variable    size",
            "type": "any",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_limit_conn_module.html#limit_zone",
            "doc": "\nThis directive was made obsolete in version 1.1.8\nand was removed in version 1.7.6.\nAn equivalent limit_conn_zone directive\nwith a changed syntax should be used instead:\n",
            "example": ""
        },
        {
            "name": "limit_req",
            "value": "\"zone=name    [burst=number]    [nodelay\" | \"delay=number]\"",
            "type": "\"zone=name    [burst=number]    [nodelay\" | \"delay=number]\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_limit_req_module.html#limit_req",
            "doc": "\nSets the shared memory zone\nand the maximum burst size of requests.\nIf the requests rate exceeds the rate configured for a zone,\ntheir processing is delayed such that requests are processed\nat a defined rate.\nExcessive requests are delayed until their number exceeds the\nmaximum burst size\nin which case the request is terminated with an\nerror.\nBy default, the maximum burst size is equal to zero.\nFor example, the directives\n",
            "example": "limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;\n\nserver {\n    location /search/ {\n        limit_req zone=one burst=5;\n    }\nlimit_req zone=one burst=5 nodelay;\nlimit_req_zone $binary_remote_addr zone=perip:10m rate=1r/s;\nlimit_req_zone $server_name zone=perserver:10m rate=10r/s;\n\nserver {\n    ...\n    limit_req zone=perip burst=5 nodelay;\n    limit_req zone=perserver burst=10;\n}\n"
        },
        {
            "name": "limit_req_dry_run",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_limit_req_module.html#limit_req_dry_run",
            "doc": "\nEnables the dry run mode.\nIn this mode, requests processing rate is not limited, however,\nin the shared memory zone, the number of excessive requests is accounted\nas usual.\n",
            "example": ""
        },
        {
            "name": "limit_req_log_level",
            "value": "\"info\" | \"notice\" | \"warn\" | \"error\"",
            "type": "\"info\" | \"notice\" | \"warn\" | \"error\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_limit_req_module.html#limit_req_log_level",
            "doc": "\nSets the desired logging level\nfor cases when the server refuses to process requests\ndue to rate exceeding,\nor delays request processing.\nLogging level for delays is one point less than for refusals; for example,\nif “limit_req_log_level notice” is specified,\ndelays are logged with the info level.\n",
            "example": ""
        },
        {
            "name": "limit_req_status",
            "value": "code",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_limit_req_module.html#limit_req_status",
            "doc": "\nSets the status code to return in response to rejected requests.\n",
            "example": ""
        },
        {
            "name": "limit_req_zone",
            "value": "key    zone=name:size    rate=rate    [sync]",
            "type": "any",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_limit_req_module.html#limit_req_zone",
            "doc": "\nSets parameters for a shared memory zone\nthat will keep states for various keys.\nIn particular, the state stores the current number of excessive requests.\nThe key can contain text, variables, and their combination.\nRequests with an empty key value are not accounted.\n",
            "example": "limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;\n"
        },
        {
            "name": "access_log",
            "value": "path    [format    [buffer=size]    [gzip[=level]]    [flush=time]    [if=condition]]access_log off",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_log_module.html#access_log",
            "doc": "\nSets the path, format, and configuration for a buffered log write.\nSeveral logs can be specified on the same configuration level.\nLogging to syslog\ncan be configured by specifying\nthe “syslog:” prefix in the first parameter.\nThe special value off cancels all\naccess_log directives on the current level.\nIf the format is not specified then the predefined\n“combined” format is used.\n",
            "example": "access_log /path/to/log.gz combined gzip flush=5m;\nmap $status $loggable {\n    ~^[23]  0;\n    default 1;\n}\n\naccess_log /path/to/access.log combined if=$loggable;\n"
        },
        {
            "name": "log_format",
            "value": "\"name    [escape=default\" | \"json\" | string",
            "type": "\"name    [escape=default\" | \"json\" | string",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_log_module.html#log_format",
            "doc": "\nSpecifies log format.\n",
            "example": "log_format combined '$remote_addr - $remote_user [$time_local] '\n                    '\"$request\" $status $body_bytes_sent '\n                    '\"$http_referer\" \"$http_user_agent\"';\n"
        },
        {
            "name": "open_log_file_cache",
            "value": "max=N[inactive=time][min_uses=N][valid=time]open_log_file_cache off",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_log_module.html#open_log_file_cache",
            "doc": "\nDefines a cache that stores the file descriptors of frequently used logs\nwhose names contain variables.\nThe directive has the following parameters:\n",
            "example": "open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2;\n"
        },
        {
            "name": "map",
            "value": "string    $variable { ... }",
            "type": "any",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_map_module.html#map",
            "doc": "\nCreates a new variable whose value\ndepends on values of one or more of the source variables\nspecified in the first parameter.\n",
            "example": ""
        },
        {
            "name": "map_hash_bucket_size",
            "value": "size",
            "type": "string",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_map_module.html#map_hash_bucket_size",
            "doc": "\nSets the bucket size for the map variables hash tables.\nDefault value depends on the processor’s cache line size.\nThe details of setting up hash tables are provided in a separate\ndocument.\n",
            "example": ""
        },
        {
            "name": "map_hash_max_size",
            "value": "size",
            "type": "string",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_map_module.html#map_hash_max_size",
            "doc": "\nSets the maximum size of the map variables\nhash tables.\nThe details of setting up hash tables are provided in a separate\ndocument.\n",
            "example": ""
        },
        {
            "name": "memcached_bind",
            "value": "\"address    [transparent ]\" | \"off\"",
            "type": "\"address    [transparent ]\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_memcached_module.html#memcached_bind",
            "doc": "\nMakes outgoing connections to a memcached server originate\nfrom the specified local IP address with an optional port (1.11.2).\nParameter value can contain variables (1.3.12).\nThe special value off (1.3.12) cancels the effect\nof the memcached_bind directive\ninherited from the previous configuration level, which allows the\nsystem to auto-assign the local IP address and port.\n",
            "example": "memcached_bind $remote_addr transparent;\n"
        },
        {
            "name": "memcached_buffer_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_memcached_module.html#memcached_buffer_size",
            "doc": "\nSets the size of the buffer used for reading the response\nreceived from the memcached server.\nThe response is passed to the client synchronously, as soon as it is received.\n",
            "example": ""
        },
        {
            "name": "memcached_connect_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_memcached_module.html#memcached_connect_timeout",
            "doc": "\nDefines a timeout for establishing a connection with a memcached server.\nIt should be noted that this timeout cannot usually exceed 75 seconds.\n",
            "example": ""
        },
        {
            "name": "memcached_force_ranges",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_memcached_module.html#memcached_force_ranges",
            "doc": "\nEnables byte-range support\nfor both cached and uncached responses from the memcached server\nregardless of the “Accept-Ranges” field in these responses.\n",
            "example": ""
        },
        {
            "name": "memcached_gzip_flag",
            "value": "flag",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_memcached_module.html#memcached_gzip_flag",
            "doc": "\nEnables the test for the flag presence in the memcached\nserver response and sets the “Content-Encoding”\nresponse header field to “gzip”\nif the flag is set.\n",
            "example": ""
        },
        {
            "name": "memcached_next_upstream",
            "value": "\"error\" | \"timeout\" | \"invalid_response\" | \"not_found\" | string",
            "type": "\"error\" | \"timeout\" | \"invalid_response\" | \"not_found\" | string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_memcached_module.html#memcached_next_upstream",
            "doc": "\nSpecifies in which cases a request should be passed to the next server:\n",
            "example": ""
        },
        {
            "name": "memcached_next_upstream_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_memcached_module.html#memcached_next_upstream_timeout",
            "doc": "\nLimits the time during which a request can be passed to the\nnext server.\nThe 0 value turns off this limitation.\n",
            "example": ""
        },
        {
            "name": "memcached_next_upstream_tries",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_memcached_module.html#memcached_next_upstream_tries",
            "doc": "\nLimits the number of possible tries for passing a request to the\nnext server.\nThe 0 value turns off this limitation.\n",
            "example": ""
        },
        {
            "name": "memcached_pass",
            "value": "address",
            "type": "any",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_memcached_module.html#memcached_pass",
            "doc": "\nSets the memcached server address.\nThe address can be specified as a domain name or IP address,\nand a port:\n",
            "example": "memcached_pass localhost:11211;\nmemcached_pass unix:/tmp/memcached.socket;\n"
        },
        {
            "name": "memcached_read_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_memcached_module.html#memcached_read_timeout",
            "doc": "\nDefines a timeout for reading a response from the memcached server.\nThe timeout is set only between two successive read operations,\nnot for the transmission of the whole response.\nIf the memcached server does not transmit anything within this time,\nthe connection is closed.\n",
            "example": ""
        },
        {
            "name": "memcached_send_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_memcached_module.html#memcached_send_timeout",
            "doc": "\nSets a timeout for transmitting a request to the memcached server.\nThe timeout is set only between two successive write operations,\nnot for the transmission of the whole request.\nIf the memcached server does not receive anything within this time,\nthe connection is closed.\n",
            "example": ""
        },
        {
            "name": "memcached_socket_keepalive",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_memcached_module.html#memcached_socket_keepalive",
            "doc": "\nConfigures the “TCP keepalive” behavior\nfor outgoing connections to a memcached server.\nBy default, the operating system’s settings are in effect for the socket.\nIf the directive is set to the value “on”, the\nSO_KEEPALIVE socket option is turned on for the socket.\n",
            "example": ""
        },
        {
            "name": "mirror",
            "value": "\"uri\" | \"off\"",
            "type": "\"uri\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_mirror_module.html#mirror",
            "doc": "\nSets the URI to which an original request will be mirrored.\nSeveral mirrors can be specified on the same configuration level.\n",
            "example": ""
        },
        {
            "name": "mirror_request_body",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_mirror_module.html#mirror_request_body",
            "doc": "\nIndicates whether the client request body is mirrored.\nWhen enabled, the client request body will be read\nprior to creating mirror subrequests.\nIn this case, unbuffered client request body proxying\nset by the\nproxy_request_buffering,\nfastcgi_request_buffering,\nscgi_request_buffering,\nand\nuwsgi_request_buffering\ndirectives will be disabled.\n",
            "example": "location / {\n    mirror /mirror;\n    mirror_request_body off;\n    proxy_pass http://backend;\n}\n\nlocation = /mirror {\n    internal;\n    proxy_pass http://log_backend;\n    proxy_pass_request_body off;\n    proxy_set_header Content-Length \"\";\n    proxy_set_header X-Original-URI $request_uri;\n}\n"
        },
        {
            "name": "mp4",
            "value": "",
            "type": "any",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_mp4_module.html#mp4",
            "doc": "\nTurns on module processing in a surrounding location.\n",
            "example": ""
        },
        {
            "name": "mp4_buffer_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_mp4_module.html#mp4_buffer_size",
            "doc": "\nSets the initial size of the buffer used for\nprocessing MP4 files.\n",
            "example": ""
        },
        {
            "name": "mp4_max_buffer_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_mp4_module.html#mp4_max_buffer_size",
            "doc": "\nDuring metadata processing, a larger buffer may become necessary.\nIts size cannot exceed the specified size,\nor else nginx will return the\n500 (Internal Server Error) server error,\nand log the following message:\n",
            "example": "\"/some/movie/file.mp4\" mp4 moov atom is too large:\n12583268, you may want to increase mp4_max_buffer_size\n"
        },
        {
            "name": "mp4_limit_rate",
            "value": "\"on\" | \"off\" | \"factor\"",
            "type": "\"on\" | \"off\" | \"factor\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_mp4_module.html#mp4_limit_rate",
            "doc": "\nLimits the rate of response transmission to a client.\nThe rate is limited based on the average bitrate of the\nMP4 file served.\nTo calculate the rate, the bitrate is multiplied by the specified\nfactor.\nThe special value “on” corresponds to the factor of 1.1.\nThe special value “off” disables rate limiting.\nThe limit is set per a request, and so if a client simultaneously opens\ntwo connections, the overall rate will be twice as much\nas the specified limit.\n",
            "example": ""
        },
        {
            "name": "mp4_limit_rate_after",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_mp4_module.html#mp4_limit_rate_after",
            "doc": "\nSets the initial amount of media data (measured in playback time)\nafter which the further transmission of the response to a client\nwill be rate limited.\n",
            "example": ""
        },
        {
            "name": "perl",
            "value": "\"module::function\" | \"'sub { ... }'\"",
            "type": "\"module::function\" | \"'sub { ... }'\"",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_perl_module.html#perl",
            "doc": "\nSets a Perl handler for the given location.\n",
            "example": ""
        },
        {
            "name": "perl_modules",
            "value": "path",
            "type": "string",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_perl_module.html#perl_modules",
            "doc": "\nSets an additional path for Perl modules.\n",
            "example": ""
        },
        {
            "name": "perl_require",
            "value": "module",
            "type": "any",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_perl_module.html#perl_require",
            "doc": "\nDefines the name of a module that will be loaded during each\nreconfiguration.\nSeveral perl_require directives can be present.\n",
            "example": ""
        },
        {
            "name": "perl_set",
            "value": "\"$variable    module::function\" | \"'sub { ... }'\"",
            "type": "\"$variable    module::function\" | \"'sub { ... }'\"",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_perl_module.html#perl_set",
            "doc": "\nInstalls a Perl handler for the specified variable.\n",
            "example": "<!--# perl sub=\"module::function\" arg=\"parameter1\" arg=\"parameter2\" ...\n-->\n"
        },
        {
            "name": "proxy_bind",
            "value": "\"address    [transparent]\" | \"off\"",
            "type": "\"address    [transparent]\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_bind",
            "doc": "\nMakes outgoing connections to a proxied server originate\nfrom the specified local IP address with an optional port (1.11.2).\nParameter value can contain variables (1.3.12).\nThe special value off (1.3.12) cancels the effect\nof the proxy_bind directive\ninherited from the previous configuration level, which allows the\nsystem to auto-assign the local IP address and port.\n",
            "example": "proxy_bind $remote_addr transparent;\n"
        },
        {
            "name": "proxy_buffer_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffer_size",
            "doc": "\nSets the size of the buffer used for reading the first part\nof the response received from the proxied server.\nThis part usually contains a small response header.\nBy default, the buffer size is equal to one memory page.\nThis is either 4K or 8K, depending on a platform.\nIt can be made smaller, however.\n",
            "example": ""
        },
        {
            "name": "proxy_buffering",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffering",
            "doc": "\nEnables or disables buffering of responses from the proxied server.\n",
            "example": ""
        },
        {
            "name": "proxy_buffers",
            "value": "number size",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffers",
            "doc": "\nSets the number and size of the\nbuffers used for reading a response from the proxied server,\nfor a single connection.\nBy default, the buffer size is equal to one memory page.\nThis is either 4K or 8K, depending on a platform.\n",
            "example": ""
        },
        {
            "name": "proxy_busy_buffers_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_busy_buffers_size",
            "doc": "\nWhen buffering of responses from the proxied\nserver is enabled, limits the total size of buffers that\ncan be busy sending a response to the client while the response is not\nyet fully read.\nIn the meantime, the rest of the buffers can be used for reading the response\nand, if needed, buffering part of the response to a temporary file.\nBy default, size is limited by the size of two buffers set by the\nproxy_buffer_size and proxy_buffers directives.\n",
            "example": ""
        },
        {
            "name": "proxy_cache",
            "value": "\"zone\" | \"off\"",
            "type": "\"zone\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache",
            "doc": "\nDefines a shared memory zone used for caching.\nThe same zone can be used in several places.\nParameter value can contain variables (1.7.9).\nThe off parameter disables caching inherited\nfrom the previous configuration level.\n",
            "example": ""
        },
        {
            "name": "proxy_cache_background_update",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_background_update",
            "doc": "\nAllows starting a background subrequest\nto update an expired cache item,\nwhile a stale cached response is returned to the client.\nNote that it is necessary to\nallow\nthe usage of a stale cached response when it is being updated.\n",
            "example": ""
        },
        {
            "name": "proxy_cache_bypass",
            "value": "string ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_bypass",
            "doc": "\nDefines conditions under which the response will not be taken from a cache.\nIf at least one value of the string parameters is not empty and is not\nequal to “0” then the response will not be taken from the cache:\n",
            "example": "proxy_cache_bypass $cookie_nocache $arg_nocache$arg_comment;\nproxy_cache_bypass $http_pragma    $http_authorization;\n"
        },
        {
            "name": "proxy_cache_convert_head",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_convert_head",
            "doc": "\nEnables or disables the conversion of the “HEAD” method\nto “GET” for caching.\nWhen the conversion is disabled, the\ncache key should be configured\nto include the $request_method.\n",
            "example": ""
        },
        {
            "name": "proxy_cache_key",
            "value": "string",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_key",
            "doc": "\nDefines a key for caching, for example\n",
            "example": "proxy_cache_key \"$host$request_uri $cookie_user\";\nproxy_cache_key $scheme$proxy_host$uri$is_args$args;\n"
        },
        {
            "name": "proxy_cache_lock",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_lock",
            "doc": "\nWhen enabled, only one request at a time will be allowed to populate\na new cache element identified according to the proxy_cache_key\ndirective by passing a request to a proxied server.\nOther requests of the same cache element will either wait\nfor a response to appear in the cache or the cache lock for\nthis element to be released, up to the time set by the\nproxy_cache_lock_timeout directive.\n",
            "example": ""
        },
        {
            "name": "proxy_cache_lock_age",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_lock_age",
            "doc": "\nIf the last request passed to the proxied server\nfor populating a new cache element\nhas not completed for the specified time,\none more request may be passed to the proxied server.\n",
            "example": ""
        },
        {
            "name": "proxy_cache_lock_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_lock_timeout",
            "doc": "\nSets a timeout for proxy_cache_lock.\nWhen the time expires,\nthe request will be passed to the proxied server,\nhowever, the response will not be cached.\n",
            "example": ""
        },
        {
            "name": "proxy_cache_max_range_offset",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_max_range_offset",
            "doc": "\nSets an offset in bytes for byte-range requests.\nIf the range is beyond the offset,\nthe range request will be passed to the proxied server\nand the response will not be cached.\n",
            "example": ""
        },
        {
            "name": "proxy_cache_methods",
            "value": "\"GET\" | \"HEAD\" | string",
            "type": "\"GET\" | \"HEAD\" | string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_methods",
            "doc": "\nIf the client request method is listed in this directive then\nthe response will be cached.\n“GET” and “HEAD” methods are always\nadded to the list, though it is recommended to specify them explicitly.\nSee also the proxy_no_cache directive.\n",
            "example": ""
        },
        {
            "name": "proxy_cache_min_uses",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_min_uses",
            "doc": "\nSets the number of requests after which the response\nwill be cached.\n",
            "example": ""
        },
        {
            "name": "proxy_cache_path",
            "value": "\"path    [levels=levels]    [use_temp_path=on\" | \"off]    keys_zone=name:size    [inactive=time]    [max_size=size]    [min_free=size]    [manager_files=number]    [manager_sleep=time]    [manager_threshold=time]    [loader_files=number]    [loader_sleep=time]    [loader_threshold=time]    [purger=on\" | \"off]    [purger_files=number]    [purger_sleep=time]    [purger_threshold=time]\"",
            "type": "\"path    [levels=levels]    [use_temp_path=on\" | \"off]    keys_zone=name:size    [inactive=time]    [max_size=size]    [min_free=size]    [manager_files=number]    [manager_sleep=time]    [manager_threshold=time]    [loader_files=number]    [loader_sleep=time]    [loader_threshold=time]    [purger=on\" | \"off]    [purger_files=number]    [purger_sleep=time]    [purger_threshold=time]\"",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_path",
            "doc": "\nSets the path and other parameters of a cache.\nCache data are stored in files.\nThe file name in a cache is a result of\napplying the MD5 function to the\ncache key.\nThe levels parameter defines hierarchy levels of a cache:\nfrom 1 to 3, each level accepts values 1 or 2.\nFor example, in the following configuration\n",
            "example": "proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m;\n/data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029c\n"
        },
        {
            "name": "proxy_cache_purge",
            "value": "string ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_purge",
            "doc": "\nDefines conditions under which the request will be considered a cache\npurge request.\nIf at least one value of the string parameters is not empty and is not equal\nto “0” then the cache entry with a corresponding\ncache key is removed.\nThe result of successful operation is indicated by returning\nthe 204 (No Content) response.\n",
            "example": "proxy_cache_path /data/nginx/cache keys_zone=cache_zone:10m;\n\nmap $request_method $purge_method {\n    PURGE   1;\n    default 0;\n}\n\nserver {\n    ...\n    location / {\n        proxy_pass http://backend;\n        proxy_cache cache_zone;\n        proxy_cache_key $uri;\n        proxy_cache_purge $purge_method;\n    }\n}\n"
        },
        {
            "name": "proxy_cache_revalidate",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_revalidate",
            "doc": "\nEnables revalidation of expired cache items using conditional requests with\nthe “If-Modified-Since” and “If-None-Match”\nheader fields.\n",
            "example": ""
        },
        {
            "name": "proxy_cache_use_stale",
            "value": "\"error\" | \"timeout\" | \"invalid_header\" | \"updating\" | \"http_500\" | \"http_502\" | \"http_503\" | \"http_504\" | \"http_403\" | \"http_404\" | \"http_429\" | string",
            "type": "\"error\" | \"timeout\" | \"invalid_header\" | \"updating\" | \"http_500\" | \"http_502\" | \"http_503\" | \"http_504\" | \"http_403\" | \"http_404\" | \"http_429\" | string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_use_stale",
            "doc": "\nDetermines in which cases a stale cached response can be used\nduring communication with the proxied server.\nThe directive’s parameters match the parameters of the\nproxy_next_upstream directive.\n",
            "example": ""
        },
        {
            "name": "proxy_cache_valid",
            "value": "[code ...] time",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_valid",
            "doc": "\nSets caching time for different response codes.\nFor example, the following directives\n",
            "example": "proxy_cache_valid 200 302 10m;\nproxy_cache_valid 404      1m;\nproxy_cache_valid 5m;\nproxy_cache_valid 200 302 10m;\nproxy_cache_valid 301      1h;\nproxy_cache_valid any      1m;\n"
        },
        {
            "name": "proxy_connect_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_connect_timeout",
            "doc": "\nDefines a timeout for establishing a connection with a proxied server.\nIt should be noted that this timeout cannot usually exceed 75 seconds.\n",
            "example": ""
        },
        {
            "name": "proxy_cookie_domain",
            "value": "offproxy_cookie_domain domain replacement",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cookie_domain",
            "doc": "\nSets a text that should be changed in the domain\nattribute of the “Set-Cookie” header fields of a\nproxied server response.\nSuppose a proxied server returned the “Set-Cookie”\nheader field with the attribute\n“domain=localhost”.\nThe directive\n",
            "example": "proxy_cookie_domain localhost example.org;\nproxy_cookie_domain www.$host $host;\nproxy_cookie_domain ~\\.(?P<sl_domain>[-0-9a-z]+\\.[a-z]+)$ $sl_domain;\nproxy_cookie_domain localhost example.org;\nproxy_cookie_domain ~\\.([a-z]+\\.[a-z]+)$ $1;\n"
        },
        {
            "name": "proxy_cookie_flags",
            "value": "\"off\" | \"cookie    [flag ...]\"",
            "type": "\"off\" | \"cookie    [flag ...]\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cookie_flags",
            "doc": "\nSets one or more flags for the cookie.\nThe cookie can contain text, variables, and their combinations.\nThe flag\ncan contain text, variables, and their combinations (1.19.8).\nThe\nsecure,\nhttponly,\nsamesite=strict,\nsamesite=lax,\nsamesite=none\nparameters add the corresponding flags.\nThe\nnosecure,\nnohttponly,\nnosamesite\nparameters remove the corresponding flags.\n",
            "example": "proxy_cookie_flags one httponly;\nproxy_cookie_flags ~ nosecure samesite=strict;\n"
        },
        {
            "name": "proxy_cookie_path",
            "value": "offproxy_cookie_path path replacement",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cookie_path",
            "doc": "\nSets a text that should be changed in the path\nattribute of the “Set-Cookie” header fields of a\nproxied server response.\nSuppose a proxied server returned the “Set-Cookie”\nheader field with the attribute\n“path=/two/some/uri/”.\nThe directive\n",
            "example": "proxy_cookie_path /two/ /;\nproxy_cookie_path $uri /some$uri;\nproxy_cookie_path ~*^/user/([^/]+) /u/$1;\nproxy_cookie_path /one/ /;\nproxy_cookie_path / /two/;\n"
        },
        {
            "name": "proxy_force_ranges",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_force_ranges",
            "doc": "\nEnables byte-range support\nfor both cached and uncached responses from the proxied server\nregardless of the “Accept-Ranges” field in these responses.\n",
            "example": ""
        },
        {
            "name": "proxy_headers_hash_bucket_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_headers_hash_bucket_size",
            "doc": "\nSets the bucket size for hash tables\nused by the proxy_hide_header and proxy_set_header\ndirectives.\nThe details of setting up hash tables are provided in a separate\ndocument.\n",
            "example": ""
        },
        {
            "name": "proxy_headers_hash_max_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_headers_hash_max_size",
            "doc": "\nSets the maximum size of hash tables\nused by the proxy_hide_header and proxy_set_header\ndirectives.\nThe details of setting up hash tables are provided in a separate\ndocument.\n",
            "example": ""
        },
        {
            "name": "proxy_hide_header",
            "value": "field",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_hide_header",
            "doc": "\nBy default,\nnginx does not pass the header fields “Date”,\n“Server”, “X-Pad”, and\n“X-Accel-...” from the response of a proxied\nserver to a client.\nThe proxy_hide_header directive sets additional fields\nthat will not be passed.\nIf, on the contrary, the passing of fields needs to be permitted,\nthe proxy_pass_header directive can be used.\n",
            "example": ""
        },
        {
            "name": "proxy_http_version",
            "value": "\"1.0\" | \"1.1\"",
            "type": "\"1.0\" | \"1.1\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_http_version",
            "doc": "\nSets the HTTP protocol version for proxying.\nBy default, version 1.0 is used.\nVersion 1.1 is recommended for use with\nkeepalive\nconnections and\nNTLM authentication.\n",
            "example": ""
        },
        {
            "name": "proxy_ignore_client_abort",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ignore_client_abort",
            "doc": "\nDetermines whether the connection with a proxied server should be\nclosed when a client closes the connection without waiting\nfor a response.\n",
            "example": ""
        },
        {
            "name": "proxy_ignore_headers",
            "value": "field ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ignore_headers",
            "doc": "\nDisables processing of certain response header fields from the proxied server.\nThe following fields can be ignored: “X-Accel-Redirect”,\n“X-Accel-Expires”, “X-Accel-Limit-Rate” (1.1.6),\n“X-Accel-Buffering” (1.1.6),\n“X-Accel-Charset” (1.1.6), “Expires”,\n“Cache-Control”, “Set-Cookie” (0.8.44),\nand “Vary” (1.7.7).\n",
            "example": ""
        },
        {
            "name": "proxy_intercept_errors",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_intercept_errors",
            "doc": "\nDetermines whether proxied responses with codes greater than or equal\nto 300 should be passed to a client\nor be intercepted and redirected to nginx for processing\nwith the error_page directive.\n",
            "example": ""
        },
        {
            "name": "proxy_limit_rate",
            "value": "rate",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_limit_rate",
            "doc": "\nLimits the speed of reading the response from the proxied server.\nThe rate is specified in bytes per second.\nThe zero value disables rate limiting.\nThe limit is set per a request, and so if nginx simultaneously opens\ntwo connections to the proxied server,\nthe overall rate will be twice as much as the specified limit.\nThe limitation works only if\nbuffering of responses from the proxied\nserver is enabled.\n",
            "example": ""
        },
        {
            "name": "proxy_max_temp_file_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_max_temp_file_size",
            "doc": "\nWhen buffering of responses from the proxied\nserver is enabled, and the whole response does not fit into the buffers\nset by the proxy_buffer_size and proxy_buffers\ndirectives, a part of the response can be saved to a temporary file.\nThis directive sets the maximum size of the temporary file.\nThe size of data written to the temporary file at a time is set\nby the proxy_temp_file_write_size directive.\n",
            "example": ""
        },
        {
            "name": "proxy_method",
            "value": "method",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_method",
            "doc": "\nSpecifies the HTTP method to use in requests forwarded\nto the proxied server instead of the method from the client request.\nParameter value can contain variables (1.11.6).\n",
            "example": ""
        },
        {
            "name": "proxy_next_upstream",
            "value": "\"error\" | \"timeout\" | \"invalid_header\" | \"http_500\" | \"http_502\" | \"http_503\" | \"http_504\" | \"http_403\" | \"http_404\" | \"http_429\" | \"non_idempotent\" | string",
            "type": "\"error\" | \"timeout\" | \"invalid_header\" | \"http_500\" | \"http_502\" | \"http_503\" | \"http_504\" | \"http_403\" | \"http_404\" | \"http_429\" | \"non_idempotent\" | string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream",
            "doc": "\nSpecifies in which cases a request should be passed to the next server:\n",
            "example": ""
        },
        {
            "name": "proxy_next_upstream_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream_timeout",
            "doc": "\nLimits the time during which a request can be passed to the\nnext server.\nThe 0 value turns off this limitation.\n",
            "example": ""
        },
        {
            "name": "proxy_next_upstream_tries",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream_tries",
            "doc": "\nLimits the number of possible tries for passing a request to the\nnext server.\nThe 0 value turns off this limitation.\n",
            "example": ""
        },
        {
            "name": "proxy_no_cache",
            "value": "string ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_no_cache",
            "doc": "\nDefines conditions under which the response will not be saved to a cache.\nIf at least one value of the string parameters is not empty and is not\nequal to “0” then the response will not be saved:\n",
            "example": "proxy_no_cache $cookie_nocache $arg_nocache$arg_comment;\nproxy_no_cache $http_pragma    $http_authorization;\n"
        },
        {
            "name": "proxy_pass",
            "value": "URL",
            "type": "any",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass",
            "doc": "\nSets the protocol and address of a proxied server and an optional URI\nto which a location should be mapped.\nAs a protocol, “http” or “https”\ncan be specified.\nThe address can be specified as a domain name or IP address,\nand an optional port:\n",
            "example": "proxy_pass http://localhost:8000/uri/;\nproxy_pass http://unix:/tmp/backend.socket:/uri/;\n"
        },
        {
            "name": "proxy_pass_header",
            "value": "field",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass_header",
            "doc": "\nPermits passing otherwise disabled header\nfields from a proxied server to a client.\n",
            "example": ""
        },
        {
            "name": "proxy_pass_request_body",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass_request_body",
            "doc": "\nIndicates whether the original request body is passed\nto the proxied server.\n",
            "example": "location /x-accel-redirect-here/ {\n    proxy_method GET;\n    proxy_pass_request_body off;\n    proxy_set_header Content-Length \"\";\n\n    proxy_pass ...\n}\n"
        },
        {
            "name": "proxy_pass_request_headers",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass_request_headers",
            "doc": "\nIndicates whether the header fields of the original request are passed\nto the proxied server.\n",
            "example": "location /x-accel-redirect-here/ {\n    proxy_method GET;\n    proxy_pass_request_headers off;\n    proxy_pass_request_body off;\n\n    proxy_pass ...\n}\n"
        },
        {
            "name": "proxy_read_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_read_timeout",
            "doc": "\nDefines a timeout for reading a response from the proxied server.\nThe timeout is set only between two successive read operations,\nnot for the transmission of the whole response.\nIf the proxied server does not transmit anything within this time,\nthe connection is closed.\n",
            "example": ""
        },
        {
            "name": "proxy_redirect",
            "value": "defaultproxy_redirect offproxy_redirect redirect replacement",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect",
            "doc": "\nSets the text that should be changed in the “Location”\nand “Refresh” header fields of a proxied server response.\nSuppose a proxied server returned the header field\n“Location: http://localhost:8000/two/some/uri/”.\nThe directive\n",
            "example": "proxy_redirect http://localhost:8000/two/ http://frontend/one/;\nproxy_redirect http://localhost:8000/two/ /;\nlocation /one/ {\n    proxy_pass     http://upstream:port/two/;\n    proxy_redirect default;\nlocation /one/ {\n    proxy_pass     http://upstream:port/two/;\n    proxy_redirect http://upstream:port/two/ /one/;\nproxy_redirect http://localhost:8000/ http://$host:$server_port/;\nproxy_redirect http://$proxy_host:8000/ /;\nproxy_redirect ~^(http://[^:]+):\\d+(/.+)$ $1$2;\nproxy_redirect ~*/user/([^/]+)/(.+)$      http://$1.example.com/$2;\nproxy_redirect default;\nproxy_redirect http://localhost:8000/  /;\nproxy_redirect http://www.example.com/ /;\nproxy_redirect / /;\n"
        },
        {
            "name": "proxy_request_buffering",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_request_buffering",
            "doc": "\nEnables or disables buffering of a client request body.\n",
            "example": ""
        },
        {
            "name": "proxy_send_lowat",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_send_lowat",
            "doc": "\nIf the directive is set to a non-zero value, nginx will try to\nminimize the number\nof send operations on outgoing connections to a proxied server by using either\nNOTE_LOWAT flag of the\nkqueue method,\nor the SO_SNDLOWAT socket option,\nwith the specified size.\n",
            "example": ""
        },
        {
            "name": "proxy_send_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_send_timeout",
            "doc": "\nSets a timeout for transmitting a request to the proxied server.\nThe timeout is set only between two successive write operations,\nnot for the transmission of the whole request.\nIf the proxied server does not receive anything within this time,\nthe connection is closed.\n",
            "example": ""
        },
        {
            "name": "proxy_set_body",
            "value": "value",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_set_body",
            "doc": "\nAllows redefining the request body passed to the proxied server.\nThe value can contain text, variables, and their combination.\n",
            "example": ""
        },
        {
            "name": "proxy_set_header",
            "value": "field value",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_set_header",
            "doc": "\nAllows redefining or appending fields to the request header\npassed to the proxied server.\nThe value can contain text, variables, and their combinations.\nThese directives are inherited from the previous configuration level\nif and only if there are no proxy_set_header directives\ndefined on the current level.\nBy default, only two fields are redefined:\n",
            "example": "proxy_set_header Host       $proxy_host;\nproxy_set_header Connection close;\nproxy_set_header Host       $http_host;\nproxy_set_header Host       $host;\nproxy_set_header Host       $host:$proxy_port;\nproxy_set_header Accept-Encoding \"\";\n"
        },
        {
            "name": "proxy_socket_keepalive",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_socket_keepalive",
            "doc": "\nConfigures the “TCP keepalive” behavior\nfor outgoing connections to a proxied server.\nBy default, the operating system’s settings are in effect for the socket.\nIf the directive is set to the value “on”, the\nSO_KEEPALIVE socket option is turned on for the socket.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_certificate",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ssl_certificate",
            "doc": "\nSpecifies a file with the certificate in the PEM format\nused for authentication to a proxied HTTPS server.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_certificate_key",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ssl_certificate_key",
            "doc": "\nSpecifies a file with the secret key in the PEM format\nused for authentication to a proxied HTTPS server.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_ciphers",
            "value": "ciphers",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ssl_ciphers",
            "doc": "\nSpecifies the enabled ciphers for requests to a proxied HTTPS server.\nThe ciphers are specified in the format understood by the OpenSSL library.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_conf_command",
            "value": "command",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ssl_conf_command",
            "doc": "\nSets arbitrary OpenSSL configuration\ncommands\nwhen establishing a connection with the proxied HTTPS server.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_crl",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ssl_crl",
            "doc": "\nSpecifies a file with revoked certificates (CRL)\nin the PEM format used to verify\nthe certificate of the proxied HTTPS server.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_name",
            "value": "name",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ssl_name",
            "doc": "\nAllows overriding the server name used to\nverify\nthe certificate of the proxied HTTPS server and to be\npassed through SNI\nwhen establishing a connection with the proxied HTTPS server.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_password_file",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ssl_password_file",
            "doc": "\nSpecifies a file with passphrases for\nsecret keys\nwhere each passphrase is specified on a separate line.\nPassphrases are tried in turn when loading the key.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_protocols",
            "value": "[SSLv2]    [SSLv3]    [TLSv1]    [TLSv1.1]    [TLSv1.2]    [TLSv1.3]",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ssl_protocols",
            "doc": "\nEnables the specified protocols for requests to a proxied HTTPS server.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_server_name",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ssl_server_name",
            "doc": "\nEnables or disables passing of the server name through\nTLS\nServer Name Indication extension (SNI, RFC 6066)\nwhen establishing a connection with the proxied HTTPS server.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_session_reuse",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ssl_session_reuse",
            "doc": "\nDetermines whether SSL sessions can be reused when working with\nthe proxied server.\nIf the errors\n“SSL3_GET_FINISHED:digest check failed”\nappear in the logs, try disabling session reuse.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_trusted_certificate",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ssl_trusted_certificate",
            "doc": "\nSpecifies a file with trusted CA certificates in the PEM format\nused to verify\nthe certificate of the proxied HTTPS server.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_verify",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ssl_verify",
            "doc": "\nEnables or disables verification of the proxied HTTPS server certificate.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_verify_depth",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_ssl_verify_depth",
            "doc": "\nSets the verification depth in the proxied HTTPS server certificates chain.\n",
            "example": ""
        },
        {
            "name": "proxy_store",
            "value": "\"on\" | \"off\" | string",
            "type": "\"on\" | \"off\" | string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_store",
            "doc": "\nEnables saving of files to a disk.\nThe on parameter saves files with paths\ncorresponding to the directives\nalias or\nroot.\nThe off parameter disables saving of files.\nIn addition, the file name can be set explicitly using the\nstring with variables:\n",
            "example": "proxy_store /data/www$original_uri;\nlocation /images/ {\n    root               /data/www;\n    error_page         404 = /fetch$uri;\n}\n\nlocation /fetch/ {\n    internal;\n\n    proxy_pass         http://backend/;\n    proxy_store        on;\n    proxy_store_access user:rw group:rw all:r;\n    proxy_temp_path    /data/temp;\n\n    alias              /data/www/;\n}\nlocation /images/ {\n    root               /data/www;\n    error_page         404 = @fetch;\n}\n\nlocation @fetch {\n    internal;\n\n    proxy_pass         http://backend;\n    proxy_store        on;\n    proxy_store_access user:rw group:rw all:r;\n    proxy_temp_path    /data/temp;\n\n    root               /data/www;\n}\n"
        },
        {
            "name": "proxy_store_access",
            "value": "users:permissions ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_store_access",
            "doc": "\nSets access permissions for newly created files and directories, e.g.:\n",
            "example": "proxy_store_access user:rw group:rw all:r;\nproxy_store_access group:rw all:r;\n"
        },
        {
            "name": "proxy_temp_file_write_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_temp_file_write_size",
            "doc": "\nLimits the size of data written to a temporary file\nat a time, when buffering of responses from the proxied server\nto temporary files is enabled.\nBy default, size is limited by two buffers set by the\nproxy_buffer_size and proxy_buffers directives.\nThe maximum size of a temporary file is set by the\nproxy_max_temp_file_size directive.\n",
            "example": ""
        },
        {
            "name": "proxy_temp_path",
            "value": "path    [level1    [level2    [level3]]]",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_temp_path",
            "doc": "\nDefines a directory for storing temporary files\nwith data received from proxied servers.\nUp to three-level subdirectory hierarchy can be used underneath the specified\ndirectory.\nFor example, in the following configuration\n",
            "example": "proxy_temp_path /spool/nginx/proxy_temp 1 2;\n/spool/nginx/proxy_temp/7/45/00000123457\n"
        },
        {
            "name": "random_index",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_random_index_module.html#random_index",
            "doc": "\nEnables or disables module processing in a surrounding location.\n",
            "example": ""
        },
        {
            "name": "set_real_ip_from",
            "value": "\"address\" | \"CIDR\" | \"unix:\"",
            "type": "\"address\" | \"CIDR\" | \"unix:\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_realip_module.html#set_real_ip_from",
            "doc": "\nDefines trusted addresses that are known to send correct\nreplacement addresses.\nIf the special value unix: is specified,\nall UNIX-domain sockets will be trusted.\nTrusted addresses may also be specified using a hostname (1.13.1).\n",
            "example": ""
        },
        {
            "name": "real_ip_header",
            "value": "\"field\" | \"X-Real-IP\" | \"X-Forwarded-For\" | \"proxy_protocol\"",
            "type": "\"field\" | \"X-Real-IP\" | \"X-Forwarded-For\" | \"proxy_protocol\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_realip_module.html#real_ip_header",
            "doc": "\nDefines the request header field\nwhose value will be used to replace the client address.\n",
            "example": ""
        },
        {
            "name": "real_ip_recursive",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_realip_module.html#real_ip_recursive",
            "doc": "\nIf recursive search is disabled, the original client address that\nmatches one of the trusted addresses is replaced by the last\naddress sent in the request header field defined by the\nreal_ip_header directive.\nIf recursive search is enabled, the original client address that\nmatches one of the trusted addresses is replaced by the last\nnon-trusted address sent in the request header field.\n",
            "example": ""
        },
        {
            "name": "referer_hash_bucket_size",
            "value": "size",
            "type": "string",
            "context": [
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_referer_module.html#referer_hash_bucket_size",
            "doc": "\nSets the bucket size for the valid referers hash tables.\nThe details of setting up hash tables are provided in a separate\ndocument.\n",
            "example": ""
        },
        {
            "name": "referer_hash_max_size",
            "value": "size",
            "type": "string",
            "context": [
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_referer_module.html#referer_hash_max_size",
            "doc": "\nSets the maximum size of the valid referers hash tables.\nThe details of setting up hash tables are provided in a separate\ndocument.\n",
            "example": ""
        },
        {
            "name": "valid_referers",
            "value": "\"none\" | \"blocked\" | \"server_names\" | string",
            "type": "\"none\" | \"blocked\" | \"server_names\" | string",
            "context": [
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_referer_module.html#valid_referers",
            "doc": "\nSpecifies the “Referer” request header field values\nthat will cause the embedded $invalid_referer variable to\nbe set to an empty string.\nOtherwise, the variable will be set to “1”.\nSearch for a match is case-insensitive.\n",
            "example": "valid_referers none blocked server_names\n               *.example.com example.* www.example.org/galleries/\n               ~\\.google\\.;\n"
        },
        {
            "name": "break",
            "value": "",
            "type": "any",
            "context": [
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#break",
            "doc": "\nStops processing the current set of\nngx_http_rewrite_module directives.\n",
            "example": "if ($slow) {\n    limit_rate 10k;\n    break;\n}\n"
        },
        {
            "name": "if",
            "value": "(condition) { ... }",
            "type": "any",
            "context": [
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#if",
            "doc": "\nThe specified condition is evaluated.\nIf true, this module directives specified inside the braces are\nexecuted, and the request is assigned the configuration inside the\nif directive.\nConfigurations inside the if directives are\ninherited from the previous configuration level.\n",
            "example": "if ($http_user_agent ~ MSIE) {\n    rewrite ^(.*)$ /msie/$1 break;\n}\n\nif ($http_cookie ~* \"id=([^;]+)(?:;|$)\") {\n    set $id $1;\n}\n\nif ($request_method = POST) {\n    return 405;\n}\n\nif ($slow) {\n    limit_rate 10k;\n}\n\nif ($invalid_referer) {\n    return 403;\n}\n"
        },
        {
            "name": "return",
            "value": "code [text]return code URLreturn URL",
            "type": "any",
            "context": [
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return",
            "doc": "\nStops processing and returns the specified code to a client.\nThe non-standard code 444 closes a connection without sending\na response header.\n",
            "example": ""
        },
        {
            "name": "rewrite",
            "value": "regex    replacement    [flag]",
            "type": "any",
            "context": [
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite",
            "doc": "\nIf the specified regular expression matches a request URI, URI is changed\nas specified in the replacement string.\nThe rewrite directives are executed sequentially\nin order of their appearance in the configuration file.\nIt is possible to terminate further processing of the directives using flags.\nIf a replacement string starts with “http://”,\n“https://”, or “$scheme”,\nthe processing stops and the redirect is returned to a client.\n",
            "example": "server {\n    ...\n    rewrite ^(/download/.*)/media/(.*)\\..*$ $1/mp3/$2.mp3 last;\n    rewrite ^(/download/.*)/audio/(.*)\\..*$ $1/mp3/$2.ra  last;\n    return  403;\n    ...\n}\nlocation /download/ {\n    rewrite ^(/download/.*)/media/(.*)\\..*$ $1/mp3/$2.mp3 break;\n    rewrite ^(/download/.*)/audio/(.*)\\..*$ $1/mp3/$2.ra  break;\n    return  403;\n}\nrewrite ^/users/(.*)$ /show?user=$1? last;\n"
        },
        {
            "name": "rewrite_log",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite_log",
            "doc": "\nEnables or disables logging of ngx_http_rewrite_module\nmodule directives processing results\ninto the error_log at\nthe notice level.\n",
            "example": ""
        },
        {
            "name": "set",
            "value": "$variable value",
            "type": "any",
            "context": [
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#set",
            "doc": "\nSets a value for the specified variable.\nThe value can contain text, variables, and their combination.\n",
            "example": ""
        },
        {
            "name": "uninitialized_variable_warn",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#uninitialized_variable_warn",
            "doc": "\nControls whether warnings about uninitialized variables are logged.\n",
            "example": "location /download/ {\n    if ($forbidden) {\n        return 403;\n    }\n\n    if ($slow) {\n        limit_rate 10k;\n    }\n\n    rewrite ^/(download/.*)/media/(.*)\\..*$ /$1/mp3/$2.mp3 break;\n}\nvariable $forbidden\ncheck against zero\n    return 403\n    end of code\nvariable $slow\ncheck against zero\nmatch of regular expression\ncopy \"/\"\ncopy $1\ncopy \"/mp3/\"\ncopy $2\ncopy \".mp3\"\nend of regular expression\nend of code\nrewrite ^/(download/.*)/media/(.*)\\..*$ /$1/mp3/$2.mp3 break;\nrewrite ^(/download/.*)/media/(.*)\\..*$ $1/mp3/$2.mp3 break;\nmatch of regular expression\ncopy $1\ncopy \"/mp3/\"\ncopy $2\ncopy \".mp3\"\nend of regular expression\nend of code\n"
        },
        {
            "name": "scgi_bind",
            "value": "\"address    [transparent]\" | \"off\"",
            "type": "\"address    [transparent]\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_bind",
            "doc": "\nMakes outgoing connections to an SCGI server originate\nfrom the specified local IP address with an optional port (1.11.2).\nParameter value can contain variables (1.3.12).\nThe special value off (1.3.12) cancels the effect\nof the scgi_bind directive\ninherited from the previous configuration level, which allows the\nsystem to auto-assign the local IP address and port.\n",
            "example": "scgi_bind $remote_addr transparent;\n"
        },
        {
            "name": "scgi_buffer_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_buffer_size",
            "doc": "\nSets the size of the buffer used for reading the first part\nof the response received from the SCGI server.\nThis part usually contains a small response header.\nBy default, the buffer size is equal to one memory page.\nThis is either 4K or 8K, depending on a platform.\nIt can be made smaller, however.\n",
            "example": ""
        },
        {
            "name": "scgi_buffering",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_buffering",
            "doc": "\nEnables or disables buffering of responses from the SCGI server.\n",
            "example": ""
        },
        {
            "name": "scgi_buffers",
            "value": "number size",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_buffers",
            "doc": "\nSets the number and size of the\nbuffers used for reading a response from the SCGI server,\nfor a single connection.\nBy default, the buffer size is equal to one memory page.\nThis is either 4K or 8K, depending on a platform.\n",
            "example": ""
        },
        {
            "name": "scgi_busy_buffers_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_busy_buffers_size",
            "doc": "\nWhen buffering of responses from the SCGI\nserver is enabled, limits the total size of buffers that\ncan be busy sending a response to the client while the response is not\nyet fully read.\nIn the meantime, the rest of the buffers can be used for reading the response\nand, if needed, buffering part of the response to a temporary file.\nBy default, size is limited by the size of two buffers set by the\nscgi_buffer_size and scgi_buffers directives.\n",
            "example": ""
        },
        {
            "name": "scgi_cache",
            "value": "\"zone\" | \"off\"",
            "type": "\"zone\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_cache",
            "doc": "\nDefines a shared memory zone used for caching.\nThe same zone can be used in several places.\nParameter value can contain variables (1.7.9).\nThe off parameter disables caching inherited\nfrom the previous configuration level.\n",
            "example": ""
        },
        {
            "name": "scgi_cache_background_update",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_cache_background_update",
            "doc": "\nAllows starting a background subrequest\nto update an expired cache item,\nwhile a stale cached response is returned to the client.\nNote that it is necessary to\nallow\nthe usage of a stale cached response when it is being updated.\n",
            "example": ""
        },
        {
            "name": "scgi_cache_bypass",
            "value": "string ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_cache_bypass",
            "doc": "\nDefines conditions under which the response will not be taken from a cache.\nIf at least one value of the string parameters is not empty and is not\nequal to “0” then the response will not be taken from the cache:\n",
            "example": "scgi_cache_bypass $cookie_nocache $arg_nocache$arg_comment;\nscgi_cache_bypass $http_pragma    $http_authorization;\n"
        },
        {
            "name": "scgi_cache_key",
            "value": "string",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_cache_key",
            "doc": "\nDefines a key for caching, for example\n",
            "example": "scgi_cache_key localhost:9000$request_uri;\n"
        },
        {
            "name": "scgi_cache_lock",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_cache_lock",
            "doc": "\nWhen enabled, only one request at a time will be allowed to populate\na new cache element identified according to the scgi_cache_key\ndirective by passing a request to an SCGI server.\nOther requests of the same cache element will either wait\nfor a response to appear in the cache or the cache lock for\nthis element to be released, up to the time set by the\nscgi_cache_lock_timeout directive.\n",
            "example": ""
        },
        {
            "name": "scgi_cache_lock_age",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_cache_lock_age",
            "doc": "\nIf the last request passed to the SCGI server\nfor populating a new cache element\nhas not completed for the specified time,\none more request may be passed to the SCGI server.\n",
            "example": ""
        },
        {
            "name": "scgi_cache_lock_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_cache_lock_timeout",
            "doc": "\nSets a timeout for scgi_cache_lock.\nWhen the time expires,\nthe request will be passed to the SCGI server,\nhowever, the response will not be cached.\n",
            "example": ""
        },
        {
            "name": "scgi_cache_max_range_offset",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_cache_max_range_offset",
            "doc": "\nSets an offset in bytes for byte-range requests.\nIf the range is beyond the offset,\nthe range request will be passed to the SCGI server\nand the response will not be cached.\n",
            "example": ""
        },
        {
            "name": "scgi_cache_methods",
            "value": "\"GET\" | \"HEAD\" | string",
            "type": "\"GET\" | \"HEAD\" | string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_cache_methods",
            "doc": "\nIf the client request method is listed in this directive then\nthe response will be cached.\n“GET” and “HEAD” methods are always\nadded to the list, though it is recommended to specify them explicitly.\nSee also the scgi_no_cache directive.\n",
            "example": ""
        },
        {
            "name": "scgi_cache_min_uses",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_cache_min_uses",
            "doc": "\nSets the number of requests after which the response\nwill be cached.\n",
            "example": ""
        },
        {
            "name": "scgi_cache_path",
            "value": "\"path    [levels=levels]    [use_temp_path=on\" | \"off]    keys_zone=name:size    [inactive=time]    [max_size=size]    [min_free=size]    [manager_files=number]    [manager_sleep=time]    [manager_threshold=time]    [loader_files=number]    [loader_sleep=time]    [loader_threshold=time]    [purger=on\" | \"off]    [purger_files=number]    [purger_sleep=time]    [purger_threshold=time]\"",
            "type": "\"path    [levels=levels]    [use_temp_path=on\" | \"off]    keys_zone=name:size    [inactive=time]    [max_size=size]    [min_free=size]    [manager_files=number]    [manager_sleep=time]    [manager_threshold=time]    [loader_files=number]    [loader_sleep=time]    [loader_threshold=time]    [purger=on\" | \"off]    [purger_files=number]    [purger_sleep=time]    [purger_threshold=time]\"",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_cache_path",
            "doc": "\nSets the path and other parameters of a cache.\nCache data are stored in files.\nThe file name in a cache is a result of\napplying the MD5 function to the\ncache key.\nThe levels parameter defines hierarchy levels of a cache:\nfrom 1 to 3, each level accepts values 1 or 2.\nFor example, in the following configuration\n",
            "example": "scgi_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m;\n/data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029c\n"
        },
        {
            "name": "scgi_cache_purge",
            "value": "string ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_cache_purge",
            "doc": "\nDefines conditions under which the request will be considered a cache\npurge request.\nIf at least one value of the string parameters is not empty and is not equal\nto “0” then the cache entry with a corresponding\ncache key is removed.\nThe result of successful operation is indicated by returning\nthe 204 (No Content) response.\n",
            "example": "scgi_cache_path /data/nginx/cache keys_zone=cache_zone:10m;\n\nmap $request_method $purge_method {\n    PURGE   1;\n    default 0;\n}\n\nserver {\n    ...\n    location / {\n        scgi_pass        backend;\n        scgi_cache       cache_zone;\n        scgi_cache_key   $uri;\n        scgi_cache_purge $purge_method;\n    }\n}\n"
        },
        {
            "name": "scgi_cache_revalidate",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_cache_revalidate",
            "doc": "\nEnables revalidation of expired cache items using conditional requests with\nthe “If-Modified-Since” and “If-None-Match”\nheader fields.\n",
            "example": ""
        },
        {
            "name": "scgi_cache_use_stale",
            "value": "\"error\" | \"timeout\" | \"invalid_header\" | \"updating\" | \"http_500\" | \"http_503\" | \"http_403\" | \"http_404\" | \"http_429\" | string",
            "type": "\"error\" | \"timeout\" | \"invalid_header\" | \"updating\" | \"http_500\" | \"http_503\" | \"http_403\" | \"http_404\" | \"http_429\" | string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_cache_use_stale",
            "doc": "\nDetermines in which cases a stale cached response can be used\nwhen an error occurs during communication with the SCGI server.\nThe directive’s parameters match the parameters of the\nscgi_next_upstream directive.\n",
            "example": ""
        },
        {
            "name": "scgi_cache_valid",
            "value": "[code ...] time",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_cache_valid",
            "doc": "\nSets caching time for different response codes.\nFor example, the following directives\n",
            "example": "scgi_cache_valid 200 302 10m;\nscgi_cache_valid 404      1m;\nscgi_cache_valid 5m;\nscgi_cache_valid 200 302 10m;\nscgi_cache_valid 301      1h;\nscgi_cache_valid any      1m;\n"
        },
        {
            "name": "scgi_connect_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_connect_timeout",
            "doc": "\nDefines a timeout for establishing a connection with an SCGI server.\nIt should be noted that this timeout cannot usually exceed 75 seconds.\n",
            "example": ""
        },
        {
            "name": "scgi_force_ranges",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_force_ranges",
            "doc": "\nEnables byte-range support\nfor both cached and uncached responses from the SCGI server\nregardless of the “Accept-Ranges” field in these responses.\n",
            "example": ""
        },
        {
            "name": "scgi_hide_header",
            "value": "field",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_hide_header",
            "doc": "\nBy default,\nnginx does not pass the header fields “Status” and\n“X-Accel-...” from the response of an SCGI\nserver to a client.\nThe scgi_hide_header directive sets additional fields\nthat will not be passed.\nIf, on the contrary, the passing of fields needs to be permitted,\nthe scgi_pass_header directive can be used.\n",
            "example": ""
        },
        {
            "name": "scgi_ignore_client_abort",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_ignore_client_abort",
            "doc": "\nDetermines whether the connection with an SCGI server should be\nclosed when a client closes the connection without waiting\nfor a response.\n",
            "example": ""
        },
        {
            "name": "scgi_ignore_headers",
            "value": "field ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_ignore_headers",
            "doc": "\nDisables processing of certain response header fields from the SCGI server.\nThe following fields can be ignored: “X-Accel-Redirect”,\n“X-Accel-Expires”, “X-Accel-Limit-Rate” (1.1.6),\n“X-Accel-Buffering” (1.1.6),\n“X-Accel-Charset” (1.1.6), “Expires”,\n“Cache-Control”, “Set-Cookie” (0.8.44),\nand “Vary” (1.7.7).\n",
            "example": ""
        },
        {
            "name": "scgi_intercept_errors",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_intercept_errors",
            "doc": "\nDetermines whether an SCGI server responses with codes greater than or equal\nto 300 should be passed to a client\nor be intercepted and redirected to nginx for processing\nwith the error_page directive.\n",
            "example": ""
        },
        {
            "name": "scgi_limit_rate",
            "value": "rate",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_limit_rate",
            "doc": "\nLimits the speed of reading the response from the SCGI server.\nThe rate is specified in bytes per second.\nThe zero value disables rate limiting.\nThe limit is set per a request, and so if nginx simultaneously opens\ntwo connections to the SCGI server,\nthe overall rate will be twice as much as the specified limit.\nThe limitation works only if\nbuffering of responses from the SCGI\nserver is enabled.\n",
            "example": ""
        },
        {
            "name": "scgi_max_temp_file_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_max_temp_file_size",
            "doc": "\nWhen buffering of responses from the SCGI\nserver is enabled, and the whole response does not fit into the buffers\nset by the scgi_buffer_size and scgi_buffers\ndirectives, a part of the response can be saved to a temporary file.\nThis directive sets the maximum size of the temporary file.\nThe size of data written to the temporary file at a time is set\nby the scgi_temp_file_write_size directive.\n",
            "example": ""
        },
        {
            "name": "scgi_next_upstream",
            "value": "\"error\" | \"timeout\" | \"invalid_header\" | \"http_500\" | \"http_503\" | \"http_403\" | \"http_404\" | \"http_429\" | \"non_idempotent\" | string",
            "type": "\"error\" | \"timeout\" | \"invalid_header\" | \"http_500\" | \"http_503\" | \"http_403\" | \"http_404\" | \"http_429\" | \"non_idempotent\" | string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_next_upstream",
            "doc": "\nSpecifies in which cases a request should be passed to the next server:\n",
            "example": ""
        },
        {
            "name": "scgi_next_upstream_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_next_upstream_timeout",
            "doc": "\nLimits the time during which a request can be passed to the\nnext server.\nThe 0 value turns off this limitation.\n",
            "example": ""
        },
        {
            "name": "scgi_next_upstream_tries",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_next_upstream_tries",
            "doc": "\nLimits the number of possible tries for passing a request to the\nnext server.\nThe 0 value turns off this limitation.\n",
            "example": ""
        },
        {
            "name": "scgi_no_cache",
            "value": "string ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_no_cache",
            "doc": "\nDefines conditions under which the response will not be saved to a cache.\nIf at least one value of the string parameters is not empty and is not\nequal to “0” then the response will not be saved:\n",
            "example": "scgi_no_cache $cookie_nocache $arg_nocache$arg_comment;\nscgi_no_cache $http_pragma    $http_authorization;\n"
        },
        {
            "name": "scgi_param",
            "value": "parameter value    [if_not_empty]",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_param",
            "doc": "\nSets a parameter that should be passed to the SCGI server.\nThe value can contain text, variables, and their combination.\nThese directives are inherited from the previous configuration level\nif and only if there are no scgi_param directives\ndefined on the current level.\n",
            "example": "location / {\n    include scgi_params;\n    ...\n}\nscgi_param HTTPS $https if_not_empty;\n"
        },
        {
            "name": "scgi_pass",
            "value": "address",
            "type": "any",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_pass",
            "doc": "\nSets the address of an SCGI server.\nThe address can be specified as a domain name or IP address,\nand a port:\n",
            "example": "scgi_pass localhost:9000;\nscgi_pass unix:/tmp/scgi.socket;\n"
        },
        {
            "name": "scgi_pass_header",
            "value": "field",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_pass_header",
            "doc": "\nPermits passing otherwise disabled header\nfields from an SCGI server to a client.\n",
            "example": ""
        },
        {
            "name": "scgi_pass_request_body",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_pass_request_body",
            "doc": "\nIndicates whether the original request body is passed\nto the SCGI server.\nSee also the scgi_pass_request_headers directive.\n",
            "example": ""
        },
        {
            "name": "scgi_pass_request_headers",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_pass_request_headers",
            "doc": "\nIndicates whether the header fields of the original request are passed\nto the SCGI server.\nSee also the scgi_pass_request_body directive.\n",
            "example": ""
        },
        {
            "name": "scgi_read_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_read_timeout",
            "doc": "\nDefines a timeout for reading a response from the SCGI server.\nThe timeout is set only between two successive read operations,\nnot for the transmission of the whole response.\nIf the SCGI server does not transmit anything within this time,\nthe connection is closed.\n",
            "example": ""
        },
        {
            "name": "scgi_request_buffering",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_request_buffering",
            "doc": "\nEnables or disables buffering of a client request body.\n",
            "example": ""
        },
        {
            "name": "scgi_send_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_send_timeout",
            "doc": "\nSets a timeout for transmitting a request to the SCGI server.\nThe timeout is set only between two successive write operations,\nnot for the transmission of the whole request.\nIf the SCGI server does not receive anything within this time,\nthe connection is closed.\n",
            "example": ""
        },
        {
            "name": "scgi_socket_keepalive",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_socket_keepalive",
            "doc": "\nConfigures the “TCP keepalive” behavior\nfor outgoing connections to an SCGI server.\nBy default, the operating system’s settings are in effect for the socket.\nIf the directive is set to the value “on”, the\nSO_KEEPALIVE socket option is turned on for the socket.\n",
            "example": ""
        },
        {
            "name": "scgi_store",
            "value": "\"on\" | \"off\" | string",
            "type": "\"on\" | \"off\" | string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_store",
            "doc": "\nEnables saving of files to a disk.\nThe on parameter saves files with paths\ncorresponding to the directives\nalias or\nroot.\nThe off parameter disables saving of files.\nIn addition, the file name can be set explicitly using the\nstring with variables:\n",
            "example": "scgi_store /data/www$original_uri;\nlocation /images/ {\n    root              /data/www;\n    error_page        404 = /fetch$uri;\n}\n\nlocation /fetch/ {\n    internal;\n\n    scgi_pass         backend:9000;\n    ...\n\n    scgi_store        on;\n    scgi_store_access user:rw group:rw all:r;\n    scgi_temp_path    /data/temp;\n\n    alias             /data/www/;\n}\n"
        },
        {
            "name": "scgi_store_access",
            "value": "users:permissions ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_store_access",
            "doc": "\nSets access permissions for newly created files and directories, e.g.:\n",
            "example": "scgi_store_access user:rw group:rw all:r;\nscgi_store_access group:rw all:r;\n"
        },
        {
            "name": "scgi_temp_file_write_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_temp_file_write_size",
            "doc": "\nLimits the size of data written to a temporary file\nat a time, when buffering of responses from the SCGI server\nto temporary files is enabled.\nBy default, size is limited by two buffers set by the\nscgi_buffer_size and scgi_buffers directives.\nThe maximum size of a temporary file is set by the\nscgi_max_temp_file_size directive.\n",
            "example": ""
        },
        {
            "name": "scgi_temp_path",
            "value": "path    [level1    [level2    [level3]]]",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_scgi_module.html#scgi_temp_path",
            "doc": "\nDefines a directory for storing temporary files\nwith data received from SCGI servers.\nUp to three-level subdirectory hierarchy can be used underneath the specified\ndirectory.\nFor example, in the following configuration\n",
            "example": "scgi_temp_path /spool/nginx/scgi_temp 1 2;\n/spool/nginx/scgi_temp/7/45/00000123457\n"
        },
        {
            "name": "secure_link",
            "value": "expression",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_secure_link_module.html#secure_link",
            "doc": "\nDefines a string with variables from which the\nchecksum value and lifetime of a link will be extracted.\n",
            "example": ""
        },
        {
            "name": "secure_link_md5",
            "value": "expression",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_secure_link_module.html#secure_link_md5",
            "doc": "\nDefines an expression for which the MD5 hash value will\nbe computed and compared with the value passed in a request.\n",
            "example": "location /s/ {\n    secure_link $arg_md5,$arg_expires;\n    secure_link_md5 \"$secure_link_expires$uri$remote_addr secret\";\n\n    if ($secure_link = \"\") {\n        return 403;\n    }\n\n    if ($secure_link = \"0\") {\n        return 410;\n    }\n\n    ...\n}\necho -n '2147483647/s/link127.0.0.1 secret' | \\\n    openssl md5 -binary | openssl base64 | tr +/ -_ | tr -d =\n"
        },
        {
            "name": "secure_link_secret",
            "value": "word",
            "type": "any",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_secure_link_module.html#secure_link_secret",
            "doc": "\nDefines a secret word used to check authenticity\nof requested links.\n",
            "example": "/prefix/hash/link\nlocation /p/ {\n    secure_link_secret secret;\n\n    if ($secure_link = \"\") {\n        return 403;\n    }\n\n    rewrite ^ /secure/$secure_link;\n}\n\nlocation /secure/ {\n    internal;\n}\necho -n 'linksecret' | openssl md5 -hex\n"
        },
        {
            "name": "session_log",
            "value": "\"name\" | \"off\"",
            "type": "\"name\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_session_log_module.html#session_log",
            "doc": "\nEnables the use of the specified session log.\nThe special value off cancels the effect\nof the session_log directives\ninherited from the previous configuration level.\n",
            "example": ""
        },
        {
            "name": "session_log_format",
            "value": "name    string ...",
            "type": "any",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_session_log_module.html#session_log_format",
            "doc": "\nSpecifies the output format of a log.\nThe value of the $body_bytes_sent variable is aggregated across\nall requests in a session.\nThe values of all other variables available for logging correspond to the\nfirst request in a session.\n",
            "example": ""
        },
        {
            "name": "session_log_zone",
            "value": "path    zone=name:size    [format=format]    [timeout=time]    [id=id]    [md5=md5]",
            "type": "any",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_session_log_module.html#session_log_zone",
            "doc": "\nSets the path to a log file and configures the shared memory zone that is used\nto store currently active sessions.\n",
            "example": ""
        },
        {
            "name": "slice",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_slice_module.html#slice",
            "doc": "\nSets the size of the slice.\nThe zero value disables splitting responses into slices.\nNote that a too low value may result in excessive memory usage\nand opening a large number of files.\n",
            "example": ""
        },
        {
            "name": "spdy_chunk_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_spdy_module.html#spdy_chunk_size",
            "doc": "\nSets the maximum size of chunks\ninto which the response body is\n\nsliced.\nA too low value results in higher overhead.\nA too high value impairs prioritization due to\n\nHOL blocking.\n",
            "example": ""
        },
        {
            "name": "spdy_headers_comp",
            "value": "level",
            "type": "any",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_spdy_module.html#spdy_headers_comp",
            "doc": "\nSets the header compression level of a response in a range from\n1 (fastest, less compression) to 9 (slowest, best compression).\nThe special value 0 turns off the header compression.\n",
            "example": ""
        },
        {
            "name": "split_clients",
            "value": "string    $variable { ... }",
            "type": "any",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_split_clients_module.html#split_clients",
            "doc": "\nCreates a variable for A/B testing, for example:\n",
            "example": "split_clients \"${remote_addr}AAA\" $variant {\n               0.5%               .one;\n               2.0%               .two;\n               *                  \"\";\n}\n"
        },
        {
            "name": "ssi",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssi_module.html#ssi",
            "doc": "\nEnables or disables processing of SSI commands in responses.\n",
            "example": ""
        },
        {
            "name": "ssi_last_modified",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssi_module.html#ssi_last_modified",
            "doc": "\nAllows preserving the “Last-Modified” header field\nfrom the original response during SSI processing\nto facilitate response caching.\n",
            "example": ""
        },
        {
            "name": "ssi_min_file_chunk",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssi_module.html#ssi_min_file_chunk",
            "doc": "\nSets the minimum size for parts of a response stored on disk,\nstarting from which it makes sense to send them using\nsendfile.\n",
            "example": ""
        },
        {
            "name": "ssi_silent_errors",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssi_module.html#ssi_silent_errors",
            "doc": "\nIf enabled, suppresses the output of the\n“[an error occurred while processing the directive]”\nstring if an error occurred during SSI processing.\n",
            "example": ""
        },
        {
            "name": "ssi_types",
            "value": "mime-type ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssi_module.html#ssi_types",
            "doc": "\nEnables processing of SSI commands in responses with the specified MIME types\nin addition to “text/html”.\nThe special value “*” matches any MIME type (0.8.29).\n",
            "example": ""
        },
        {
            "name": "ssi_value_length",
            "value": "length",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssi_module.html#ssi_value_length",
            "doc": "\nSets the maximum length of parameter values in SSI commands.\n",
            "example": "<!--# command parameter1=value1 parameter2=value2 ... -->\n"
        },
        {
            "name": "ssl",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl",
            "doc": "\nThis directive was made obsolete in version 1.15.0.\nThe ssl parameter\nof the listen directive\nshould be used instead.\n",
            "example": ""
        },
        {
            "name": "ssl_buffer_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_buffer_size",
            "doc": "\nSets the size of the buffer used for sending data.\n",
            "example": "ssl_buffer_size 4k;\n"
        },
        {
            "name": "ssl_certificate",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_certificate",
            "doc": "\nSpecifies a file with the certificate in the PEM format\nfor the given virtual server.\nIf intermediate certificates should be specified in addition to a primary\ncertificate, they should be specified in the same file in the following\norder: the primary certificate comes first, then the intermediate certificates.\nA secret key in the PEM format may be placed in the same file.\n",
            "example": "server {\n    listen              443 ssl;\n    server_name         example.com;\n\n    ssl_certificate     example.com.rsa.crt;\n    ssl_certificate_key example.com.rsa.key;\n\n    ssl_certificate     example.com.ecdsa.crt;\n    ssl_certificate_key example.com.ecdsa.key;\n\n    ...\n}\nssl_certificate     $ssl_server_name.crt;\nssl_certificate_key $ssl_server_name.key;\n"
        },
        {
            "name": "ssl_certificate_key",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_certificate_key",
            "doc": "\nSpecifies a file with the secret key in the PEM format\nfor the given virtual server.\n",
            "example": ""
        },
        {
            "name": "ssl_ciphers",
            "value": "ciphers",
            "type": "any",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_ciphers",
            "doc": "\nSpecifies the enabled ciphers.\nThe ciphers are specified in the format understood by the\nOpenSSL library, for example:\n",
            "example": "ssl_ciphers ALL:!aNULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;\n"
        },
        {
            "name": "ssl_client_certificate",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_client_certificate",
            "doc": "\nSpecifies a file with trusted CA certificates in the PEM format\nused to verify client certificates and\nOCSP responses if ssl_stapling is enabled.\n",
            "example": ""
        },
        {
            "name": "ssl_conf_command",
            "value": "command",
            "type": "any",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_conf_command",
            "doc": "\nSets arbitrary OpenSSL configuration\ncommands.\n",
            "example": "ssl_conf_command Options PrioritizeChaCha;\nssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;\n"
        },
        {
            "name": "ssl_crl",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_crl",
            "doc": "\nSpecifies a file with revoked certificates (CRL)\nin the PEM format used to verify\nclient certificates.\n",
            "example": ""
        },
        {
            "name": "ssl_dhparam",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_dhparam",
            "doc": "\nSpecifies a file with DH parameters for DHE ciphers.\n",
            "example": ""
        },
        {
            "name": "ssl_early_data",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data",
            "doc": "\nEnables or disables TLS 1.3\nearly data.\n",
            "example": "proxy_set_header Early-Data $ssl_early_data;\n"
        },
        {
            "name": "ssl_ecdh_curve",
            "value": "curve",
            "type": "any",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_ecdh_curve",
            "doc": "\nSpecifies a curve for ECDHE ciphers.\n",
            "example": "ssl_ecdh_curve prime256v1:secp384r1;\n"
        },
        {
            "name": "ssl_ocsp",
            "value": "\"on\" | \"off\" | \"leaf\"",
            "type": "\"on\" | \"off\" | \"leaf\"",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_ocsp",
            "doc": "\nEnables OCSP validation of the client certificate chain.\nThe leaf parameter\nenables validation of the client certificate only.\n",
            "example": "ssl_verify_client on;\nssl_ocsp          on;\nresolver          192.0.2.1;\n"
        },
        {
            "name": "ssl_ocsp_cache",
            "value": "\"off\" | \"[shared:name:size]\"",
            "type": "\"off\" | \"[shared:name:size]\"",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_ocsp_cache",
            "doc": "\nSets name and size of the cache\nthat stores client certificates status for OCSP validation.\nThe cache is shared between all worker processes.\nA cache with the same name can be used in several virtual servers.\n",
            "example": ""
        },
        {
            "name": "ssl_ocsp_responder",
            "value": "url",
            "type": "any",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_ocsp_responder",
            "doc": "\nOverrides the URL of the OCSP responder specified in the\n“Authority\nInformation Access” certificate extension\nfor validation of client certificates.\n",
            "example": "ssl_ocsp_responder http://ocsp.example.com/;\n"
        },
        {
            "name": "ssl_password_file",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_password_file",
            "doc": "\nSpecifies a file with passphrases for\nsecret keys\nwhere each passphrase is specified on a separate line.\nPassphrases are tried in turn when loading the key.\n",
            "example": "http {\n    ssl_password_file /etc/keys/global.pass;\n    ...\n\n    server {\n        server_name www1.example.com;\n        ssl_certificate_key /etc/keys/first.key;\n    }\n\n    server {\n        server_name www2.example.com;\n\n        # named pipe can also be used instead of a file\n        ssl_password_file /etc/keys/fifo;\n        ssl_certificate_key /etc/keys/second.key;\n    }\n}\n"
        },
        {
            "name": "ssl_prefer_server_ciphers",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_prefer_server_ciphers",
            "doc": "\nSpecifies that server ciphers should be preferred over client\nciphers when using the SSLv3 and TLS protocols.\n",
            "example": ""
        },
        {
            "name": "ssl_protocols",
            "value": "[SSLv2]    [SSLv3]    [TLSv1]    [TLSv1.1]    [TLSv1.2]    [TLSv1.3]",
            "type": "any",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_protocols",
            "doc": "\nEnables the specified protocols.\n",
            "example": ""
        },
        {
            "name": "ssl_reject_handshake",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_reject_handshake",
            "doc": "\nIf enabled, SSL handshakes in\nthe server block will be rejected.\n",
            "example": "server {\n    listen               443 ssl default_server;\n    ssl_reject_handshake on;\n}\n\nserver {\n    listen              443 ssl;\n    server_name         example.com;\n    ssl_certificate     example.com.crt;\n    ssl_certificate_key example.com.key;\n}\n"
        },
        {
            "name": "ssl_session_cache",
            "value": "\"off\" | \"none\" | \"[builtin[:size]]    [shared:name:size]\"",
            "type": "\"off\" | \"none\" | \"[builtin[:size]]    [shared:name:size]\"",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_session_cache",
            "doc": "\nSets the types and sizes of caches that store session parameters.\nA cache can be of any of the following types:\n",
            "example": "ssl_session_cache builtin:1000 shared:SSL:10m;\n"
        },
        {
            "name": "ssl_session_ticket_key",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_session_ticket_key",
            "doc": "\nSets a file with the secret key used to encrypt\nand decrypt TLS session tickets.\nThe directive is necessary if the same key has to be shared between\nmultiple servers.\nBy default, a randomly generated key is used.\n",
            "example": "ssl_session_ticket_key current.key;\nssl_session_ticket_key previous.key;\nopenssl rand 80 > ticket.key\n"
        },
        {
            "name": "ssl_session_tickets",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_session_tickets",
            "doc": "\nEnables or disables session resumption through\nTLS session tickets.\n",
            "example": ""
        },
        {
            "name": "ssl_session_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_session_timeout",
            "doc": "\nSpecifies a time during which a client may reuse the\nsession parameters.\n",
            "example": ""
        },
        {
            "name": "ssl_stapling",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_stapling",
            "doc": "\nEnables or disables\nstapling\nof OCSP responses by the server.\nExample:\n",
            "example": "ssl_stapling on;\nresolver 192.0.2.1;\n"
        },
        {
            "name": "ssl_stapling_file",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_stapling_file",
            "doc": "\nWhen set, the stapled OCSP response will be taken from the\nspecified file instead of querying\nthe OCSP responder specified in the server certificate.\n",
            "example": ""
        },
        {
            "name": "ssl_stapling_responder",
            "value": "url",
            "type": "any",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_stapling_responder",
            "doc": "\nOverrides the URL of the OCSP responder specified in the\n“Authority\nInformation Access” certificate extension.\n",
            "example": "ssl_stapling_responder http://ocsp.example.com/;\n"
        },
        {
            "name": "ssl_stapling_verify",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_stapling_verify",
            "doc": "\nEnables or disables verification of OCSP responses by the server.\n",
            "example": ""
        },
        {
            "name": "ssl_trusted_certificate",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_trusted_certificate",
            "doc": "\nSpecifies a file with trusted CA certificates in the PEM format\nused to verify client certificates and\nOCSP responses if ssl_stapling is enabled.\n",
            "example": ""
        },
        {
            "name": "ssl_verify_client",
            "value": "\"on\" | \"off\" | \"optional\" | \"optional_no_ca\"",
            "type": "\"on\" | \"off\" | \"optional\" | \"optional_no_ca\"",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_client",
            "doc": "\nEnables verification of client certificates.\nThe verification result is stored in the\n$ssl_client_verify variable.\n",
            "example": ""
        },
        {
            "name": "ssl_verify_depth",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_verify_depth",
            "doc": "\nSets the verification depth in the client certificates chain.\n",
            "example": ""
        },
        {
            "name": "status",
            "value": "",
            "type": "any",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_status_module.html#status",
            "doc": "\nThe status information will be accessible from the surrounding location.\nAccess to this location should be\nlimited.\n",
            "example": ""
        },
        {
            "name": "status_format",
            "value": "jsonstatus_format jsonp [callback]",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_status_module.html#status_format",
            "doc": "\nBy default, status information is output in the JSON format.\n",
            "example": ""
        },
        {
            "name": "status_zone",
            "value": "zone",
            "type": "any",
            "context": [
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_status_module.html#status_zone",
            "doc": "\nEnables collection of virtual\nhttp\nor\nstream\n(1.7.11) server status information in the specified zone.\nSeveral servers may share the same zone.\n",
            "example": ""
        },
        {
            "name": "stub_status",
            "value": "",
            "type": "any",
            "context": [
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_stub_status_module.html#stub_status",
            "doc": "\nThe basic status information will be accessible from the surrounding location.\n",
            "example": ""
        },
        {
            "name": "sub_filter",
            "value": "string replacement",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_sub_module.html#sub_filter",
            "doc": "\nSets a string to replace and a replacement string.\nThe string to replace is matched ignoring the case.\nThe string to replace (1.9.4) and replacement string can contain variables.\nSeveral sub_filter directives\ncan be specified on the same configuration level (1.9.4).\nThese directives are inherited from the previous configuration level\nif and only if there are no sub_filter directives\ndefined on the current level.\n",
            "example": ""
        },
        {
            "name": "sub_filter_last_modified",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_sub_module.html#sub_filter_last_modified",
            "doc": "\nAllows preserving the “Last-Modified” header field\nfrom the original response during replacement\nto facilitate response caching.\n",
            "example": ""
        },
        {
            "name": "sub_filter_once",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_sub_module.html#sub_filter_once",
            "doc": "\nIndicates whether to look for each string to replace\nonce or repeatedly.\n",
            "example": ""
        },
        {
            "name": "sub_filter_types",
            "value": "mime-type ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_sub_module.html#sub_filter_types",
            "doc": "\nEnables string replacement in responses with the specified MIME types\nin addition to “text/html”.\nThe special value “*” matches any MIME type (0.8.29).\n",
            "example": ""
        },
        {
            "name": "upstream",
            "value": "name { ... }",
            "type": "any",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_upstream_module.html#upstream",
            "doc": "\nDefines a group of servers.\nServers can listen on different ports.\nIn addition, servers listening on TCP and UNIX-domain sockets\ncan be mixed.\n",
            "example": "upstream backend {\n    server backend1.example.com weight=5;\n    server 127.0.0.1:8080       max_fails=3 fail_timeout=30s;\n    server unix:/tmp/backend3;\n\n    server backup1.example.com  backup;\n}\n"
        },
        {
            "name": "server",
            "value": "address [parameters]",
            "type": "any",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_upstream_module.html#server",
            "doc": "\nDefines the address and other parameters\nof a server.\nThe address can be specified as a domain name or IP address,\nwith an optional port, or as a UNIX-domain socket path\nspecified after the “unix:” prefix.\nIf a port is not specified, the port 80 is used.\nA domain name that resolves to several IP addresses defines\nmultiple servers at once.\n",
            "example": ""
        },
        {
            "name": "zone",
            "value": "name [size]",
            "type": "any",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_upstream_module.html#zone",
            "doc": "\nDefines the name and size of the shared\nmemory zone that keeps the group’s configuration and run-time state that are\nshared between worker processes.\nSeveral groups may share the same zone.\nIn this case, it is enough to specify the size only once.\n",
            "example": ""
        },
        {
            "name": "state",
            "value": "file",
            "type": "any",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_upstream_module.html#state",
            "doc": "\nSpecifies a file that keeps the state\nof the dynamically configurable group.\n",
            "example": "state /var/lib/nginx/state/servers.conf; # path for Linux\nstate /var/db/nginx/state/servers.conf;  # path for FreeBSD\n"
        },
        {
            "name": "hash",
            "value": "key [consistent]",
            "type": "any",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_upstream_module.html#hash",
            "doc": "\nSpecifies a load balancing method for a server group\nwhere the client-server mapping is based on the hashed key value.\nThe key can contain text, variables, and their combinations.\nNote that adding or removing a server from the group\nmay result in remapping most of the keys to different servers.\nThe method is compatible with the\nCache::Memcached\nPerl library.\n",
            "example": ""
        },
        {
            "name": "ip_hash",
            "value": "",
            "type": "any",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_upstream_module.html#ip_hash",
            "doc": "\nSpecifies that a group should use a load balancing method where requests\nare distributed between servers based on client IP addresses.\nThe first three octets of the client IPv4 address, or the entire IPv6 address,\nare used as a hashing key.\nThe method ensures that requests from the same client will always be\npassed to the same server except when this server is unavailable.\nIn the latter case client requests will be passed to another server.\nMost probably, it will always be the same server as well.\n",
            "example": "upstream backend {\n    ip_hash;\n\n    server backend1.example.com;\n    server backend2.example.com;\n    server backend3.example.com down;\n    server backend4.example.com;\n}\n"
        },
        {
            "name": "keepalive",
            "value": "connections",
            "type": "any",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive",
            "doc": "\nActivates the cache for connections to upstream servers.\n",
            "example": "upstream memcached_backend {\n    server 127.0.0.1:11211;\n    server 10.0.0.2:11211;\n\n    keepalive 32;\n}\n\nserver {\n    ...\n\n    location /memcached/ {\n        set $memcached_key $uri;\n        memcached_pass memcached_backend;\n    }\n\n}\nupstream http_backend {\n    server 127.0.0.1:8080;\n\n    keepalive 16;\n}\n\nserver {\n    ...\n\n    location /http/ {\n        proxy_pass http://http_backend;\n        proxy_http_version 1.1;\n        proxy_set_header Connection \"\";\n        ...\n    }\n}\nupstream fastcgi_backend {\n    server 127.0.0.1:9000;\n\n    keepalive 8;\n}\n\nserver {\n    ...\n\n    location /fastcgi/ {\n        fastcgi_pass fastcgi_backend;\n        fastcgi_keep_conn on;\n        ...\n    }\n}\n"
        },
        {
            "name": "keepalive_requests",
            "value": "number",
            "type": "any",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive_requests",
            "doc": "\nSets the maximum number of requests that can be\nserved through one keepalive connection.\nAfter the maximum number of requests is made, the connection is closed.\n",
            "example": ""
        },
        {
            "name": "keepalive_time",
            "value": "time",
            "type": "string",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive_time",
            "doc": "\nLimits the maximum time during which\nrequests can be processed through one keepalive connection.\nAfter this time is reached, the connection is closed\nfollowing the subsequent request processing.\n",
            "example": ""
        },
        {
            "name": "keepalive_timeout",
            "value": "timeout",
            "type": "any",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive_timeout",
            "doc": "\nSets a timeout during which an idle keepalive\nconnection to an upstream server will stay open.\n",
            "example": ""
        },
        {
            "name": "ntlm",
            "value": "",
            "type": "any",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_upstream_module.html#ntlm",
            "doc": "\nAllows proxying requests with\nNTLM\nAuthentication.\nThe upstream connection is bound to the client connection\nonce the client sends a request with the “Authorization”\nheader field value\nstarting with “Negotiate” or “NTLM”.\nFurther client requests will be proxied through the same upstream connection,\nkeeping the authentication context.\n",
            "example": "upstream http_backend {\n    server 127.0.0.1:8080;\n\n    ntlm;\n}\n\nserver {\n    ...\n\n    location /http/ {\n        proxy_pass http://http_backend;\n        proxy_http_version 1.1;\n        proxy_set_header Connection \"\";\n        ...\n    }\n}\n"
        },
        {
            "name": "least_conn",
            "value": "",
            "type": "any",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_upstream_module.html#least_conn",
            "doc": "\nSpecifies that a group should use a load balancing method where a request\nis passed to the server with the least number of active connections,\ntaking into account weights of servers.\nIf there are several such servers, they are tried in turn using a\nweighted round-robin balancing method.\n",
            "example": ""
        },
        {
            "name": "least_time",
            "value": "\"header\" | \"last_byte    [inflight]\"",
            "type": "\"header\" | \"last_byte    [inflight]\"",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_upstream_module.html#least_time",
            "doc": "\nSpecifies that a group should use a load balancing method where a request\nis passed to the server with the least average response time and\nleast number of active connections, taking into account weights of servers.\nIf there are several such servers, they are tried in turn using a\nweighted round-robin balancing method.\n",
            "example": ""
        },
        {
            "name": "queue",
            "value": "number[timeout=time]",
            "type": "any",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_upstream_module.html#queue",
            "doc": "\nIf an upstream server cannot be selected immediately\nwhile processing a request,\nthe request will be placed into the queue.\nThe directive specifies the maximum number of requests\nthat can be in the queue at the same time.\nIf the queue is filled up,\nor the server to pass the request to cannot be selected within\nthe time period specified in the timeout parameter,\nthe 502 (Bad Gateway)\nerror will be returned to the client.\n",
            "example": ""
        },
        {
            "name": "random",
            "value": "[two [method]]",
            "type": "any",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_upstream_module.html#random",
            "doc": "\nSpecifies that a group should use a load balancing method where a request\nis passed to a randomly selected server, taking into account weights\nof servers.\n",
            "example": ""
        },
        {
            "name": "resolver",
            "value": "\"address ...    [valid=time]    [ipv6=on\" | \"off]    [status_zone=zone]\"",
            "type": "\"address ...    [valid=time]    [ipv6=on\" | \"off]    [status_zone=zone]\"",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_upstream_module.html#resolver",
            "doc": "\nConfigures name servers used to resolve names of upstream servers\ninto addresses, for example:\n",
            "example": "resolver 127.0.0.1 [::1]:5353;\nresolver 127.0.0.1 [::1]:5353 valid=30s;\n"
        },
        {
            "name": "resolver_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_upstream_module.html#resolver_timeout",
            "doc": "\nSets a timeout for name resolution, for example:\n",
            "example": "resolver_timeout 5s;\n"
        },
        {
            "name": "sticky",
            "value": "\"cookie name    [expires=time]    [domain=domain]    [httponly]    [samesite=strict\" | \"lax\" | \"none]    [secure]    [path=path]sticky     route $variable ...sticky     learn    create=$variable    lookup=$variable    zone=name:size    [timeout=time]    [header]    [sync]\"",
            "type": "\"cookie name    [expires=time]    [domain=domain]    [httponly]    [samesite=strict\" | \"lax\" | \"none]    [secure]    [path=path]sticky     route $variable ...sticky     learn    create=$variable    lookup=$variable    zone=name:size    [timeout=time]    [header]    [sync]\"",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_upstream_module.html#sticky",
            "doc": "\nEnables session affinity, which causes requests from the same client to be\npassed to the same server in a group of servers.\nThree methods are available:\n",
            "example": ""
        },
        {
            "name": "sticky_cookie_insert",
            "value": "name[expires=time][domain=domain][path=path]",
            "type": "any",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_upstream_module.html#sticky_cookie_insert",
            "doc": "\nThis directive is obsolete since version 1.5.7.\nAn equivalent\nsticky directive with a new syntax should be used instead:\n",
            "example": ""
        },
        {
            "name": "upstream_conf",
            "value": "",
            "type": "any",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_upstream_conf_module.html#upstream_conf",
            "doc": "\nTurns on the HTTP interface of upstream configuration in the surrounding\nlocation.\nAccess to this location should be\nlimited.\n",
            "example": "http://127.0.0.1/upstream_conf?upstream=backend\nhttp://127.0.0.1/upstream_conf?upstream=backend\nhttp://127.0.0.1/upstream_conf?upstream=backend&id=42\nhttp://127.0.0.1/upstream_conf?add=&upstream=backend&server=127.0.0.1:8080\nhttp://127.0.0.1/upstream_conf?add=&upstream=backend&backup=&server=127.0.0.1:8080\nhttp://127.0.0.1/upstream_conf?add=&upstream=backend&server=127.0.0.1:8080&weight=2&down=\nhttp://127.0.0.1/upstream_conf?remove=&upstream=backend&id=42\nhttp://127.0.0.1/upstream_conf?upstream=backend&id=42&down=\nhttp://127.0.0.1/upstream_conf?upstream=backend&id=42&server=192.0.2.3:8123\nhttp://127.0.0.1/upstream_conf?upstream=backend&id=42&max_fails=3&weight=4\n"
        },
        {
            "name": "health_check",
            "value": "[parameters]",
            "type": "any",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_upstream_hc_module.html#health_check",
            "doc": "\nEnables periodic health checks of the servers in a\ngroup\nreferenced in the surrounding location.\n",
            "example": ""
        },
        {
            "name": "match",
            "value": "name { ... }",
            "type": "any",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_upstream_hc_module.html#match",
            "doc": "\nDefines the named test set used to verify responses to health check requests.\n",
            "example": "# status is 200, content type is \"text/html\",\n# and body contains \"Welcome to nginx!\"\nmatch welcome {\n    status 200;\n    header Content-Type = text/html;\n    body ~ \"Welcome to nginx!\";\n}\n# status is not one of 301, 302, 303, or 307, and header does not have \"Refresh:\"\nmatch not_redirect {\n    status ! 301-303 307;\n    header ! Refresh;\n}\n# status ok and not in maintenance mode\nmatch server_ok {\n    status 200-399;\n    body !~ \"maintenance mode\";\n}\n# status is 200 or 204\nmap $upstream_status $good_status {\n    200 1;\n    204 1;\n}\n\nmatch server_ok {\n    require $good_status;\n}\n"
        },
        {
            "name": "userid",
            "value": "\"on\" | \"v1\" | \"log\" | \"off\"",
            "type": "\"on\" | \"v1\" | \"log\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_userid_module.html#userid",
            "doc": "\nEnables or disables setting cookies and logging the received cookies:\n",
            "example": ""
        },
        {
            "name": "userid_domain",
            "value": "\"name\" | \"none\"",
            "type": "\"name\" | \"none\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_userid_module.html#userid_domain",
            "doc": "\nDefines a domain for which the cookie is set.\nThe none parameter disables setting of a domain for the\ncookie.\n",
            "example": ""
        },
        {
            "name": "userid_expires",
            "value": "\"time\" | \"max\" | \"off\"",
            "type": "\"time\" | \"max\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_userid_module.html#userid_expires",
            "doc": "\nSets a time during which a browser should keep the cookie.\nThe parameter max will cause the cookie to expire on\n“31 Dec 2037 23:55:55 GMT”.\nThe parameter off will cause the cookie to expire at\nthe end of a browser session.\n",
            "example": ""
        },
        {
            "name": "userid_flags",
            "value": "\"off\" | string",
            "type": "\"off\" | string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_userid_module.html#userid_flags",
            "doc": "\nIf the parameter is not off,\ndefines one or more additional flags for the cookie:\nsecure,\nhttponly,\nsamesite=strict,\nsamesite=lax,\nsamesite=none.\n",
            "example": ""
        },
        {
            "name": "userid_mark",
            "value": "\"letter\" | \"digit\" | \"=\" | \"off\"",
            "type": "\"letter\" | \"digit\" | \"=\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_userid_module.html#userid_mark",
            "doc": "\nIf the parameter is not off, enables the cookie marking\nmechanism and sets the character used as a mark.\nThis mechanism is used to add or change\nuserid_p3p and/or a cookie expiration time while\npreserving the client identifier.\nA mark can be any letter of the English alphabet (case-sensitive),\ndigit, or the “=” character.\n",
            "example": ""
        },
        {
            "name": "userid_name",
            "value": "name",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_userid_module.html#userid_name",
            "doc": "\nSets the cookie name.\n",
            "example": ""
        },
        {
            "name": "userid_p3p",
            "value": "string | \"none\"",
            "type": "string | \"none\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_userid_module.html#userid_p3p",
            "doc": "\nSets a value for the “P3P” header field that will be\nsent along with the cookie.\nIf the directive is set to the special value none,\nthe “P3P” header will not be sent in a response.\n",
            "example": ""
        },
        {
            "name": "userid_path",
            "value": "path",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_userid_module.html#userid_path",
            "doc": "\nDefines a path for which the cookie is set.\n",
            "example": ""
        },
        {
            "name": "userid_service",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_userid_module.html#userid_service",
            "doc": "\nIf identifiers are issued by multiple servers (services),\neach service should be assigned its own number\nto ensure that client identifiers are unique.\nFor version 1 cookies, the default value is zero.\nFor version 2 cookies, the default value is the number composed from the last\nfour octets of the server’s IP address.\n",
            "example": ""
        },
        {
            "name": "uwsgi_bind",
            "value": "\"address    [transparent]\" | \"off\"",
            "type": "\"address    [transparent]\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_bind",
            "doc": "\nMakes outgoing connections to a uwsgi server originate\nfrom the specified local IP address with an optional port (1.11.2).\nParameter value can contain variables (1.3.12).\nThe special value off (1.3.12) cancels the effect\nof the uwsgi_bind directive\ninherited from the previous configuration level, which allows the\nsystem to auto-assign the local IP address and port.\n",
            "example": "uwsgi_bind $remote_addr transparent;\n"
        },
        {
            "name": "uwsgi_buffer_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_buffer_size",
            "doc": "\nSets the size of the buffer used for reading the first part\nof the response received from the uwsgi server.\nThis part usually contains a small response header.\nBy default, the buffer size is equal to one memory page.\nThis is either 4K or 8K, depending on a platform.\nIt can be made smaller, however.\n",
            "example": ""
        },
        {
            "name": "uwsgi_buffering",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_buffering",
            "doc": "\nEnables or disables buffering of responses from the uwsgi server.\n",
            "example": ""
        },
        {
            "name": "uwsgi_buffers",
            "value": "number size",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_buffers",
            "doc": "\nSets the number and size of the\nbuffers used for reading a response from the uwsgi server,\nfor a single connection.\nBy default, the buffer size is equal to one memory page.\nThis is either 4K or 8K, depending on a platform.\n",
            "example": ""
        },
        {
            "name": "uwsgi_busy_buffers_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_busy_buffers_size",
            "doc": "\nWhen buffering of responses from the uwsgi\nserver is enabled, limits the total size of buffers that\ncan be busy sending a response to the client while the response is not\nyet fully read.\nIn the meantime, the rest of the buffers can be used for reading the response\nand, if needed, buffering part of the response to a temporary file.\nBy default, size is limited by the size of two buffers set by the\nuwsgi_buffer_size and uwsgi_buffers directives.\n",
            "example": ""
        },
        {
            "name": "uwsgi_cache",
            "value": "\"zone\" | \"off\"",
            "type": "\"zone\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_cache",
            "doc": "\nDefines a shared memory zone used for caching.\nThe same zone can be used in several places.\nParameter value can contain variables (1.7.9).\nThe off parameter disables caching inherited\nfrom the previous configuration level.\n",
            "example": ""
        },
        {
            "name": "uwsgi_cache_background_update",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_cache_background_update",
            "doc": "\nAllows starting a background subrequest\nto update an expired cache item,\nwhile a stale cached response is returned to the client.\nNote that it is necessary to\nallow\nthe usage of a stale cached response when it is being updated.\n",
            "example": ""
        },
        {
            "name": "uwsgi_cache_bypass",
            "value": "string ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_cache_bypass",
            "doc": "\nDefines conditions under which the response will not be taken from a cache.\nIf at least one value of the string parameters is not empty and is not\nequal to “0” then the response will not be taken from the cache:\n",
            "example": "uwsgi_cache_bypass $cookie_nocache $arg_nocache$arg_comment;\nuwsgi_cache_bypass $http_pragma    $http_authorization;\n"
        },
        {
            "name": "uwsgi_cache_key",
            "value": "string",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_cache_key",
            "doc": "\nDefines a key for caching, for example\n",
            "example": "uwsgi_cache_key localhost:9000$request_uri;\n"
        },
        {
            "name": "uwsgi_cache_lock",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_cache_lock",
            "doc": "\nWhen enabled, only one request at a time will be allowed to populate\na new cache element identified according to the uwsgi_cache_key\ndirective by passing a request to a uwsgi server.\nOther requests of the same cache element will either wait\nfor a response to appear in the cache or the cache lock for\nthis element to be released, up to the time set by the\nuwsgi_cache_lock_timeout directive.\n",
            "example": ""
        },
        {
            "name": "uwsgi_cache_lock_age",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_cache_lock_age",
            "doc": "\nIf the last request passed to the uwsgi server\nfor populating a new cache element\nhas not completed for the specified time,\none more request may be passed to the uwsgi server.\n",
            "example": ""
        },
        {
            "name": "uwsgi_cache_lock_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_cache_lock_timeout",
            "doc": "\nSets a timeout for uwsgi_cache_lock.\nWhen the time expires,\nthe request will be passed to the uwsgi server,\nhowever, the response will not be cached.\n",
            "example": ""
        },
        {
            "name": "uwsgi_cache_max_range_offset",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_cache_max_range_offset",
            "doc": "\nSets an offset in bytes for byte-range requests.\nIf the range is beyond the offset,\nthe range request will be passed to the uwsgi server\nand the response will not be cached.\n",
            "example": ""
        },
        {
            "name": "uwsgi_cache_methods",
            "value": "\"GET\" | \"HEAD\" | string",
            "type": "\"GET\" | \"HEAD\" | string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_cache_methods",
            "doc": "\nIf the client request method is listed in this directive then\nthe response will be cached.\n“GET” and “HEAD” methods are always\nadded to the list, though it is recommended to specify them explicitly.\nSee also the uwsgi_no_cache directive.\n",
            "example": ""
        },
        {
            "name": "uwsgi_cache_min_uses",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_cache_min_uses",
            "doc": "\nSets the number of requests after which the response\nwill be cached.\n",
            "example": ""
        },
        {
            "name": "uwsgi_cache_path",
            "value": "\"path    [levels=levels]    [use_temp_path=on\" | \"off]    keys_zone=name:size    [inactive=time]    [max_size=size]    [min_free=size]    [manager_files=number]    [manager_sleep=time]    [manager_threshold=time]    [loader_files=number]    [loader_sleep=time]    [loader_threshold=time]    [purger=on\" | \"off]    [purger_files=number]    [purger_sleep=time]    [purger_threshold=time]\"",
            "type": "\"path    [levels=levels]    [use_temp_path=on\" | \"off]    keys_zone=name:size    [inactive=time]    [max_size=size]    [min_free=size]    [manager_files=number]    [manager_sleep=time]    [manager_threshold=time]    [loader_files=number]    [loader_sleep=time]    [loader_threshold=time]    [purger=on\" | \"off]    [purger_files=number]    [purger_sleep=time]    [purger_threshold=time]\"",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_cache_path",
            "doc": "\nSets the path and other parameters of a cache.\nCache data are stored in files.\nThe file name in a cache is a result of\napplying the MD5 function to the\ncache key.\nThe levels parameter defines hierarchy levels of a cache:\nfrom 1 to 3, each level accepts values 1 or 2.\nFor example, in the following configuration\n",
            "example": "uwsgi_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m;\n/data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029c\n"
        },
        {
            "name": "uwsgi_cache_purge",
            "value": "string ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_cache_purge",
            "doc": "\nDefines conditions under which the request will be considered a cache\npurge request.\nIf at least one value of the string parameters is not empty and is not equal\nto “0” then the cache entry with a corresponding\ncache key is removed.\nThe result of successful operation is indicated by returning\nthe 204 (No Content) response.\n",
            "example": "uwsgi_cache_path /data/nginx/cache keys_zone=cache_zone:10m;\n\nmap $request_method $purge_method {\n    PURGE   1;\n    default 0;\n}\n\nserver {\n    ...\n    location / {\n        uwsgi_pass        backend;\n        uwsgi_cache       cache_zone;\n        uwsgi_cache_key   $uri;\n        uwsgi_cache_purge $purge_method;\n    }\n}\n"
        },
        {
            "name": "uwsgi_cache_revalidate",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_cache_revalidate",
            "doc": "\nEnables revalidation of expired cache items using conditional requests with\nthe “If-Modified-Since” and “If-None-Match”\nheader fields.\n",
            "example": ""
        },
        {
            "name": "uwsgi_cache_use_stale",
            "value": "\"error\" | \"timeout\" | \"invalid_header\" | \"updating\" | \"http_500\" | \"http_503\" | \"http_403\" | \"http_404\" | \"http_429\" | string",
            "type": "\"error\" | \"timeout\" | \"invalid_header\" | \"updating\" | \"http_500\" | \"http_503\" | \"http_403\" | \"http_404\" | \"http_429\" | string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_cache_use_stale",
            "doc": "\nDetermines in which cases a stale cached response can be used\nwhen an error occurs during communication with the uwsgi server.\nThe directive’s parameters match the parameters of the\nuwsgi_next_upstream directive.\n",
            "example": ""
        },
        {
            "name": "uwsgi_cache_valid",
            "value": "[code ...] time",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_cache_valid",
            "doc": "\nSets caching time for different response codes.\nFor example, the following directives\n",
            "example": "uwsgi_cache_valid 200 302 10m;\nuwsgi_cache_valid 404      1m;\nuwsgi_cache_valid 5m;\nuwsgi_cache_valid 200 302 10m;\nuwsgi_cache_valid 301      1h;\nuwsgi_cache_valid any      1m;\n"
        },
        {
            "name": "uwsgi_connect_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_connect_timeout",
            "doc": "\nDefines a timeout for establishing a connection with a uwsgi server.\nIt should be noted that this timeout cannot usually exceed 75 seconds.\n",
            "example": ""
        },
        {
            "name": "uwsgi_force_ranges",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_force_ranges",
            "doc": "\nEnables byte-range support\nfor both cached and uncached responses from the uwsgi server\nregardless of the “Accept-Ranges” field in these responses.\n",
            "example": ""
        },
        {
            "name": "uwsgi_hide_header",
            "value": "field",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_hide_header",
            "doc": "\nBy default,\nnginx does not pass the header fields “Status” and\n“X-Accel-...” from the response of a uwsgi\nserver to a client.\nThe uwsgi_hide_header directive sets additional fields\nthat will not be passed.\nIf, on the contrary, the passing of fields needs to be permitted,\nthe uwsgi_pass_header directive can be used.\n",
            "example": ""
        },
        {
            "name": "uwsgi_ignore_client_abort",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_ignore_client_abort",
            "doc": "\nDetermines whether the connection with a uwsgi server should be\nclosed when a client closes the connection without waiting\nfor a response.\n",
            "example": ""
        },
        {
            "name": "uwsgi_ignore_headers",
            "value": "field ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_ignore_headers",
            "doc": "\nDisables processing of certain response header fields from the uwsgi server.\nThe following fields can be ignored: “X-Accel-Redirect”,\n“X-Accel-Expires”, “X-Accel-Limit-Rate” (1.1.6),\n“X-Accel-Buffering” (1.1.6),\n“X-Accel-Charset” (1.1.6), “Expires”,\n“Cache-Control”, “Set-Cookie” (0.8.44),\nand “Vary” (1.7.7).\n",
            "example": ""
        },
        {
            "name": "uwsgi_intercept_errors",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_intercept_errors",
            "doc": "\nDetermines whether a uwsgi server responses with codes greater than or equal\nto 300 should be passed to a client\nor be intercepted and redirected to nginx for processing\nwith the error_page directive.\n",
            "example": ""
        },
        {
            "name": "uwsgi_limit_rate",
            "value": "rate",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_limit_rate",
            "doc": "\nLimits the speed of reading the response from the uwsgi server.\nThe rate is specified in bytes per second.\nThe zero value disables rate limiting.\nThe limit is set per a request, and so if nginx simultaneously opens\ntwo connections to the uwsgi server,\nthe overall rate will be twice as much as the specified limit.\nThe limitation works only if\nbuffering of responses from the uwsgi\nserver is enabled.\n",
            "example": ""
        },
        {
            "name": "uwsgi_max_temp_file_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_max_temp_file_size",
            "doc": "\nWhen buffering of responses from the uwsgi\nserver is enabled, and the whole response does not fit into the buffers\nset by the uwsgi_buffer_size and uwsgi_buffers\ndirectives, a part of the response can be saved to a temporary file.\nThis directive sets the maximum size of the temporary file.\nThe size of data written to the temporary file at a time is set\nby the uwsgi_temp_file_write_size directive.\n",
            "example": ""
        },
        {
            "name": "uwsgi_modifier1",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_modifier1",
            "doc": "\nSets the value of the modifier1 field in the\nuwsgi\npacket header.\n",
            "example": ""
        },
        {
            "name": "uwsgi_modifier2",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_modifier2",
            "doc": "\nSets the value of the modifier2 field in the\nuwsgi\npacket header.\n",
            "example": ""
        },
        {
            "name": "uwsgi_next_upstream",
            "value": "\"error\" | \"timeout\" | \"invalid_header\" | \"http_500\" | \"http_503\" | \"http_403\" | \"http_404\" | \"http_429\" | \"non_idempotent\" | string",
            "type": "\"error\" | \"timeout\" | \"invalid_header\" | \"http_500\" | \"http_503\" | \"http_403\" | \"http_404\" | \"http_429\" | \"non_idempotent\" | string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_next_upstream",
            "doc": "\nSpecifies in which cases a request should be passed to the next server:\n",
            "example": ""
        },
        {
            "name": "uwsgi_next_upstream_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_next_upstream_timeout",
            "doc": "\nLimits the time during which a request can be passed to the\nnext server.\nThe 0 value turns off this limitation.\n",
            "example": ""
        },
        {
            "name": "uwsgi_next_upstream_tries",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_next_upstream_tries",
            "doc": "\nLimits the number of possible tries for passing a request to the\nnext server.\nThe 0 value turns off this limitation.\n",
            "example": ""
        },
        {
            "name": "uwsgi_no_cache",
            "value": "string ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_no_cache",
            "doc": "\nDefines conditions under which the response will not be saved to a cache.\nIf at least one value of the string parameters is not empty and is not\nequal to “0” then the response will not be saved:\n",
            "example": "uwsgi_no_cache $cookie_nocache $arg_nocache$arg_comment;\nuwsgi_no_cache $http_pragma    $http_authorization;\n"
        },
        {
            "name": "uwsgi_param",
            "value": "parameter value    [if_not_empty]",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_param",
            "doc": "\nSets a parameter that should be passed to the uwsgi server.\nThe value can contain text, variables, and their combination.\nThese directives are inherited from the previous configuration level\nif and only if there are no uwsgi_param directives\ndefined on the current level.\n",
            "example": "location / {\n    include uwsgi_params;\n    ...\n}\nuwsgi_param HTTPS $https if_not_empty;\n"
        },
        {
            "name": "uwsgi_pass",
            "value": "[protocol://]address",
            "type": "any",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_pass",
            "doc": "\nSets the protocol and address of a uwsgi server.\nAs a protocol,\n“uwsgi” or “suwsgi”\n(secured uwsgi, uwsgi over SSL) can be specified.\nThe address can be specified as a domain name or IP address,\nand a port:\n",
            "example": "uwsgi_pass localhost:9000;\nuwsgi_pass uwsgi://localhost:9000;\nuwsgi_pass suwsgi://[2001:db8::1]:9090;\nuwsgi_pass unix:/tmp/uwsgi.socket;\n"
        },
        {
            "name": "uwsgi_pass_header",
            "value": "field",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_pass_header",
            "doc": "\nPermits passing otherwise disabled header\nfields from a uwsgi server to a client.\n",
            "example": ""
        },
        {
            "name": "uwsgi_pass_request_body",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_pass_request_body",
            "doc": "\nIndicates whether the original request body is passed\nto the uwsgi server.\nSee also the uwsgi_pass_request_headers directive.\n",
            "example": ""
        },
        {
            "name": "uwsgi_pass_request_headers",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_pass_request_headers",
            "doc": "\nIndicates whether the header fields of the original request are passed\nto the uwsgi server.\nSee also the uwsgi_pass_request_body directive.\n",
            "example": ""
        },
        {
            "name": "uwsgi_read_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_read_timeout",
            "doc": "\nDefines a timeout for reading a response from the uwsgi server.\nThe timeout is set only between two successive read operations,\nnot for the transmission of the whole response.\nIf the uwsgi server does not transmit anything within this time,\nthe connection is closed.\n",
            "example": ""
        },
        {
            "name": "uwsgi_request_buffering",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_request_buffering",
            "doc": "\nEnables or disables buffering of a client request body.\n",
            "example": ""
        },
        {
            "name": "uwsgi_send_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_send_timeout",
            "doc": "\nSets a timeout for transmitting a request to the uwsgi server.\nThe timeout is set only between two successive write operations,\nnot for the transmission of the whole request.\nIf the uwsgi server does not receive anything within this time,\nthe connection is closed.\n",
            "example": ""
        },
        {
            "name": "uwsgi_socket_keepalive",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_socket_keepalive",
            "doc": "\nConfigures the “TCP keepalive” behavior\nfor outgoing connections to a uwsgi server.\nBy default, the operating system’s settings are in effect for the socket.\nIf the directive is set to the value “on”, the\nSO_KEEPALIVE socket option is turned on for the socket.\n",
            "example": ""
        },
        {
            "name": "uwsgi_ssl_certificate",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_ssl_certificate",
            "doc": "\nSpecifies a file with the certificate in the PEM format\nused for authentication to a secured uwsgi server.\n",
            "example": ""
        },
        {
            "name": "uwsgi_ssl_certificate_key",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_ssl_certificate_key",
            "doc": "\nSpecifies a file with the secret key in the PEM format\nused for authentication to a secured uwsgi server.\n",
            "example": ""
        },
        {
            "name": "uwsgi_ssl_ciphers",
            "value": "ciphers",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_ssl_ciphers",
            "doc": "\nSpecifies the enabled ciphers for requests to a secured uwsgi server.\nThe ciphers are specified in the format understood by the OpenSSL library.\n",
            "example": ""
        },
        {
            "name": "uwsgi_ssl_conf_command",
            "value": "command",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_ssl_conf_command",
            "doc": "\nSets arbitrary OpenSSL configuration\ncommands\nwhen establishing a connection with the secured uwsgi server.\n",
            "example": ""
        },
        {
            "name": "uwsgi_ssl_crl",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_ssl_crl",
            "doc": "\nSpecifies a file with revoked certificates (CRL)\nin the PEM format used to verify\nthe certificate of the secured uwsgi server.\n",
            "example": ""
        },
        {
            "name": "uwsgi_ssl_name",
            "value": "name",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_ssl_name",
            "doc": "\nAllows overriding the server name used to\nverify\nthe certificate of the secured uwsgi server and to be\npassed through SNI\nwhen establishing a connection with the secured uwsgi server.\n",
            "example": ""
        },
        {
            "name": "uwsgi_ssl_password_file",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_ssl_password_file",
            "doc": "\nSpecifies a file with passphrases for\nsecret keys\nwhere each passphrase is specified on a separate line.\nPassphrases are tried in turn when loading the key.\n",
            "example": ""
        },
        {
            "name": "uwsgi_ssl_protocols",
            "value": "[SSLv2]    [SSLv3]    [TLSv1]    [TLSv1.1]    [TLSv1.2]    [TLSv1.3]",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_ssl_protocols",
            "doc": "\nEnables the specified protocols for requests to a secured uwsgi server.\n",
            "example": ""
        },
        {
            "name": "uwsgi_ssl_server_name",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_ssl_server_name",
            "doc": "\nEnables or disables passing of the server name through\nTLS\nServer Name Indication extension (SNI, RFC 6066)\nwhen establishing a connection with the secured uwsgi server.\n",
            "example": ""
        },
        {
            "name": "uwsgi_ssl_session_reuse",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_ssl_session_reuse",
            "doc": "\nDetermines whether SSL sessions can be reused when working with\na secured uwsgi server.\nIf the errors\n“SSL3_GET_FINISHED:digest check failed”\nappear in the logs, try disabling session reuse.\n",
            "example": ""
        },
        {
            "name": "uwsgi_ssl_trusted_certificate",
            "value": "file",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_ssl_trusted_certificate",
            "doc": "\nSpecifies a file with trusted CA certificates in the PEM format\nused to verify\nthe certificate of the secured uwsgi server.\n",
            "example": ""
        },
        {
            "name": "uwsgi_ssl_verify",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_ssl_verify",
            "doc": "\nEnables or disables verification of the secured uwsgi server certificate.\n",
            "example": ""
        },
        {
            "name": "uwsgi_ssl_verify_depth",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_ssl_verify_depth",
            "doc": "\nSets the verification depth in the secured uwsgi server certificates chain.\n",
            "example": ""
        },
        {
            "name": "uwsgi_store",
            "value": "\"on\" | \"off\" | string",
            "type": "\"on\" | \"off\" | string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_store",
            "doc": "\nEnables saving of files to a disk.\nThe on parameter saves files with paths\ncorresponding to the directives\nalias or\nroot.\nThe off parameter disables saving of files.\nIn addition, the file name can be set explicitly using the\nstring with variables:\n",
            "example": "uwsgi_store /data/www$original_uri;\nlocation /images/ {\n    root               /data/www;\n    error_page         404 = /fetch$uri;\n}\n\nlocation /fetch/ {\n    internal;\n\n    uwsgi_pass         backend:9000;\n    ...\n\n    uwsgi_store        on;\n    uwsgi_store_access user:rw group:rw all:r;\n    uwsgi_temp_path    /data/temp;\n\n    alias              /data/www/;\n}\n"
        },
        {
            "name": "uwsgi_store_access",
            "value": "users:permissions ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_store_access",
            "doc": "\nSets access permissions for newly created files and directories, e.g.:\n",
            "example": "uwsgi_store_access user:rw group:rw all:r;\nuwsgi_store_access group:rw all:r;\n"
        },
        {
            "name": "uwsgi_temp_file_write_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_temp_file_write_size",
            "doc": "\nLimits the size of data written to a temporary file\nat a time, when buffering of responses from the uwsgi server\nto temporary files is enabled.\nBy default, size is limited by two buffers set by the\nuwsgi_buffer_size and uwsgi_buffers directives.\nThe maximum size of a temporary file is set by the\nuwsgi_max_temp_file_size directive.\n",
            "example": ""
        },
        {
            "name": "uwsgi_temp_path",
            "value": "path    [level1    [level2    [level3]]]",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html#uwsgi_temp_path",
            "doc": "\nDefines a directory for storing temporary files\nwith data received from uwsgi servers.\nUp to three-level subdirectory hierarchy can be used underneath the specified\ndirectory.\nFor example, in the following configuration\n",
            "example": "uwsgi_temp_path /spool/nginx/uwsgi_temp 1 2;\n/spool/nginx/uwsgi_temp/7/45/00000123457\n"
        },
        {
            "name": "http2_body_preread_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_body_preread_size",
            "doc": "\nSets the size of the buffer per each request\nin which the request body may be saved\nbefore it is started to be processed.\n",
            "example": ""
        },
        {
            "name": "http2_chunk_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_chunk_size",
            "doc": "\nSets the maximum size of chunks\ninto which the response body is sliced.\nA too low value results in higher overhead.\nA too high value impairs prioritization due to\n\nHOL blocking.\n",
            "example": ""
        },
        {
            "name": "http2_idle_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_idle_timeout",
            "doc": "\n",
            "example": ""
        },
        {
            "name": "http2_max_concurrent_pushes",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_max_concurrent_pushes",
            "doc": "\nLimits the maximum number of concurrent\npush requests in a connection.\n",
            "example": ""
        },
        {
            "name": "http2_max_concurrent_streams",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_max_concurrent_streams",
            "doc": "\nSets the maximum number of concurrent HTTP/2 streams\nin a connection.\n",
            "example": ""
        },
        {
            "name": "http2_max_field_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_max_field_size",
            "doc": "\n",
            "example": ""
        },
        {
            "name": "http2_max_header_size",
            "value": "size",
            "type": "string",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_max_header_size",
            "doc": "\n",
            "example": ""
        },
        {
            "name": "http2_max_requests",
            "value": "number",
            "type": "any",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_max_requests",
            "doc": "\n",
            "example": ""
        },
        {
            "name": "http2_push",
            "value": "\"uri\" | \"off\"",
            "type": "\"uri\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_push",
            "doc": "\nPre-emptively sends\n(pushes)\na request to the specified uri\nalong with the response to the original request.\nOnly relative URIs with absolute path will be processed,\nfor example:\n",
            "example": "http2_push /static/css/main.css;\n"
        },
        {
            "name": "http2_push_preload",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_push_preload",
            "doc": "\nEnables automatic conversion of\npreload\nlinks\nspecified in the “Link” response header fields into\npush\nrequests.\n",
            "example": ""
        },
        {
            "name": "http2_recv_buffer_size",
            "value": "size",
            "type": "string",
            "context": [
                "http"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_recv_buffer_size",
            "doc": "\nSets the size of the per\nworker\ninput buffer.\n",
            "example": ""
        },
        {
            "name": "http2_recv_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "http",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_recv_timeout",
            "doc": "\n",
            "example": ""
        },
        {
            "name": "xml_entities",
            "value": "path",
            "type": "string",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_xslt_module.html#xml_entities",
            "doc": "\nSpecifies the DTD file that declares character entities.\nThis file is compiled at the configuration stage.\nFor technical reasons, the module is unable to use the\nexternal subset declared in the processed XML, so it is\nignored and a specially defined file is used instead.\nThis file should not describe the XML structure.\nIt is enough to declare just the required character entities, for example:\n",
            "example": "<!ENTITY nbsp \"&#xa0;\">\n"
        },
        {
            "name": "xslt_last_modified",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_xslt_module.html#xslt_last_modified",
            "doc": "\nAllows preserving the “Last-Modified” header field\nfrom the original response during XSLT transformations\nto facilitate response caching.\n",
            "example": ""
        },
        {
            "name": "xslt_param",
            "value": "parameter value",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_xslt_module.html#xslt_param",
            "doc": "\nDefines the parameters for XSLT stylesheets.\nThe value is treated as an XPath expression.\nThe value can contain variables.\nTo pass a string value to a stylesheet,\nthe xslt_string_param directive can be used.\n",
            "example": ""
        },
        {
            "name": "xslt_string_param",
            "value": "parameter value",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_xslt_module.html#xslt_string_param",
            "doc": "\nDefines the string parameters for XSLT stylesheets.\nXPath expressions in the value are not interpreted.\nThe value can contain variables.\n",
            "example": ""
        },
        {
            "name": "xslt_stylesheet",
            "value": "stylesheet    [parameter=value ...]",
            "type": "any",
            "context": [
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_xslt_module.html#xslt_stylesheet",
            "doc": "\nDefines the XSLT stylesheet and its optional parameters.\nA stylesheet is compiled at the configuration stage.\n",
            "example": "param1='http%3A//www.example.com':param2=value2\nlocation / {\n    xslt_stylesheet /site/xslt/one.xslt\n                    $arg_xslt_params\n                    param1='$value1':param2=value2\n                    param3=value3;\n}\n"
        },
        {
            "name": "xslt_types",
            "value": "mime-type ...",
            "type": "any",
            "context": [
                "http",
                "server",
                "location"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/http/ngx_http_xslt_module.html#xslt_types",
            "doc": "\nEnables transformations in responses with the specified MIME types\nin addition to “text/xml”.\nThe special value “*” matches any MIME type (0.8.29).\nIf the transformation result is an HTML response, its MIME type\nis changed to “text/html”.\n",
            "example": ""
        },
        {
            "name": "listen",
            "value": "\"address:port    [ssl]    [proxy_protocol]    [backlog=number]    [rcvbuf=size]    [sndbuf=size]    [bind]    [ipv6only=on\" | \"off]    [so_keepalive=on\" | \"off\" | \"[keepidle]:[keepintvl]:[keepcnt]]\"",
            "type": "\"address:port    [ssl]    [proxy_protocol]    [backlog=number]    [rcvbuf=size]    [sndbuf=size]    [bind]    [ipv6only=on\" | \"off]    [so_keepalive=on\" | \"off\" | \"[keepidle]:[keepintvl]:[keepcnt]]\"",
            "context": [
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_core_module.html#listen",
            "doc": "\nSets the address and port for the socket\non which the server will accept requests.\nIt is possible to specify just the port.\nThe address can also be a hostname, for example:\n",
            "example": "listen 127.0.0.1:110;\nlisten *:110;\nlisten 110;     # same as *:110\nlisten localhost:110;\nlisten [::1]:110;\nlisten [::]:110;\nlisten unix:/var/run/nginx.sock;\n"
        },
        {
            "name": "mail",
            "value": "{ ... }",
            "type": "any",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_core_module.html#mail",
            "doc": "\nProvides the configuration file context in which the mail server directives\nare specified.\n",
            "example": ""
        },
        {
            "name": "max_errors",
            "value": "number",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_core_module.html#max_errors",
            "doc": "\nSets the number of protocol errors after which the connection is closed.\n",
            "example": ""
        },
        {
            "name": "protocol",
            "value": "\"imap\" | \"pop3\" | \"smtp\"",
            "type": "\"imap\" | \"pop3\" | \"smtp\"",
            "context": [
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_core_module.html#protocol",
            "doc": "\nSets the protocol for a proxied server.\nSupported protocols are\nIMAP,\nPOP3, and\nSMTP.\n",
            "example": ""
        },
        {
            "name": "resolver",
            "value": "\"address ...    [valid=time]    [ipv6=on\" | \"off]    [status_zone=zone]resolver off\"",
            "type": "\"address ...    [valid=time]    [ipv6=on\" | \"off]    [status_zone=zone]resolver off\"",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_core_module.html#resolver",
            "doc": "\nConfigures name servers used to find the client’s hostname\nto pass it to the\nauthentication server,\nand in the\nXCLIENT\ncommand when proxying SMTP.\nFor example:\n",
            "example": "resolver 127.0.0.1 [::1]:5353;\nresolver 127.0.0.1 [::1]:5353 valid=30s;\n"
        },
        {
            "name": "resolver_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_core_module.html#resolver_timeout",
            "doc": "\nSets a timeout for DNS operations, for example:\n",
            "example": "resolver_timeout 5s;\n"
        },
        {
            "name": "server",
            "value": "{ ... }",
            "type": "any",
            "context": [
                "mail"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_core_module.html#server",
            "doc": "\nSets the configuration for a server.\n",
            "example": ""
        },
        {
            "name": "server_name",
            "value": "name",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_core_module.html#server_name",
            "doc": "\nSets the server name that is used:\n",
            "example": ""
        },
        {
            "name": "timeout",
            "value": "time",
            "type": "string",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_core_module.html#timeout",
            "doc": "\nSets the timeout that is used before proxying to the backend starts.\n",
            "example": ""
        },
        {
            "name": "auth_http",
            "value": "URL",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_auth_http_module.html#auth_http",
            "doc": "\nSets the URL of the HTTP authentication server.\nThe protocol is described below.\n",
            "example": ""
        },
        {
            "name": "auth_http_header",
            "value": "header value",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_auth_http_module.html#auth_http_header",
            "doc": "\nAppends the specified header to requests sent to the authentication server.\nThis header can be used as the shared secret to verify\nthat the request comes from nginx.\nFor example:\n",
            "example": "auth_http_header X-Auth-Key \"secret_string\";\n"
        },
        {
            "name": "auth_http_pass_client_cert",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_auth_http_module.html#auth_http_pass_client_cert",
            "doc": "\nAppends the “Auth-SSL-Cert” header with the\nclient\ncertificate in the PEM format (urlencoded)\nto requests sent to the authentication server.\n",
            "example": ""
        },
        {
            "name": "auth_http_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_auth_http_module.html#auth_http_timeout",
            "doc": "\nSets the timeout for communication with the authentication server.\n",
            "example": "GET /auth HTTP/1.0\nHost: localhost\nAuth-Method: plain # plain/apop/cram-md5/external\nAuth-User: user\nAuth-Pass: password\nAuth-Protocol: imap # imap/pop3/smtp\nAuth-Login-Attempt: 1\nClient-IP: 192.0.2.42\nClient-Host: client.example.org\nHTTP/1.0 200 OK\nAuth-Status: OK\nAuth-Server: 198.51.100.1\nAuth-Port: 143\nHTTP/1.0 200 OK\nAuth-Status: Invalid login or password\nAuth-Wait: 3\nGET /auth HTTP/1.0\nHost: localhost\nAuth-Method: apop\nAuth-User: user\nAuth-Salt: <238188073.1163692009@mail.example.com>\nAuth-Pass: auth_response\nAuth-Protocol: imap\nAuth-Login-Attempt: 1\nClient-IP: 192.0.2.42\nClient-Host: client.example.org\nHTTP/1.0 200 OK\nAuth-Status: OK\nAuth-Server: 198.51.100.1\nAuth-Port: 143\nAuth-Pass: plain-text-pass\nHTTP/1.0 200 OK\nAuth-Status: Temporary server problem, try again later\nAuth-Error-Code: 451 4.3.0\nAuth-Wait: 3\n451 4.3.0 Temporary server problem, try again later\nGET /auth HTTP/1.0\nHost: localhost\nAuth-Method: none\nAuth-User:\nAuth-Pass:\nAuth-Protocol: smtp\nAuth-Login-Attempt: 1\nClient-IP: 192.0.2.42\nClient-Host: client.example.org\nAuth-SMTP-Helo: client.example.org\nAuth-SMTP-From: MAIL FROM: <>\nAuth-SMTP-To: RCPT TO: <postmaster@mail.example.com>\nGET /auth HTTP/1.0\nHost: localhost\nAuth-Method: plain\nAuth-User: user\nAuth-Pass: password\nAuth-Protocol: imap\nAuth-Login-Attempt: 1\nClient-IP: 192.0.2.42\nAuth-SSL: on\nAuth-SSL-Protocol: TLSv1.3\nAuth-SSL-Cipher: TLS_AES_256_GCM_SHA384\nAuth-SSL-Verify: SUCCESS\nAuth-SSL-Subject: /CN=example.com\nAuth-SSL-Issuer: /CN=example.com\nAuth-SSL-Serial: C07AD56B846B5BFF\nAuth-SSL-Fingerprint: 29d6a80a123d13355ed16b4b04605e29cb55a5ad\n"
        },
        {
            "name": "proxy_buffer",
            "value": "size",
            "type": "string",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_proxy_module.html#proxy_buffer",
            "doc": "\nSets the size of the buffer used for proxying.\nBy default, the buffer size is equal to one memory page.\nDepending on a platform, it is either 4K or 8K.\n",
            "example": ""
        },
        {
            "name": "proxy_pass_error_message",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_proxy_module.html#proxy_pass_error_message",
            "doc": "\nIndicates whether to pass the error message obtained during\nthe authentication on the backend to the client.\n",
            "example": ""
        },
        {
            "name": "proxy_protocol",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_proxy_module.html#proxy_protocol",
            "doc": "\nEnables the\nPROXY\nprotocol for connections to a backend.\n",
            "example": ""
        },
        {
            "name": "proxy_smtp_auth",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_proxy_module.html#proxy_smtp_auth",
            "doc": "\nEnables or disables user authentication on the SMTP backend\nusing the AUTH command.\n",
            "example": ""
        },
        {
            "name": "proxy_timeout",
            "value": "timeout",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_proxy_module.html#proxy_timeout",
            "doc": "\nSets the timeout between two successive\nread or write operations on client or proxied server connections.\nIf no data is transmitted within this time, the connection is closed.\n",
            "example": ""
        },
        {
            "name": "xclient",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_proxy_module.html#xclient",
            "doc": "\nEnables or disables the passing of the\nXCLIENT\ncommand with client parameters when connecting to the SMTP backend.\n",
            "example": ""
        },
        {
            "name": "set_real_ip_from",
            "value": "\"address\" | \"CIDR\" | \"unix:\"",
            "type": "\"address\" | \"CIDR\" | \"unix:\"",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_realip_module.html#set_real_ip_from",
            "doc": "\nDefines trusted addresses that are known to send correct\nreplacement addresses.\nIf the special value unix: is specified,\nall UNIX-domain sockets will be trusted.\n",
            "example": ""
        },
        {
            "name": "ssl",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_ssl_module.html#ssl",
            "doc": "\nThis directive was made obsolete in version 1.15.0.\nThe ssl parameter\nof the listen directive\nshould be used instead.\n",
            "example": ""
        },
        {
            "name": "ssl_certificate",
            "value": "file",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_ssl_module.html#ssl_certificate",
            "doc": "\nSpecifies a file with the certificate in the PEM format\nfor the given server.\nIf intermediate certificates should be specified in addition to a primary\ncertificate, they should be specified in the same file in the following\norder: the primary certificate comes first, then the intermediate certificates.\nA secret key in the PEM format may be placed in the same file.\n",
            "example": "server {\n    listen              993 ssl;\n\n    ssl_certificate     example.com.rsa.crt;\n    ssl_certificate_key example.com.rsa.key;\n\n    ssl_certificate     example.com.ecdsa.crt;\n    ssl_certificate_key example.com.ecdsa.key;\n\n    ...\n}\n"
        },
        {
            "name": "ssl_certificate_key",
            "value": "file",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_ssl_module.html#ssl_certificate_key",
            "doc": "\nSpecifies a file with the secret key in the PEM format\nfor the given server.\n",
            "example": ""
        },
        {
            "name": "ssl_ciphers",
            "value": "ciphers",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_ssl_module.html#ssl_ciphers",
            "doc": "\nSpecifies the enabled ciphers.\nThe ciphers are specified in the format understood by the\nOpenSSL library, for example:\n",
            "example": "ssl_ciphers ALL:!aNULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;\n"
        },
        {
            "name": "ssl_client_certificate",
            "value": "file",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_ssl_module.html#ssl_client_certificate",
            "doc": "\nSpecifies a file with trusted CA certificates in the PEM format\nused to verify client certificates.\n",
            "example": ""
        },
        {
            "name": "ssl_conf_command",
            "value": "command",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_ssl_module.html#ssl_conf_command",
            "doc": "\nSets arbitrary OpenSSL configuration\ncommands.\n",
            "example": "ssl_conf_command Options PrioritizeChaCha;\nssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;\n"
        },
        {
            "name": "ssl_crl",
            "value": "file",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_ssl_module.html#ssl_crl",
            "doc": "\nSpecifies a file with revoked certificates (CRL)\nin the PEM format used to verify\nclient certificates.\n",
            "example": ""
        },
        {
            "name": "ssl_dhparam",
            "value": "file",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_ssl_module.html#ssl_dhparam",
            "doc": "\nSpecifies a file with DH parameters for DHE ciphers.\n",
            "example": ""
        },
        {
            "name": "ssl_ecdh_curve",
            "value": "curve",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_ssl_module.html#ssl_ecdh_curve",
            "doc": "\nSpecifies a curve for ECDHE ciphers.\n",
            "example": "ssl_ecdh_curve prime256v1:secp384r1;\n"
        },
        {
            "name": "ssl_password_file",
            "value": "file",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_ssl_module.html#ssl_password_file",
            "doc": "\nSpecifies a file with passphrases for\nsecret keys\nwhere each passphrase is specified on a separate line.\nPassphrases are tried in turn when loading the key.\n",
            "example": "mail {\n    ssl_password_file /etc/keys/global.pass;\n    ...\n\n    server {\n        server_name mail1.example.com;\n        ssl_certificate_key /etc/keys/first.key;\n    }\n\n    server {\n        server_name mail2.example.com;\n\n        # named pipe can also be used instead of a file\n        ssl_password_file /etc/keys/fifo;\n        ssl_certificate_key /etc/keys/second.key;\n    }\n}\n"
        },
        {
            "name": "ssl_prefer_server_ciphers",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_ssl_module.html#ssl_prefer_server_ciphers",
            "doc": "\nSpecifies that server ciphers should be preferred over client ciphers\nwhen the SSLv3 and TLS protocols are used.\n",
            "example": ""
        },
        {
            "name": "ssl_protocols",
            "value": "[SSLv2]    [SSLv3]    [TLSv1]    [TLSv1.1]    [TLSv1.2]    [TLSv1.3]",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_ssl_module.html#ssl_protocols",
            "doc": "\nEnables the specified protocols.\n",
            "example": ""
        },
        {
            "name": "ssl_session_cache",
            "value": "\"off\" | \"none\" | \"[builtin[:size]]    [shared:name:size]\"",
            "type": "\"off\" | \"none\" | \"[builtin[:size]]    [shared:name:size]\"",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_ssl_module.html#ssl_session_cache",
            "doc": "\nSets the types and sizes of caches that store session parameters.\nA cache can be of any of the following types:\n",
            "example": "ssl_session_cache builtin:1000 shared:SSL:10m;\n"
        },
        {
            "name": "ssl_session_ticket_key",
            "value": "file",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_ssl_module.html#ssl_session_ticket_key",
            "doc": "\nSets a file with the secret key used to encrypt\nand decrypt TLS session tickets.\nThe directive is necessary if the same key has to be shared between\nmultiple servers.\nBy default, a randomly generated key is used.\n",
            "example": "ssl_session_ticket_key current.key;\nssl_session_ticket_key previous.key;\nopenssl rand 80 > ticket.key\n"
        },
        {
            "name": "ssl_session_tickets",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_ssl_module.html#ssl_session_tickets",
            "doc": "\nEnables or disables session resumption through\nTLS session tickets.\n",
            "example": ""
        },
        {
            "name": "ssl_session_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_ssl_module.html#ssl_session_timeout",
            "doc": "\nSpecifies a time during which a client may reuse the\nsession parameters.\n",
            "example": ""
        },
        {
            "name": "ssl_trusted_certificate",
            "value": "file",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_ssl_module.html#ssl_trusted_certificate",
            "doc": "\nSpecifies a file with trusted CA certificates in the PEM format\nused to verify client certificates.\n",
            "example": ""
        },
        {
            "name": "ssl_verify_client",
            "value": "\"on\" | \"off\" | \"optional\" | \"optional_no_ca\"",
            "type": "\"on\" | \"off\" | \"optional\" | \"optional_no_ca\"",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_ssl_module.html#ssl_verify_client",
            "doc": "\nEnables verification of client certificates.\nThe verification result is passed in the\n“Auth-SSL-Verify” header of the\nauthentication\nrequest.\n",
            "example": ""
        },
        {
            "name": "ssl_verify_depth",
            "value": "number",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_ssl_module.html#ssl_verify_depth",
            "doc": "\nSets the verification depth in the client certificates chain.\n",
            "example": ""
        },
        {
            "name": "starttls",
            "value": "\"on\" | \"off\" | \"only\"",
            "type": "\"on\" | \"off\" | \"only\"",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_ssl_module.html#starttls",
            "doc": "\n",
            "example": ""
        },
        {
            "name": "imap_auth",
            "value": "method ...",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_imap_module.html#imap_auth",
            "doc": "\nSets permitted methods of authentication for IMAP clients.\nSupported methods are:\n",
            "example": ""
        },
        {
            "name": "imap_capabilities",
            "value": "extension ...",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_imap_module.html#imap_capabilities",
            "doc": "\nSets the\nIMAP protocol\nextensions list that is passed to the client in response to\nthe CAPABILITY command.\nThe authentication methods specified in the imap_auth directive and\nSTARTTLS\nare automatically added to this list depending on the\nstarttls directive value.\n",
            "example": ""
        },
        {
            "name": "imap_client_buffer",
            "value": "size",
            "type": "string",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_imap_module.html#imap_client_buffer",
            "doc": "\nSets the size of the buffer used for reading IMAP commands.\nBy default, the buffer size is equal to one memory page.\nThis is either 4K or 8K, depending on a platform.\n",
            "example": ""
        },
        {
            "name": "pop3_auth",
            "value": "method ...",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_pop3_module.html#pop3_auth",
            "doc": "\nSets permitted methods of authentication for POP3 clients.\nSupported methods are:\n",
            "example": ""
        },
        {
            "name": "pop3_capabilities",
            "value": "extension ...",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_pop3_module.html#pop3_capabilities",
            "doc": "\nSets the\nPOP3 protocol\nextensions list that is passed to the client in response to\nthe CAPA command.\nThe authentication methods specified in the pop3_auth directive\n(SASL extension) and\nSTLS\nare automatically added to this list depending on the\nstarttls directive value.\n",
            "example": ""
        },
        {
            "name": "smtp_auth",
            "value": "method ...",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_smtp_module.html#smtp_auth",
            "doc": "\nSets permitted methods of\nSASL authentication\nfor SMTP clients.\nSupported methods are:\n",
            "example": ""
        },
        {
            "name": "smtp_capabilities",
            "value": "extension ...",
            "type": "any",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_smtp_module.html#smtp_capabilities",
            "doc": "\nSets the SMTP protocol extensions list\nthat is passed to the client in response to the\nEHLO command.\nThe authentication methods specified in the smtp_auth directive and\nSTARTTLS\nare automatically added to this list depending on the\nstarttls directive value.\n",
            "example": ""
        },
        {
            "name": "smtp_client_buffer",
            "value": "size",
            "type": "string",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_smtp_module.html#smtp_client_buffer",
            "doc": "\nSets the size of the buffer used for reading SMTP commands.\nBy default, the buffer size is equal to one memory page.\nThis is either 4K or 8K, depending on a platform.\n",
            "example": ""
        },
        {
            "name": "smtp_greeting_delay",
            "value": "time",
            "type": "string",
            "context": [
                "mail",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/mail/ngx_mail_smtp_module.html#smtp_greeting_delay",
            "doc": "\nAllows setting a delay before sending an SMTP greeting\nin order to reject clients who fail to wait for the greeting before\nsending SMTP commands.\n",
            "example": ""
        },
        {
            "name": "listen",
            "value": "\"address:port    [ssl]    [udp]    [proxy_protocol]    [fastopen=number]    [backlog=number]    [rcvbuf=size]    [sndbuf=size]    [bind]    [ipv6only=on\" | \"off]    [reuseport]    [so_keepalive=on\" | \"off\" | \"[keepidle]:[keepintvl]:[keepcnt]]\"",
            "type": "\"address:port    [ssl]    [udp]    [proxy_protocol]    [fastopen=number]    [backlog=number]    [rcvbuf=size]    [sndbuf=size]    [bind]    [ipv6only=on\" | \"off]    [reuseport]    [so_keepalive=on\" | \"off\" | \"[keepidle]:[keepintvl]:[keepcnt]]\"",
            "context": [
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#listen",
            "doc": "\nSets the address and port for the socket\non which the server will accept connections.\nIt is possible to specify just the port.\nThe address can also be a hostname, for example:\n",
            "example": "listen 127.0.0.1:12345;\nlisten *:12345;\nlisten 12345;     # same as *:12345\nlisten localhost:12345;\nlisten [::1]:12345;\nlisten [::]:12345;\nlisten unix:/var/run/nginx.sock;\nlisten 127.0.0.1:12345-12399;\nlisten 12345-12399;\n"
        },
        {
            "name": "preread_buffer_size",
            "value": "size",
            "type": "string",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#preread_buffer_size",
            "doc": "\nSpecifies a size of the\npreread buffer.\n",
            "example": ""
        },
        {
            "name": "preread_timeout",
            "value": "timeout",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#preread_timeout",
            "doc": "\nSpecifies a timeout of the\npreread phase.\n",
            "example": ""
        },
        {
            "name": "proxy_protocol_timeout",
            "value": "timeout",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#proxy_protocol_timeout",
            "doc": "\nSpecifies a timeout for\nreading the PROXY protocol header to complete.\nIf no entire header is transmitted within this time,\nthe connection is closed.\n",
            "example": ""
        },
        {
            "name": "resolver",
            "value": "\"address ...    [valid=time]    [ipv6=on\" | \"off]    [status_zone=zone]\"",
            "type": "\"address ...    [valid=time]    [ipv6=on\" | \"off]    [status_zone=zone]\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#resolver",
            "doc": "\nConfigures name servers used to resolve names of upstream servers\ninto addresses, for example:\n",
            "example": "resolver 127.0.0.1 [::1]:5353;\nresolver 127.0.0.1 [::1]:5353 valid=30s;\n"
        },
        {
            "name": "resolver_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#resolver_timeout",
            "doc": "\nSets a timeout for name resolution, for example:\n",
            "example": "resolver_timeout 5s;\n"
        },
        {
            "name": "server",
            "value": "{ ... }",
            "type": "any",
            "context": [
                "stream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#server",
            "doc": "\nSets the configuration for a server.\n",
            "example": ""
        },
        {
            "name": "stream",
            "value": "{ ... }",
            "type": "any",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#stream",
            "doc": "\nProvides the configuration file context in which the stream server directives\nare specified.\n",
            "example": ""
        },
        {
            "name": "tcp_nodelay",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#tcp_nodelay",
            "doc": "\nEnables or disables the use of the TCP_NODELAY option.\nThe option is enabled for both client and proxied server connections.\n",
            "example": ""
        },
        {
            "name": "variables_hash_bucket_size",
            "value": "size",
            "type": "string",
            "context": [
                "stream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#variables_hash_bucket_size",
            "doc": "\nSets the bucket size for the variables hash table.\nThe details of setting up hash tables are provided in a separate\ndocument.\n",
            "example": ""
        },
        {
            "name": "variables_hash_max_size",
            "value": "size",
            "type": "string",
            "context": [
                "stream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#variables_hash_max_size",
            "doc": "\nSets the maximum size of the variables hash table.\nThe details of setting up hash tables are provided in a separate\ndocument.\n",
            "example": ""
        },
        {
            "name": "allow",
            "value": "\"address\" | \"CIDR\" | \"unix:\" | \"all\"",
            "type": "\"address\" | \"CIDR\" | \"unix:\" | \"all\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_access_module.html#allow",
            "doc": "\nAllows access for the specified network or address.\nIf the special value unix: is specified,\nallows access for all UNIX-domain sockets.\n",
            "example": ""
        },
        {
            "name": "deny",
            "value": "\"address\" | \"CIDR\" | \"unix:\" | \"all\"",
            "type": "\"address\" | \"CIDR\" | \"unix:\" | \"all\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_access_module.html#deny",
            "doc": "\nDenies access for the specified network or address.\nIf the special value unix: is specified,\ndenies access for all UNIX-domain sockets.\n",
            "example": ""
        },
        {
            "name": "geo",
            "value": "[$address] $variable { ... }",
            "type": "any",
            "context": [
                "stream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_geo_module.html#geo",
            "doc": "\nDescribes the dependency of values of the specified variable\non the client IP address.\nBy default, the address is taken from the $remote_addr variable,\nbut it can also be taken from another variable, for example:\n",
            "example": "geo $arg_remote_addr $geo {\n    ...;\n}\ngeo $country {\n    default        ZZ;\n    include        conf/geo.conf;\n    delete         127.0.0.0/16;\n\n    127.0.0.0/24   US;\n    127.0.0.1/32   RU;\n    10.1.0.0/16    RU;\n    192.168.1.0/24 UK;\n}\n10.2.0.0/16    RU;\n192.168.2.0/24 RU;\ngeo $country {\n    ranges;\n    default                   ZZ;\n    127.0.0.0-127.0.0.0       US;\n    127.0.0.1-127.0.0.1       RU;\n    127.0.0.1-127.0.0.255     US;\n    10.1.0.0-10.1.255.255     RU;\n    192.168.1.0-192.168.1.255 UK;\n}\n"
        },
        {
            "name": "geoip_country",
            "value": "file",
            "type": "any",
            "context": [
                "stream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_geoip_module.html#geoip_country",
            "doc": "\nSpecifies a database used to determine the country\ndepending on the client IP address.\nThe following variables are available when using this database:\n",
            "example": ""
        },
        {
            "name": "geoip_city",
            "value": "file",
            "type": "any",
            "context": [
                "stream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_geoip_module.html#geoip_city",
            "doc": "\nSpecifies a database used to determine the country, region, and city\ndepending on the client IP address.\nThe following variables are available when using this database:\n",
            "example": ""
        },
        {
            "name": "geoip_org",
            "value": "file",
            "type": "any",
            "context": [
                "stream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_geoip_module.html#geoip_org",
            "doc": "\nSpecifies a database used to determine the organization\ndepending on the client IP address.\nThe following variable is available when using this database:\n",
            "example": ""
        },
        {
            "name": "js_access",
            "value": "\"function\" | \"module.function\"",
            "type": "\"function\" | \"module.function\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_js_module.html#js_access",
            "doc": "\nSets an njs function which will be called at the\naccess phase.\nSince 0.4.0,\na module function can be referenced.\n",
            "example": ""
        },
        {
            "name": "js_fetch_ciphers",
            "value": "ciphers",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_js_module.html#js_fetch_ciphers",
            "doc": "\nSpecifies the enabled ciphers for HTTPS connections\nwith Fetch API.\nThe ciphers are specified in the format understood by the OpenSSL library.\n",
            "example": ""
        },
        {
            "name": "js_fetch_protocols",
            "value": "[TLSv1]    [TLSv1.1]    [TLSv1.2]    [TLSv1.3]",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_js_module.html#js_fetch_protocols",
            "doc": "\nEnables the specified protocols for HTTPS connections\nwith Fetch API.\n",
            "example": ""
        },
        {
            "name": "js_fetch_trusted_certificate",
            "value": "file",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_js_module.html#js_fetch_trusted_certificate",
            "doc": "\nSpecifies a file with trusted CA certificates in the PEM format\nused to\nverify\nthe HTTPS certificate\nwith Fetch API.\n",
            "example": ""
        },
        {
            "name": "js_fetch_verify_depth",
            "value": "number",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_js_module.html#js_fetch_verify_depth",
            "doc": "\nSets the verification depth in the HTTPS server certificates chain\nwith Fetch API.\n",
            "example": ""
        },
        {
            "name": "js_filter",
            "value": "\"function\" | \"module.function\"",
            "type": "\"function\" | \"module.function\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_js_module.html#js_filter",
            "doc": "\nSets a data filter.\nSince 0.4.0,\na module function can be referenced.\n",
            "example": ""
        },
        {
            "name": "js_import",
            "value": "\"module.js\" | \"export_name from module.js\"",
            "type": "\"module.js\" | \"export_name from module.js\"",
            "context": [
                "stream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_js_module.html#js_import",
            "doc": "\nImports a module that implements location and variable handlers in njs.\nThe export_name is used as a namespace\nto access module functions.\nIf the export_name is not specified,\nthe module name will be used as a namespace.\n",
            "example": "js_import stream.js;\n"
        },
        {
            "name": "js_include",
            "value": "file",
            "type": "any",
            "context": [
                "stream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_js_module.html#js_include",
            "doc": "\nSpecifies a file that implements server and variable handlers in njs:\n",
            "example": "nginx.conf:\njs_include stream.js;\njs_set     $js_addr address;\nserver {\n    listen 127.0.0.1:12345;\n    return $js_addr;\n}\n\nstream.js:\nfunction address(s) {\n    return s.remoteAddress;\n}\n"
        },
        {
            "name": "js_path",
            "value": "path",
            "type": "string",
            "context": [
                "stream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_js_module.html#js_path",
            "doc": "\nSets an additional path for njs modules.\n",
            "example": ""
        },
        {
            "name": "js_preread",
            "value": "\"function\" | \"module.function\"",
            "type": "\"function\" | \"module.function\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_js_module.html#js_preread",
            "doc": "\nSets an njs function which will be called at the\npreread phase.\nSince 0.4.0,\na module function can be referenced.\n",
            "example": ""
        },
        {
            "name": "js_set",
            "value": "\"$variable function\" | \"module.function\"",
            "type": "\"$variable function\" | \"module.function\"",
            "context": [
                "stream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_js_module.html#js_set",
            "doc": "\nSets an njs function\nfor the specified variable.\nSince 0.4.0,\na module function can be referenced.\n",
            "example": ""
        },
        {
            "name": "js_var",
            "value": "$variable [value]",
            "type": "any",
            "context": [
                "stream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_js_module.html#js_var",
            "doc": "\nDeclares\na writable\nvariable.\nThe value can contain text, variables, and their combination.\n",
            "example": ""
        },
        {
            "name": "keyval",
            "value": "key    $variable    zone=name",
            "type": "any",
            "context": [
                "stream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_keyval_module.html#keyval",
            "doc": "\nCreates a new $variable whose value\nis looked up by the key in the key-value database.\nMatching rules are defined by the\ntype parameter of the\nkeyval_zone directive.\nThe database is stored in a shared memory zone\nspecified by the zone parameter.\n",
            "example": ""
        },
        {
            "name": "keyval_zone",
            "value": "\"zone=name:size    [state=file]    [timeout=time]    [type=string\" | \"ip\" | \"prefix]    [sync]\"",
            "type": "\"zone=name:size    [state=file]    [timeout=time]    [type=string\" | \"ip\" | \"prefix]    [sync]\"",
            "context": [
                "stream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_keyval_module.html#keyval_zone",
            "doc": "\nSets the name and size of the shared memory zone\nthat keeps the key-value database.\nKey-value pairs are managed by the\nAPI.\n",
            "example": "keyval_zone zone=one:32k state=/var/lib/nginx/state/one.keyval; # path for Linux\nkeyval_zone zone=one:32k state=/var/db/nginx/state/one.keyval;  # path for FreeBSD\n"
        },
        {
            "name": "limit_conn",
            "value": "zone number",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_limit_conn_module.html#limit_conn",
            "doc": "\nSets the shared memory zone\nand the maximum allowed number of connections for a given key value.\nWhen this limit is exceeded, the server will close the connection.\nFor example, the directives\n",
            "example": "limit_conn_zone $binary_remote_addr zone=addr:10m;\n\nserver {\n    ...\n    limit_conn addr 1;\n}\n"
        },
        {
            "name": "limit_conn_dry_run",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_limit_conn_module.html#limit_conn_dry_run",
            "doc": "\nEnables the dry run mode.\nIn this mode, the number of connections is not limited, however,\nin the shared memory zone, the number of excessive connections is accounted\nas usual.\n",
            "example": ""
        },
        {
            "name": "limit_conn_log_level",
            "value": "\"info\" | \"notice\" | \"warn\" | \"error\"",
            "type": "\"info\" | \"notice\" | \"warn\" | \"error\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_limit_conn_module.html#limit_conn_log_level",
            "doc": "\nSets the desired logging level for cases when the server\nlimits the number of connections.\n",
            "example": ""
        },
        {
            "name": "limit_conn_zone",
            "value": "key    zone=name:size",
            "type": "any",
            "context": [
                "stream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_limit_conn_module.html#limit_conn_zone",
            "doc": "\nSets parameters for a shared memory zone\nthat will keep states for various keys.\nIn particular, the state includes the current number of connections.\nThe key can contain text, variables,\nand their combinations (1.11.2).\nConnections with an empty key value are not accounted.\nUsage example:\n",
            "example": "limit_conn_zone $binary_remote_addr zone=addr:10m;\n"
        },
        {
            "name": "access_log",
            "value": "path    format    [buffer=size]    [gzip[=level]]    [flush=time]    [if=condition]access_log off",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_log_module.html#access_log",
            "doc": "\nSets the path, format,\nand configuration for a buffered log write.\nSeveral logs can be specified on the same configuration level.\nLogging to syslog\ncan be configured by specifying\nthe “syslog:” prefix in the first parameter.\nThe special value off cancels all\naccess_log directives on the current level.\n",
            "example": "access_log /path/to/log.gz basic gzip flush=5m;\n"
        },
        {
            "name": "log_format",
            "value": "\"name    [escape=default\" | \"json\" | string",
            "type": "\"name    [escape=default\" | \"json\" | string",
            "context": [
                "stream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_log_module.html#log_format",
            "doc": "\nSpecifies the log format, for example:\n",
            "example": "log_format proxy '$remote_addr [$time_local] '\n                 '$protocol $status $bytes_sent $bytes_received '\n                 '$session_time \"$upstream_addr\" '\n                 '\"$upstream_bytes_sent\" \"$upstream_bytes_received\" \"$upstream_connect_time\"';\n"
        },
        {
            "name": "open_log_file_cache",
            "value": "max=N[inactive=time][min_uses=N][valid=time]open_log_file_cache off",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_log_module.html#open_log_file_cache",
            "doc": "\nDefines a cache that stores the file descriptors of frequently used logs\nwhose names contain variables.\nThe directive has the following parameters:\n",
            "example": "open_log_file_cache max=1000 inactive=20s valid=1m min_uses=2;\n"
        },
        {
            "name": "map",
            "value": "string    $variable { ... }",
            "type": "any",
            "context": [
                "stream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_map_module.html#map",
            "doc": "\nCreates a new variable whose value\ndepends on values of one or more of the source variables\nspecified in the first parameter.\n",
            "example": ""
        },
        {
            "name": "map_hash_bucket_size",
            "value": "size",
            "type": "string",
            "context": [
                "stream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_map_module.html#map_hash_bucket_size",
            "doc": "\nSets the bucket size for the map variables hash tables.\nDefault value depends on the processor’s cache line size.\nThe details of setting up hash tables are provided in a separate\ndocument.\n",
            "example": ""
        },
        {
            "name": "map_hash_max_size",
            "value": "size",
            "type": "string",
            "context": [
                "stream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_map_module.html#map_hash_max_size",
            "doc": "\nSets the maximum size of the map variables\nhash tables.\nThe details of setting up hash tables are provided in a separate\ndocument.\n",
            "example": ""
        },
        {
            "name": "proxy_bind",
            "value": "\"address    [transparent]\" | \"off\"",
            "type": "\"address    [transparent]\" | \"off\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_bind",
            "doc": "\nMakes outgoing connections to a proxied server originate\nfrom the specified local IP address.\nParameter value can contain variables (1.11.2).\nThe special value off cancels the effect\nof the proxy_bind directive\ninherited from the previous configuration level, which allows the\nsystem to auto-assign the local IP address.\n",
            "example": "proxy_bind $remote_addr transparent;\n"
        },
        {
            "name": "proxy_buffer_size",
            "value": "size",
            "type": "string",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_buffer_size",
            "doc": "\nSets the size of the buffer used for reading data\nfrom the proxied server.\nAlso sets the size of the buffer used for reading data\nfrom the client.\n",
            "example": ""
        },
        {
            "name": "proxy_connect_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_connect_timeout",
            "doc": "\nDefines a timeout for establishing a connection with a proxied server.\n",
            "example": ""
        },
        {
            "name": "proxy_download_rate",
            "value": "rate",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_download_rate",
            "doc": "\nLimits the speed of reading the data from the proxied server.\nThe rate is specified in bytes per second.\nThe zero value disables rate limiting.\nThe limit is set per a connection, so if nginx simultaneously opens\ntwo connections to the proxied server,\nthe overall rate will be twice as much as the specified limit.\n",
            "example": "map $slow $rate {\n    1     4k;\n    2     8k;\n}\n\nproxy_download_rate $rate;\n"
        },
        {
            "name": "proxy_half_close",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_half_close",
            "doc": "\nEnables or disables closing\neach direction of a TCP connection independently (“TCP half-close”).\nIf enabled, proxying over TCP will be kept\nuntil both sides close the connection.\n",
            "example": ""
        },
        {
            "name": "proxy_next_upstream",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_next_upstream",
            "doc": "\nWhen a connection to the proxied server cannot be established, determines\nwhether a client connection will be passed to the next server.\n",
            "example": ""
        },
        {
            "name": "proxy_next_upstream_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_next_upstream_timeout",
            "doc": "\nLimits the time allowed to pass a connection to the\nnext server.\nThe 0 value turns off this limitation.\n",
            "example": ""
        },
        {
            "name": "proxy_next_upstream_tries",
            "value": "number",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_next_upstream_tries",
            "doc": "\nLimits the number of possible tries for passing a connection to the\nnext server.\nThe 0 value turns off this limitation.\n",
            "example": ""
        },
        {
            "name": "proxy_pass",
            "value": "address",
            "type": "any",
            "context": [
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_pass",
            "doc": "\nSets the address of a proxied server.\nThe address can be specified as a domain name or IP address,\nand a port:\n",
            "example": "proxy_pass localhost:12345;\nproxy_pass unix:/tmp/stream.socket;\nproxy_pass $upstream;\n"
        },
        {
            "name": "proxy_protocol",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_protocol",
            "doc": "\nEnables the\nPROXY\nprotocol for connections to a proxied server.\n",
            "example": ""
        },
        {
            "name": "proxy_requests",
            "value": "number",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_requests",
            "doc": "\nSets the number of client datagrams at which\nbinding between a client and existing UDP stream session is dropped.\nAfter receiving the specified number of datagrams, next datagram\nfrom the same client starts a new session.\nThe session terminates when all client datagrams are transmitted\nto a proxied server and the expected number of\nresponses is received,\nor when it reaches a timeout.\n",
            "example": ""
        },
        {
            "name": "proxy_responses",
            "value": "number",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_responses",
            "doc": "\nSets the number of datagrams expected from the proxied server\nin response to a client datagram\nif the UDP\nprotocol is used.\nThe number serves as a hint for session termination.\nBy default, the number of datagrams is not limited.\n",
            "example": ""
        },
        {
            "name": "proxy_session_drop",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_session_drop",
            "doc": "\nEnables terminating all sessions to a proxied server\nafter it was removed from the group or marked as permanently unavailable.\nThis can occur because of\nre-resolve\nor with the API\nDELETE\ncommand.\nA server can be marked as permanently unavailable if it is considered\nunhealthy\nor with the API\nPATCH\ncommand.\nEach session is terminated when the next\nread or write event is processed for the client or proxied server.\n",
            "example": ""
        },
        {
            "name": "proxy_socket_keepalive",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_socket_keepalive",
            "doc": "\nConfigures the “TCP keepalive” behavior\nfor outgoing connections to a proxied server.\nBy default, the operating system’s settings are in effect for the socket.\nIf the directive is set to the value “on”, the\nSO_KEEPALIVE socket option is turned on for the socket.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_ssl",
            "doc": "\nEnables the SSL/TLS protocol for connections to a proxied server.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_certificate",
            "value": "file",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_ssl_certificate",
            "doc": "\nSpecifies a file with the certificate in the PEM format\nused for authentication to a proxied server.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_certificate_key",
            "value": "file",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_ssl_certificate_key",
            "doc": "\nSpecifies a file with the secret key in the PEM format\nused for authentication to a proxied server.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_ciphers",
            "value": "ciphers",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_ssl_ciphers",
            "doc": "\nSpecifies the enabled ciphers for connections to a proxied server.\nThe ciphers are specified in the format understood by the OpenSSL library.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_conf_command",
            "value": "command",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_ssl_conf_command",
            "doc": "\nSets arbitrary OpenSSL configuration\ncommands\nwhen establishing a connection with the proxied server.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_crl",
            "value": "file",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_ssl_crl",
            "doc": "\nSpecifies a file with revoked certificates (CRL)\nin the PEM format used to verify\nthe certificate of the proxied server.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_name",
            "value": "name",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_ssl_name",
            "doc": "\nAllows overriding the server name used to\nverify\nthe certificate of the proxied server and to be\npassed through SNI\nwhen establishing a connection with the proxied server.\nThe server name can also be specified using variables (1.11.3).\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_password_file",
            "value": "file",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_ssl_password_file",
            "doc": "\nSpecifies a file with passphrases for\nsecret keys\nwhere each passphrase is specified on a separate line.\nPassphrases are tried in turn when loading the key.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_protocols",
            "value": "[SSLv2]    [SSLv3]    [TLSv1]    [TLSv1.1]    [TLSv1.2]    [TLSv1.3]",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_ssl_protocols",
            "doc": "\nEnables the specified protocols for connections to a proxied server.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_server_name",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_ssl_server_name",
            "doc": "\nEnables or disables passing of the server name through\nTLS\nServer Name Indication extension (SNI, RFC 6066)\nwhen establishing a connection with the proxied server.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_session_reuse",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_ssl_session_reuse",
            "doc": "\nDetermines whether SSL sessions can be reused when working with\nthe proxied server.\nIf the errors\n“SSL3_GET_FINISHED:digest check failed”\nappear in the logs, try disabling session reuse.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_trusted_certificate",
            "value": "file",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_ssl_trusted_certificate",
            "doc": "\nSpecifies a file with trusted CA certificates in the PEM format\nused to verify\nthe certificate of the proxied server.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_verify",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_ssl_verify",
            "doc": "\nEnables or disables verification of the proxied server certificate.\n",
            "example": ""
        },
        {
            "name": "proxy_ssl_verify_depth",
            "value": "number",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_ssl_verify_depth",
            "doc": "\nSets the verification depth in the proxied server certificates chain.\n",
            "example": ""
        },
        {
            "name": "proxy_timeout",
            "value": "timeout",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_timeout",
            "doc": "\nSets the timeout between two successive\nread or write operations on client or proxied server connections.\nIf no data is transmitted within this time, the connection is closed.\n",
            "example": ""
        },
        {
            "name": "proxy_upload_rate",
            "value": "rate",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_upload_rate",
            "doc": "\nLimits the speed of reading the data from the client.\nThe rate is specified in bytes per second.\nThe zero value disables rate limiting.\nThe limit is set per a connection, so if the client simultaneously opens\ntwo connections,\nthe overall rate will be twice as much as the specified limit.\n",
            "example": "map $slow $rate {\n    1     4k;\n    2     8k;\n}\n\nproxy_upload_rate $rate;\n"
        },
        {
            "name": "set_real_ip_from",
            "value": "\"address\" | \"CIDR\" | \"unix:\"",
            "type": "\"address\" | \"CIDR\" | \"unix:\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_realip_module.html#set_real_ip_from",
            "doc": "\nDefines trusted addresses that are known to send correct\nreplacement addresses.\nIf the special value unix: is specified,\nall UNIX-domain sockets will be trusted.\n",
            "example": ""
        },
        {
            "name": "return",
            "value": "value",
            "type": "any",
            "context": [
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_return_module.html#return",
            "doc": "\nSpecifies a value to send to the client.\nThe value can contain text, variables, and their combination.\n",
            "example": ""
        },
        {
            "name": "set",
            "value": "$variable value",
            "type": "any",
            "context": [
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_set_module.html#set",
            "doc": "\nSets a value for the specified variable.\nThe value can contain text, variables, and their combination.\n",
            "example": ""
        },
        {
            "name": "split_clients",
            "value": "string    $variable { ... }",
            "type": "any",
            "context": [
                "stream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_split_clients_module.html#split_clients",
            "doc": "\nCreates a variable for A/B testing, for example:\n",
            "example": "split_clients \"${remote_addr}AAA\" $variant {\n               0.5%               .one;\n               2.0%               .two;\n               *                  \"\";\n}\n"
        },
        {
            "name": "ssl_alpn",
            "value": "protocol ...",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_ssl_module.html#ssl_alpn",
            "doc": "\nSpecifies the list of supported\nALPN protocols.\nOne of the protocols must be\nnegotiated if the client uses ALPN:\n",
            "example": "map $ssl_alpn_protocol $proxy {\n    h2                127.0.0.1:8001;\n    http/1.1          127.0.0.1:8002;\n}\n\nserver {\n    listen      12346;\n    proxy_pass  $proxy;\n    ssl_alpn    h2 http/1.1;\n}\n"
        },
        {
            "name": "ssl_certificate",
            "value": "file",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_ssl_module.html#ssl_certificate",
            "doc": "\nSpecifies a file with the certificate in the PEM format\nfor the given server.\nIf intermediate certificates should be specified in addition to a primary\ncertificate, they should be specified in the same file in the following\norder: the primary certificate comes first, then the intermediate certificates.\nA secret key in the PEM format may be placed in the same file.\n",
            "example": "server {\n    listen              12345 ssl;\n\n    ssl_certificate     example.com.rsa.crt;\n    ssl_certificate_key example.com.rsa.key;\n\n    ssl_certificate     example.com.ecdsa.crt;\n    ssl_certificate_key example.com.ecdsa.key;\n\n    ...\n}\nssl_certificate     $ssl_server_name.crt;\nssl_certificate_key $ssl_server_name.key;\n"
        },
        {
            "name": "ssl_certificate_key",
            "value": "file",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_ssl_module.html#ssl_certificate_key",
            "doc": "\nSpecifies a file with the secret key in the PEM format\nfor the given server.\n",
            "example": ""
        },
        {
            "name": "ssl_ciphers",
            "value": "ciphers",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_ssl_module.html#ssl_ciphers",
            "doc": "\nSpecifies the enabled ciphers.\nThe ciphers are specified in the format understood by the\nOpenSSL library, for example:\n",
            "example": "ssl_ciphers ALL:!aNULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;\n"
        },
        {
            "name": "ssl_client_certificate",
            "value": "file",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_ssl_module.html#ssl_client_certificate",
            "doc": "\nSpecifies a file with trusted CA certificates in the PEM format\nused to verify client certificates.\n",
            "example": ""
        },
        {
            "name": "ssl_conf_command",
            "value": "command",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_ssl_module.html#ssl_conf_command",
            "doc": "\nSets arbitrary OpenSSL configuration\ncommands.\n",
            "example": "ssl_conf_command Options PrioritizeChaCha;\nssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;\n"
        },
        {
            "name": "ssl_crl",
            "value": "file",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_ssl_module.html#ssl_crl",
            "doc": "\nSpecifies a file with revoked certificates (CRL)\nin the PEM format used to verify\nclient certificates.\n",
            "example": ""
        },
        {
            "name": "ssl_dhparam",
            "value": "file",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_ssl_module.html#ssl_dhparam",
            "doc": "\nSpecifies a file with DH parameters for DHE ciphers.\n",
            "example": ""
        },
        {
            "name": "ssl_ecdh_curve",
            "value": "curve",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_ssl_module.html#ssl_ecdh_curve",
            "doc": "\nSpecifies a curve for ECDHE ciphers.\n",
            "example": "ssl_ecdh_curve prime256v1:secp384r1;\n"
        },
        {
            "name": "ssl_handshake_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_ssl_module.html#ssl_handshake_timeout",
            "doc": "\nSpecifies a timeout for the SSL handshake to complete.\n",
            "example": ""
        },
        {
            "name": "ssl_password_file",
            "value": "file",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_ssl_module.html#ssl_password_file",
            "doc": "\nSpecifies a file with passphrases for\nsecret keys\nwhere each passphrase is specified on a separate line.\nPassphrases are tried in turn when loading the key.\n",
            "example": "stream {\n    ssl_password_file /etc/keys/global.pass;\n    ...\n\n    server {\n        listen 127.0.0.1:12345;\n        ssl_certificate_key /etc/keys/first.key;\n    }\n\n    server {\n        listen 127.0.0.1:12346;\n\n        # named pipe can also be used instead of a file\n        ssl_password_file /etc/keys/fifo;\n        ssl_certificate_key /etc/keys/second.key;\n    }\n}\n"
        },
        {
            "name": "ssl_prefer_server_ciphers",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_ssl_module.html#ssl_prefer_server_ciphers",
            "doc": "\nSpecifies that server ciphers should be preferred over client ciphers\nwhen the SSLv3 and TLS protocols are used.\n",
            "example": ""
        },
        {
            "name": "ssl_protocols",
            "value": "[SSLv2]    [SSLv3]    [TLSv1]    [TLSv1.1]    [TLSv1.2]    [TLSv1.3]",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_ssl_module.html#ssl_protocols",
            "doc": "\nEnables the specified protocols.\n",
            "example": ""
        },
        {
            "name": "ssl_session_cache",
            "value": "\"off\" | \"none\" | \"[builtin[:size]]    [shared:name:size]\"",
            "type": "\"off\" | \"none\" | \"[builtin[:size]]    [shared:name:size]\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_ssl_module.html#ssl_session_cache",
            "doc": "\nSets the types and sizes of caches that store session parameters.\nA cache can be of any of the following types:\n",
            "example": "ssl_session_cache builtin:1000 shared:SSL:10m;\n"
        },
        {
            "name": "ssl_session_ticket_key",
            "value": "file",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_ssl_module.html#ssl_session_ticket_key",
            "doc": "\nSets a file with the secret key used to encrypt\nand decrypt TLS session tickets.\nThe directive is necessary if the same key has to be shared between\nmultiple servers.\nBy default, a randomly generated key is used.\n",
            "example": "ssl_session_ticket_key current.key;\nssl_session_ticket_key previous.key;\nopenssl rand 80 > ticket.key\n"
        },
        {
            "name": "ssl_session_tickets",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_ssl_module.html#ssl_session_tickets",
            "doc": "\nEnables or disables session resumption through\nTLS session tickets.\n",
            "example": ""
        },
        {
            "name": "ssl_session_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_ssl_module.html#ssl_session_timeout",
            "doc": "\nSpecifies a time during which a client may reuse the\nsession parameters.\n",
            "example": ""
        },
        {
            "name": "ssl_trusted_certificate",
            "value": "file",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_ssl_module.html#ssl_trusted_certificate",
            "doc": "\nSpecifies a file with trusted CA certificates in the PEM format\nused to verify client certificates.\n",
            "example": ""
        },
        {
            "name": "ssl_verify_client",
            "value": "\"on\" | \"off\" | \"optional\" | \"optional_no_ca\"",
            "type": "\"on\" | \"off\" | \"optional\" | \"optional_no_ca\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_ssl_module.html#ssl_verify_client",
            "doc": "\nEnables verification of client certificates.\nThe verification result is stored in the\n$ssl_client_verify variable.\nIf an error has occurred during the client certificate verification\nor a client has not presented the required certificate,\nthe connection is closed.\n",
            "example": ""
        },
        {
            "name": "ssl_verify_depth",
            "value": "number",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_ssl_module.html#ssl_verify_depth",
            "doc": "\nSets the verification depth in the client certificates chain.\n",
            "example": ""
        },
        {
            "name": "ssl_preread",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_ssl_preread_module.html#ssl_preread",
            "doc": "\nEnables extracting information from the ClientHello message at\nthe preread phase.\n",
            "example": ""
        },
        {
            "name": "upstream",
            "value": "name { ... }",
            "type": "any",
            "context": [
                "stream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_upstream_module.html#upstream",
            "doc": "\nDefines a group of servers.\nServers can listen on different ports.\nIn addition, servers listening on TCP and UNIX-domain sockets\ncan be mixed.\n",
            "example": "upstream backend {\n    server backend1.example.com:12345 weight=5;\n    server 127.0.0.1:12345            max_fails=3 fail_timeout=30s;\n    server unix:/tmp/backend2;\n    server backend3.example.com:12345 resolve;\n\n    server backup1.example.com:12345  backup;\n}\n"
        },
        {
            "name": "server",
            "value": "address [parameters]",
            "type": "any",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_upstream_module.html#server",
            "doc": "\nDefines the address and other parameters\nof a server.\nThe address can be specified as a domain name or IP address\nwith an obligatory port, or as a UNIX-domain socket path\nspecified after the “unix:” prefix.\nA domain name that resolves to several IP addresses defines\nmultiple servers at once.\n",
            "example": ""
        },
        {
            "name": "zone",
            "value": "name [size]",
            "type": "any",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_upstream_module.html#zone",
            "doc": "\nDefines the name and size of the shared\nmemory zone that keeps the group’s configuration and run-time state that are\nshared between worker processes.\nSeveral groups may share the same zone.\nIn this case, it is enough to specify the size only once.\n",
            "example": ""
        },
        {
            "name": "state",
            "value": "file",
            "type": "any",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_upstream_module.html#state",
            "doc": "\nSpecifies a file that keeps the state\nof the dynamically configurable group.\n",
            "example": "state /var/lib/nginx/state/servers.conf; # path for Linux\nstate /var/db/nginx/state/servers.conf;  # path for FreeBSD\n"
        },
        {
            "name": "hash",
            "value": "key [consistent]",
            "type": "any",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_upstream_module.html#hash",
            "doc": "\nSpecifies a load balancing method for a server group\nwhere the client-server mapping is based on the hashed key value.\nThe key can contain text, variables,\nand their combinations (1.11.2).\nUsage example:\n",
            "example": "hash $remote_addr;\n"
        },
        {
            "name": "least_conn",
            "value": "",
            "type": "any",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_upstream_module.html#least_conn",
            "doc": "\nSpecifies that a group should use a load balancing method where a connection\nis passed to the server with the least number of active connections,\ntaking into account weights of servers.\nIf there are several such servers, they are tried in turn using a\nweighted round-robin balancing method.\n",
            "example": ""
        },
        {
            "name": "least_time",
            "value": "\"connect\" | \"first_byte\" | \"last_byte    [inflight]\"",
            "type": "\"connect\" | \"first_byte\" | \"last_byte    [inflight]\"",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_upstream_module.html#least_time",
            "doc": "\nSpecifies that a group should use a load balancing method where a connection\nis passed to the server with the least average time and\nleast number of active connections, taking into account weights of servers.\nIf there are several such servers, they are tried in turn using a\nweighted round-robin balancing method.\n",
            "example": ""
        },
        {
            "name": "random",
            "value": "[two [method]]",
            "type": "any",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_upstream_module.html#random",
            "doc": "\nSpecifies that a group should use a load balancing method where a connection\nis passed to a randomly selected server, taking into account weights\nof servers.\n",
            "example": ""
        },
        {
            "name": "resolver",
            "value": "\"address ...    [valid=time]    [ipv6=on\" | \"off]    [status_zone=zone]\"",
            "type": "\"address ...    [valid=time]    [ipv6=on\" | \"off]    [status_zone=zone]\"",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_upstream_module.html#resolver",
            "doc": "\nConfigures name servers used to resolve names of upstream servers\ninto addresses, for example:\n",
            "example": "resolver 127.0.0.1 [::1]:5353;\nresolver 127.0.0.1 [::1]:5353 valid=30s;\n"
        },
        {
            "name": "resolver_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "upstream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_upstream_module.html#resolver_timeout",
            "doc": "\nSets a timeout for name resolution, for example:\n",
            "example": "resolver_timeout 5s;\n"
        },
        {
            "name": "health_check",
            "value": "[parameters]",
            "type": "any",
            "context": [
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_upstream_hc_module.html#health_check",
            "doc": "\nEnables periodic health checks of the servers in a\ngroup.\n",
            "example": ""
        },
        {
            "name": "health_check_timeout",
            "value": "timeout",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_upstream_hc_module.html#health_check_timeout",
            "doc": "\nOverrides the\nproxy_timeout\nvalue for health checks.\n",
            "example": ""
        },
        {
            "name": "match",
            "value": "name  { ... }",
            "type": "any",
            "context": [
                "stream"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_upstream_hc_module.html#match",
            "doc": "\nDefines the named test set used to verify server responses to health checks.\n",
            "example": "upstream backend {\n    zone     upstream_backend 10m;\n    server   127.0.0.1:12345;\n}\n\nmatch http {\n    send     \"GET / HTTP/1.0\\r\\nHost: localhost\\r\\n\\r\\n\";\n    expect ~ \"200 OK\";\n}\n\nserver {\n    listen       12346;\n    proxy_pass   backend;\n    health_check match=http;\n}\n"
        },
        {
            "name": "zone_sync",
            "value": "",
            "type": "any",
            "context": [
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html#zone_sync",
            "doc": "\nEnables the synchronization of shared memory zones between cluster nodes.\nCluster nodes are defined using zone_sync_server directives.\n",
            "example": ""
        },
        {
            "name": "zone_sync_buffers",
            "value": "number size",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html#zone_sync_buffers",
            "doc": "\nSets the number and size of the\nper-zone buffers used for pushing zone contents.\nBy default, the buffer size is equal to one memory page.\nThis is either 4K or 8K, depending on a platform.\n",
            "example": ""
        },
        {
            "name": "zone_sync_connect_retry_interval",
            "value": "time",
            "type": "string",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html#zone_sync_connect_retry_interval",
            "doc": "\nDefines an interval between connection attempts to another cluster node.\n",
            "example": ""
        },
        {
            "name": "zone_sync_connect_timeout",
            "value": "time",
            "type": "string",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html#zone_sync_connect_timeout",
            "doc": "\nDefines a timeout for establishing a connection with another cluster node.\n",
            "example": ""
        },
        {
            "name": "zone_sync_interval",
            "value": "time",
            "type": "string",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html#zone_sync_interval",
            "doc": "\nDefines an interval for polling updates in a shared memory zone.\n",
            "example": ""
        },
        {
            "name": "zone_sync_recv_buffer_size",
            "value": "size",
            "type": "string",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html#zone_sync_recv_buffer_size",
            "doc": "\nSets size of a per-connection receive buffer used to parse\nincoming stream of synchronization messages.\nThe buffer size must be equal or greater than one of the\nzone_sync_buffers.\nBy default, the buffer size is equal to\nzone_sync_buffers size\nmultiplied by number.\n",
            "example": ""
        },
        {
            "name": "zone_sync_server",
            "value": "address [resolve]",
            "type": "any",
            "context": [
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html#zone_sync_server",
            "doc": "\nDefines the address of a cluster node.\nThe address can be specified as a domain name or IP address\nwith a mandatory port, or as a UNIX-domain socket path\nspecified after the “unix:” prefix.\nA domain name that resolves to several IP addresses defines\nmultiple nodes at once.\n",
            "example": "stream {\n    resolver 10.0.0.1;\n\n    server {\n        zone_sync;\n        zone_sync_server cluster.example.com:12345 resolve;\n        ...\n    }\n}\n"
        },
        {
            "name": "zone_sync_ssl",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html#zone_sync_ssl",
            "doc": "\nEnables the SSL/TLS protocol for connections to another cluster server.\n",
            "example": ""
        },
        {
            "name": "zone_sync_ssl_certificate",
            "value": "file",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html#zone_sync_ssl_certificate",
            "doc": "\nSpecifies a file with the certificate in the PEM format\nused for authentication to another cluster server.\n",
            "example": ""
        },
        {
            "name": "zone_sync_ssl_certificate_key",
            "value": "file",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html#zone_sync_ssl_certificate_key",
            "doc": "\nSpecifies a file with the secret key in the PEM format\nused for authentication to another cluster server.\n",
            "example": ""
        },
        {
            "name": "zone_sync_ssl_ciphers",
            "value": "ciphers",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html#zone_sync_ssl_ciphers",
            "doc": "\nSpecifies the enabled ciphers for connections to another cluster server.\nThe ciphers are specified in the format understood by the OpenSSL library.\n",
            "example": ""
        },
        {
            "name": "zone_sync_ssl_conf_command",
            "value": "command",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html#zone_sync_ssl_conf_command",
            "doc": "\nSets arbitrary OpenSSL configuration\ncommands\nwhen establishing a connection with another cluster server.\n",
            "example": ""
        },
        {
            "name": "zone_sync_ssl_crl",
            "value": "file",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html#zone_sync_ssl_crl",
            "doc": "\nSpecifies a file with revoked certificates (CRL)\nin the PEM format used to verify\nthe certificate of another cluster server.\n",
            "example": ""
        },
        {
            "name": "zone_sync_ssl_name",
            "value": "name",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html#zone_sync_ssl_name",
            "doc": "\nAllows overriding the server name used to\nverify\nthe certificate of a cluster server and to be\npassed through SNI\nwhen establishing a connection with the cluster server.\n",
            "example": ""
        },
        {
            "name": "zone_sync_ssl_password_file",
            "value": "file",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html#zone_sync_ssl_password_file",
            "doc": "\nSpecifies a file with passphrases for\nsecret keys\nwhere each passphrase is specified on a separate line.\nPassphrases are tried in turn when loading the key.\n",
            "example": ""
        },
        {
            "name": "zone_sync_ssl_protocols",
            "value": "[SSLv2]    [SSLv3]    [TLSv1]    [TLSv1.1]    [TLSv1.2]    [TLSv1.3]",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html#zone_sync_ssl_protocols",
            "doc": "\nEnables the specified protocols for connections to another cluster server.\n",
            "example": ""
        },
        {
            "name": "zone_sync_ssl_server_name",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html#zone_sync_ssl_server_name",
            "doc": "\nEnables or disables passing of the server name through\nTLS\nServer Name Indication extension (SNI, RFC 6066)\nwhen establishing a connection with another cluster server.\n",
            "example": ""
        },
        {
            "name": "zone_sync_ssl_trusted_certificate",
            "value": "file",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html#zone_sync_ssl_trusted_certificate",
            "doc": "\nSpecifies a file with trusted CA certificates in the PEM format\nused to verify\nthe certificate of another cluster server.\n",
            "example": ""
        },
        {
            "name": "zone_sync_ssl_verify",
            "value": "\"on\" | \"off\"",
            "type": "\"on\" | \"off\"",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html#zone_sync_ssl_verify",
            "doc": "\nEnables or disables verification of another cluster server certificate.\n",
            "example": ""
        },
        {
            "name": "zone_sync_ssl_verify_depth",
            "value": "number",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html#zone_sync_ssl_verify_depth",
            "doc": "\nSets the verification depth in another cluster server certificates chain.\n",
            "example": ""
        },
        {
            "name": "zone_sync_timeout",
            "value": "timeout",
            "type": "any",
            "context": [
                "stream",
                "server"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html#zone_sync_timeout",
            "doc": "\nSets the timeout between two successive\nread or write operations on connection to another cluster node.\nIf no data is transmitted within this time, the connection is closed.\n",
            "example": ""
        },
        {
            "name": "google_perftools_profiles",
            "value": "file",
            "type": "any",
            "context": [
                "main"
            ],
            "default": null,
            "url": "https://nginx.org/en/docs/ngx_google_perftools_module.html#google_perftools_profiles",
            "doc": "\nSets a file name that keeps profiling information of\nnginx worker process.\nThe ID of the worker process is always a part of the file name\nand is appended to the end of the file name, after a dot.\n",
            "example": ""
        }
    ],
    "variables": [
        {
            "name": "$arg_",
            "doc": "\nargument name in the request line\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_arg_",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$args",
            "doc": "\narguments in the request line\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_args",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$binary_remote_addr",
            "doc": "\nclient address in a binary form, value’s length is always 4 bytes\nfor IPv4 addresses or 16 bytes for IPv6 addresses\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_binary_remote_addr",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$body_bytes_sent",
            "doc": "\nnumber of bytes sent to a client, not counting the response header;\nthis variable is compatible with the “%B” parameter of the\nmod_log_config\nApache module\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_body_bytes_sent",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$bytes_sent",
            "doc": "\nnumber of bytes sent to a client (1.3.8, 1.2.5)\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_bytes_sent",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$connection",
            "doc": "\nconnection serial number (1.3.8, 1.2.5)\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_connection",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$connection_requests",
            "doc": "\ncurrent number of requests made through a connection (1.3.8, 1.2.5)\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_connection_requests",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$connection_time",
            "doc": "\nconnection time in seconds with a milliseconds resolution (1.19.10)\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_connection_time",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$content_length",
            "doc": "\n“Content-Length” request header field\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_content_length",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$content_type",
            "doc": "\n“Content-Type” request header field\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_content_type",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$cookie_",
            "doc": "\nthe name cookie\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_cookie_",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$document_root",
            "doc": "\nroot or alias directive’s value\nfor the current request\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_document_root",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$document_uri",
            "doc": "\nsame as $uri\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_document_uri",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$host",
            "doc": "\nin this order of precedence:\nhost name from the request line, or\nhost name from the “Host” request header field, or\nthe server name matching a request\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_host",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$hostname",
            "doc": "\nhost name\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_hostname",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$http_",
            "doc": "\narbitrary request header field;\nthe last part of a variable name is the field name converted\nto lower case with dashes replaced by underscores\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_http_",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$https",
            "doc": "\n“on”\nif connection operates in SSL mode,\nor an empty string otherwise\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_https",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$is_args",
            "doc": "\n“?” if a request line has arguments,\nor an empty string otherwise\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_is_args",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$limit_rate",
            "doc": "\nsetting this variable enables response rate limiting;\nsee limit_rate\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_limit_rate",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$msec",
            "doc": "\ncurrent time in seconds with the milliseconds resolution (1.3.9, 1.2.6)\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_msec",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$nginx_version",
            "doc": "\nnginx version\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_nginx_version",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$pid",
            "doc": "\nPID of the worker process\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_pid",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$pipe",
            "doc": "\n“p” if request was pipelined, “.”\notherwise (1.3.12, 1.2.7)\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_pipe",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$proxy_protocol_addr",
            "doc": "\nclient address from the PROXY protocol header (1.5.12)\n\nThe PROXY protocol must be previously enabled by setting the\nproxy_protocol parameter\nin the listen directive.\n\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_proxy_protocol_addr",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$proxy_protocol_port",
            "doc": "\nclient port from the PROXY protocol header (1.11.0)\n\nThe PROXY protocol must be previously enabled by setting the\nproxy_protocol parameter\nin the listen directive.\n\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_proxy_protocol_port",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$proxy_protocol_server_addr",
            "doc": "\nserver address from the PROXY protocol header (1.17.6)\n\nThe PROXY protocol must be previously enabled by setting the\nproxy_protocol parameter\nin the listen directive.\n\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_proxy_protocol_server_addr",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$proxy_protocol_server_port",
            "doc": "\nserver port from the PROXY protocol header (1.17.6)\n\nThe PROXY protocol must be previously enabled by setting the\nproxy_protocol parameter\nin the listen directive.\n\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_proxy_protocol_server_port",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$query_string",
            "doc": "\nsame as $args\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_query_string",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$realpath_root",
            "doc": "\nan absolute pathname corresponding to the\nroot or alias directive’s value\nfor the current request,\nwith all symbolic links resolved to real paths\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_realpath_root",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$remote_addr",
            "doc": "\nclient address\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_remote_addr",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$remote_port",
            "doc": "\nclient port\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_remote_port",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$remote_user",
            "doc": "\nuser name supplied with the Basic authentication\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_remote_user",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$request",
            "doc": "\nfull original request line\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_request",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$request_body",
            "doc": "\nrequest body\n\nThe variable’s value is made available in locations\nprocessed by the\nproxy_pass,\nfastcgi_pass,\nuwsgi_pass,\nand\nscgi_pass\ndirectives when the request body was read to\na memory buffer.\n\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_request_body",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$request_body_file",
            "doc": "\nname of a temporary file with the request body\n\nAt the end of processing, the file needs to be removed.\nTo always write the request body to a file,\nclient_body_in_file_only needs to be enabled.\nWhen the name of a temporary file is passed in a proxied request\nor in a request to a FastCGI/uwsgi/SCGI server,\npassing the request body should be disabled by the\n\nproxy_pass_request_body off,\n\nfastcgi_pass_request_body off,\n\nuwsgi_pass_request_body off, or\n\nscgi_pass_request_body off\ndirectives, respectively.\n\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_request_body_file",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$request_completion",
            "doc": "\n“OK” if a request has completed,\nor an empty string otherwise\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_request_completion",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$request_filename",
            "doc": "\nfile path for the current request, based on the\nroot or alias\ndirectives, and the request URI\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_request_filename",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$request_id",
            "doc": "\nunique request identifier\ngenerated from 16 random bytes, in hexadecimal (1.11.0)\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_request_id",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$request_length",
            "doc": "\nrequest length (including request line, header, and request body)\n(1.3.12, 1.2.7)\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_request_length",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$request_method",
            "doc": "\nrequest method, usually\n“GET” or “POST”\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_request_method",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$request_time",
            "doc": "\nrequest processing time in seconds with a milliseconds resolution\n(1.3.9, 1.2.6);\ntime elapsed since the first bytes were read from the client\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_request_time",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$request_uri",
            "doc": "\nfull original request URI (with arguments)\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_request_uri",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$scheme",
            "doc": "\nrequest scheme, “http” or “https”\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_scheme",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$sent_http_",
            "doc": "\narbitrary response header field;\nthe last part of a variable name is the field name converted\nto lower case with dashes replaced by underscores\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_sent_http_",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$sent_trailer_",
            "doc": "\narbitrary field sent at the end of the response (1.13.2);\nthe last part of a variable name is the field name converted\nto lower case with dashes replaced by underscores\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_sent_trailer_",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$server_addr",
            "doc": "\nan address of the server which accepted a request\n\nComputing a value of this variable usually requires one system call.\nTo avoid a system call, the listen directives\nmust specify addresses and use the bind parameter.\n\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_server_addr",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$server_name",
            "doc": "\nname of the server which accepted a request\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_server_name",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$server_port",
            "doc": "\nport of the server which accepted a request\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_server_port",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$server_protocol",
            "doc": "\nrequest protocol, usually\n“HTTP/1.0”,\n“HTTP/1.1”,\nor\n“HTTP/2.0”\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_server_protocol",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$status",
            "doc": "\nresponse status (1.3.2, 1.2.2)\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_status",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$tcpinfo_",
            "doc": "\ninformation about the client TCP connection; available on systems\nthat support the TCP_INFO socket option\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_tcpinfo_",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$time_iso8601",
            "doc": "\nlocal time in the ISO 8601 standard format (1.3.12, 1.2.7)\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_time_iso8601",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$time_local",
            "doc": "\nlocal time in the Common Log Format (1.3.12, 1.2.7)\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_time_local",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$uri",
            "doc": "\ncurrent URI in request, normalized\n\nThe value of $uri may change during request processing,\ne.g. when doing internal redirects, or when using index files.\n\n",
            "url": "https://nginx.org/en/docs/http/ngx_http_core_module.html#varvar_uri",
            "module": "ngx_http_core_module"
        },
        {
            "name": "$binary_remote_addr",
            "doc": "\nclient address in a binary form, value’s length is always 4 bytes\nfor IPv4 addresses or 16 bytes for IPv6 addresses\n",
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#varvar_binary_remote_addr",
            "module": "ngx_stream_core_module"
        },
        {
            "name": "$bytes_received",
            "doc": "\nnumber of bytes received from a client (1.11.4)\n",
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#varvar_bytes_received",
            "module": "ngx_stream_core_module"
        },
        {
            "name": "$bytes_sent",
            "doc": "\nnumber of bytes sent to a client\n",
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#varvar_bytes_sent",
            "module": "ngx_stream_core_module"
        },
        {
            "name": "$connection",
            "doc": "\nconnection serial number\n",
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#varvar_connection",
            "module": "ngx_stream_core_module"
        },
        {
            "name": "$hostname",
            "doc": "\nhost name\n",
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#varvar_hostname",
            "module": "ngx_stream_core_module"
        },
        {
            "name": "$msec",
            "doc": "\ncurrent time in seconds with the milliseconds resolution\n",
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#varvar_msec",
            "module": "ngx_stream_core_module"
        },
        {
            "name": "$nginx_version",
            "doc": "\nnginx version\n",
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#varvar_nginx_version",
            "module": "ngx_stream_core_module"
        },
        {
            "name": "$pid",
            "doc": "\nPID of the worker process\n",
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#varvar_pid",
            "module": "ngx_stream_core_module"
        },
        {
            "name": "$protocol",
            "doc": "\nprotocol used to communicate with the client:\nTCP or UDP (1.11.4)\n",
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#varvar_protocol",
            "module": "ngx_stream_core_module"
        },
        {
            "name": "$proxy_protocol_addr",
            "doc": "\nclient address from the PROXY protocol header (1.11.4)\n\nThe PROXY protocol must be previously enabled by setting the\nproxy_protocol parameter\nin the listen directive.\n\n",
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#varvar_proxy_protocol_addr",
            "module": "ngx_stream_core_module"
        },
        {
            "name": "$proxy_protocol_port",
            "doc": "\nclient port from the PROXY protocol header (1.11.4)\n\nThe PROXY protocol must be previously enabled by setting the\nproxy_protocol parameter\nin the listen directive.\n\n",
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#varvar_proxy_protocol_port",
            "module": "ngx_stream_core_module"
        },
        {
            "name": "$proxy_protocol_server_addr",
            "doc": "\nserver address from the PROXY protocol header (1.17.6)\n\nThe PROXY protocol must be previously enabled by setting the\nproxy_protocol parameter\nin the listen directive.\n\n",
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#varvar_proxy_protocol_server_addr",
            "module": "ngx_stream_core_module"
        },
        {
            "name": "$proxy_protocol_server_port",
            "doc": "\nserver port from the PROXY protocol header (1.17.6)\n\nThe PROXY protocol must be previously enabled by setting the\nproxy_protocol parameter\nin the listen directive.\n\n",
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#varvar_proxy_protocol_server_port",
            "module": "ngx_stream_core_module"
        },
        {
            "name": "$remote_addr",
            "doc": "\nclient address\n",
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#varvar_remote_addr",
            "module": "ngx_stream_core_module"
        },
        {
            "name": "$remote_port",
            "doc": "\nclient port\n",
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#varvar_remote_port",
            "module": "ngx_stream_core_module"
        },
        {
            "name": "$server_addr",
            "doc": "\nan address of the server which accepted a connection\n\nComputing a value of this variable usually requires one system call.\nTo avoid a system call, the listen directives\nmust specify addresses and use the bind parameter.\n\n",
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#varvar_server_addr",
            "module": "ngx_stream_core_module"
        },
        {
            "name": "$server_port",
            "doc": "\nport of the server which accepted a connection\n",
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#varvar_server_port",
            "module": "ngx_stream_core_module"
        },
        {
            "name": "$session_time",
            "doc": "\nsession duration in seconds with a milliseconds resolution\n(1.11.4);\n",
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#varvar_session_time",
            "module": "ngx_stream_core_module"
        },
        {
            "name": "$status",
            "doc": "\nsession status (1.11.4), can be one of the following:\n\n\n200\n\nsession completed successfully\n\n\n400\n\nclient data could not be parsed, for example,\nthe PROXY protocol header\n\n\n403\n\naccess forbidden, for example, when access is limited for\ncertain client addresses\n\n\n500\n\ninternal server error\n\n\n502\n\nbad gateway, for example,\nif an upstream server could not be selected or reached.\n\n\n503\n\nservice unavailable, for example, when access is limited by the\nnumber of connections\n\n\n\n",
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#varvar_status",
            "module": "ngx_stream_core_module"
        },
        {
            "name": "$time_iso8601",
            "doc": "\nlocal time in the ISO 8601 standard format\n",
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#varvar_time_iso8601",
            "module": "ngx_stream_core_module"
        },
        {
            "name": "$time_local",
            "doc": "\nlocal time in the Common Log Format\n",
            "url": "https://nginx.org/en/docs/stream/ngx_stream_core_module.html#varvar_time_local",
            "module": "ngx_stream_core_module"
        }
    ]
}