ingress-nginx/user-guide/nginx-configuration/configmap/index.html

4327 lines
149 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="lang:clipboard.copy" content="Copy to clipboard">
<meta name="lang:clipboard.copied" content="Copied to clipboard">
<meta name="lang:search.language" content="en">
<meta name="lang:search.pipeline.stopwords" content="True">
<meta name="lang:search.pipeline.trimmer" content="True">
<meta name="lang:search.result.none" content="No matching documents">
<meta name="lang:search.result.one" content="1 matching document">
<meta name="lang:search.result.other" content="# matching documents">
<meta name="lang:search.tokenizer" content="[\s\-]+">
<link rel="shortcut icon" href="../../../assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.0.4, mkdocs-material-4.0.2">
<title>ConfigMap - NGINX Ingress Controller</title>
<link rel="stylesheet" href="../../../assets/stylesheets/application.982221ab.css">
<link rel="stylesheet" href="../../../assets/stylesheets/application-palette.224b79ff.css">
<meta name="theme-color" content="#009688">
<script src="../../../assets/javascripts/modernizr.1f0bcf2b.js"></script>
<link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700|Roboto+Mono">
<style>body,input{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono","Courier New",Courier,monospace}</style>
<link rel="stylesheet" href="../../../assets/fonts/material-icons.css">
<link rel="stylesheet" href="../../../extra.css">
<script>
window.ga = window.ga || function() {
(ga.q = ga.q || []).push(arguments)
}
ga.l = +new Date
/* Setup integration and send page view */
ga("create", "UA-118407822-1", "kubernetes.github.io")
ga("set", "anonymizeIp", true)
ga("send", "pageview")
/* Register handler to log search on blur */
document.addEventListener("DOMContentLoaded", () => {
if (document.forms.search) {
var query = document.forms.search.query
query.addEventListener("blur", function() {
if (this.value) {
var path = document.location.pathname;
ga("send", "pageview", path + "?q=" + this.value)
}
})
}
})
</script>
<script async src="https://www.google-analytics.com/analytics.js"></script>
</head>
<body dir="ltr" data-md-color-primary="teal" data-md-color-accent="green">
<svg class="md-svg">
<defs>
<svg xmlns="http://www.w3.org/2000/svg" width="416" height="448"
viewBox="0 0 416 448" id="__github">
<path fill="currentColor" d="M160 304q0 10-3.125 20.5t-10.75 19-18.125
8.5-18.125-8.5-10.75-19-3.125-20.5 3.125-20.5 10.75-19 18.125-8.5
18.125 8.5 10.75 19 3.125 20.5zM320 304q0 10-3.125 20.5t-10.75
19-18.125 8.5-18.125-8.5-10.75-19-3.125-20.5 3.125-20.5 10.75-19
18.125-8.5 18.125 8.5 10.75 19 3.125 20.5zM360
304q0-30-17.25-51t-46.75-21q-10.25 0-48.75 5.25-17.75 2.75-39.25
2.75t-39.25-2.75q-38-5.25-48.75-5.25-29.5 0-46.75 21t-17.25 51q0 22 8
38.375t20.25 25.75 30.5 15 35 7.375 37.25 1.75h42q20.5 0
37.25-1.75t35-7.375 30.5-15 20.25-25.75 8-38.375zM416 260q0 51.75-15.25
82.75-9.5 19.25-26.375 33.25t-35.25 21.5-42.5 11.875-42.875 5.5-41.75
1.125q-19.5 0-35.5-0.75t-36.875-3.125-38.125-7.5-34.25-12.875-30.25-20.25-21.5-28.75q-15.5-30.75-15.5-82.75
0-59.25 34-99-6.75-20.5-6.75-42.5 0-29 12.75-54.5 27 0 47.5 9.875t47.25
30.875q36.75-8.75 77.25-8.75 37 0 70 8 26.25-20.5
46.75-30.25t47.25-9.75q12.75 25.5 12.75 54.5 0 21.75-6.75 42 34 40 34
99.5z" />
</svg>
</defs>
</svg>
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" data-md-component="overlay" for="__drawer"></label>
<a href="#configmaps" tabindex="1" class="md-skip">
Skip to content
</a>
<header class="md-header" data-md-component="header">
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="../../.." title="NGINX Ingress Controller" class="md-header-nav__button md-logo">
<i class="md-icon">public</i>
</a>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
<label class="md-icon md-icon--menu md-header-nav__button" for="__drawer"></label>
</div>
<div class="md-flex__cell md-flex__cell--stretch">
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
NGINX Ingress Controller
</span>
<span class="md-header-nav__topic">
ConfigMap
</span>
</div>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
<label class="md-icon md-icon--search md-header-nav__button" for="__search"></label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query" data-md-state="active">
<label class="md-icon md-search__icon" for="__search"></label>
<button type="reset" class="md-icon md-search__icon" data-md-component="reset" tabindex="-1">
&#xE5CD;
</button>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="result">
<div class="md-search-result__meta">
Type to start searching
</div>
<ol class="md-search-result__list"></ol>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
<div class="md-header-nav__source">
<a href="https://github.com/kubernetes/ingress-nginx/" title="Go to repository" class="md-source" data-md-source="github">
<div class="md-source__icon">
<svg viewBox="0 0 24 24" width="24" height="24">
<use xlink:href="#__github" width="24" height="24"></use>
</svg>
</div>
<div class="md-source__repository">
kubernetes/ingress-nginx
</div>
</a>
</div>
</div>
</div>
</nav>
</header>
<div class="md-container">
<nav class="md-tabs md-tabs--active" data-md-component="tabs">
<div class="md-tabs__inner md-grid">
<ul class="md-tabs__list">
<li class="md-tabs__item">
<a href="../../.." title="Welcome" class="md-tabs__link">
Welcome
</a>
</li>
<li class="md-tabs__item">
<a href="../../../deploy/" title="Deployment" class="md-tabs__link">
Deployment
</a>
</li>
<li class="md-tabs__item">
<a href="../" title="User guide" class="md-tabs__link md-tabs__link--active">
User guide
</a>
</li>
<li class="md-tabs__item">
<a href="../../../examples/" title="Examples" class="md-tabs__link">
Examples
</a>
</li>
</ul>
</div>
</nav>
<main class="md-main">
<div class="md-main__inner md-grid" data-md-component="container">
<div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="../../.." title="NGINX Ingress Controller" class="md-nav__button md-logo">
<i class="md-icon">public</i>
</a>
NGINX Ingress Controller
</label>
<div class="md-nav__source">
<a href="https://github.com/kubernetes/ingress-nginx/" title="Go to repository" class="md-source" data-md-source="github">
<div class="md-source__icon">
<svg viewBox="0 0 24 24" width="24" height="24">
<use xlink:href="#__github" width="24" height="24"></use>
</svg>
</div>
<div class="md-source__repository">
kubernetes/ingress-nginx
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-1" type="checkbox" id="nav-1">
<label class="md-nav__link" for="nav-1">
Welcome
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
<label class="md-nav__title" for="nav-1">
Welcome
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../.." title="Welcome" class="md-nav__link">
Welcome
</a>
</li>
<li class="md-nav__item">
<a href="../../../how-it-works/" title="How it works" class="md-nav__link">
How it works
</a>
</li>
<li class="md-nav__item">
<a href="../../../troubleshooting/" title="Troubleshooting" class="md-nav__link">
Troubleshooting
</a>
</li>
<li class="md-nav__item">
<a href="../../../kubectl-plugin/" title="kubectl plugin" class="md-nav__link">
kubectl plugin
</a>
</li>
<li class="md-nav__item">
<a href="../../../development/" title="Development" class="md-nav__link">
Development
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-2" type="checkbox" id="nav-2">
<label class="md-nav__link" for="nav-2">
Deployment
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
<label class="md-nav__title" for="nav-2">
Deployment
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../deploy/" title="Installation Guide" class="md-nav__link">
Installation Guide
</a>
</li>
<li class="md-nav__item">
<a href="../../../deploy/baremetal/" title="Bare-metal considerations" class="md-nav__link">
Bare-metal considerations
</a>
</li>
<li class="md-nav__item">
<a href="../../../deploy/rbac/" title="Role Based Access Control (RBAC)" class="md-nav__link">
Role Based Access Control (RBAC)
</a>
</li>
<li class="md-nav__item">
<a href="../../../deploy/validating-webhook/" title="Validating Webhook (admission controller)" class="md-nav__link">
Validating Webhook (admission controller)
</a>
</li>
<li class="md-nav__item">
<a href="../../../deploy/upgrade/" title="Upgrade" class="md-nav__link">
Upgrade
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-3" type="checkbox" id="nav-3" checked>
<label class="md-nav__link" for="nav-3">
User guide
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
<label class="md-nav__title" for="nav-3">
User guide
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--active md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-3-1" type="checkbox" id="nav-3-1" checked>
<label class="md-nav__link" for="nav-3-1">
NGINX Configuration
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="2">
<label class="md-nav__title" for="nav-3-1">
NGINX Configuration
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../" title="Introduction" class="md-nav__link">
Introduction
</a>
</li>
<li class="md-nav__item">
<a href="../../basic-usage/" title="Basic usage" class="md-nav__link">
Basic usage
</a>
</li>
<li class="md-nav__item">
<a href="../annotations/" title="Annotations" class="md-nav__link">
Annotations
</a>
</li>
<li class="md-nav__item md-nav__item--active">
<input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
ConfigMap
</label>
<a href="./" title="ConfigMap" class="md-nav__link md-nav__link--active">
ConfigMap
</a>
<nav class="md-nav md-nav--secondary">
<label class="md-nav__title" for="__toc">Table of contents</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="#configuration-options" title="Configuration options" class="md-nav__link">
Configuration options
</a>
</li>
<li class="md-nav__item">
<a href="#add-headers" title="add-headers" class="md-nav__link">
add-headers
</a>
</li>
<li class="md-nav__item">
<a href="#allow-backend-server-header" title="allow-backend-server-header" class="md-nav__link">
allow-backend-server-header
</a>
</li>
<li class="md-nav__item">
<a href="#hide-headers" title="hide-headers" class="md-nav__link">
hide-headers
</a>
</li>
<li class="md-nav__item">
<a href="#access-log-params" title="access-log-params" class="md-nav__link">
access-log-params
</a>
</li>
<li class="md-nav__item">
<a href="#access-log-path" title="access-log-path" class="md-nav__link">
access-log-path
</a>
</li>
<li class="md-nav__item">
<a href="#enable-access-log-for-default-backend" title="enable-access-log-for-default-backend" class="md-nav__link">
enable-access-log-for-default-backend
</a>
</li>
<li class="md-nav__item">
<a href="#error-log-path" title="error-log-path" class="md-nav__link">
error-log-path
</a>
</li>
<li class="md-nav__item">
<a href="#enable-dynamic-tls-records" title="enable-dynamic-tls-records" class="md-nav__link">
enable-dynamic-tls-records
</a>
</li>
<li class="md-nav__item">
<a href="#enable-modsecurity" title="enable-modsecurity" class="md-nav__link">
enable-modsecurity
</a>
</li>
<li class="md-nav__item">
<a href="#enable-owasp-modsecurity-crs" title="enable-owasp-modsecurity-crs" class="md-nav__link">
enable-owasp-modsecurity-crs
</a>
</li>
<li class="md-nav__item">
<a href="#client-header-buffer-size" title="client-header-buffer-size" class="md-nav__link">
client-header-buffer-size
</a>
</li>
<li class="md-nav__item">
<a href="#client-header-timeout" title="client-header-timeout" class="md-nav__link">
client-header-timeout
</a>
</li>
<li class="md-nav__item">
<a href="#client-body-buffer-size" title="client-body-buffer-size" class="md-nav__link">
client-body-buffer-size
</a>
</li>
<li class="md-nav__item">
<a href="#client-body-timeout" title="client-body-timeout" class="md-nav__link">
client-body-timeout
</a>
</li>
<li class="md-nav__item">
<a href="#disable-access-log" title="disable-access-log" class="md-nav__link">
disable-access-log
</a>
</li>
<li class="md-nav__item">
<a href="#disable-ipv6" title="disable-ipv6" class="md-nav__link">
disable-ipv6
</a>
</li>
<li class="md-nav__item">
<a href="#disable-ipv6-dns" title="disable-ipv6-dns" class="md-nav__link">
disable-ipv6-dns
</a>
</li>
<li class="md-nav__item">
<a href="#enable-underscores-in-headers" title="enable-underscores-in-headers" class="md-nav__link">
enable-underscores-in-headers
</a>
</li>
<li class="md-nav__item">
<a href="#ignore-invalid-headers" title="ignore-invalid-headers" class="md-nav__link">
ignore-invalid-headers
</a>
</li>
<li class="md-nav__item">
<a href="#retry-non-idempotent" title="retry-non-idempotent" class="md-nav__link">
retry-non-idempotent
</a>
</li>
<li class="md-nav__item">
<a href="#error-log-level" title="error-log-level" class="md-nav__link">
error-log-level
</a>
</li>
<li class="md-nav__item">
<a href="#http2-max-field-size" title="http2-max-field-size" class="md-nav__link">
http2-max-field-size
</a>
</li>
<li class="md-nav__item">
<a href="#http2-max-header-size" title="http2-max-header-size" class="md-nav__link">
http2-max-header-size
</a>
</li>
<li class="md-nav__item">
<a href="#http2-max-requests" title="http2-max-requests" class="md-nav__link">
http2-max-requests
</a>
</li>
<li class="md-nav__item">
<a href="#hsts" title="hsts" class="md-nav__link">
hsts
</a>
</li>
<li class="md-nav__item">
<a href="#hsts-include-subdomains" title="hsts-include-subdomains" class="md-nav__link">
hsts-include-subdomains
</a>
</li>
<li class="md-nav__item">
<a href="#hsts-max-age" title="hsts-max-age" class="md-nav__link">
hsts-max-age
</a>
</li>
<li class="md-nav__item">
<a href="#hsts-preload" title="hsts-preload" class="md-nav__link">
hsts-preload
</a>
</li>
<li class="md-nav__item">
<a href="#keep-alive" title="keep-alive" class="md-nav__link">
keep-alive
</a>
</li>
<li class="md-nav__item">
<a href="#keep-alive-requests" title="keep-alive-requests" class="md-nav__link">
keep-alive-requests
</a>
</li>
<li class="md-nav__item">
<a href="#large-client-header-buffers" title="large-client-header-buffers" class="md-nav__link">
large-client-header-buffers
</a>
</li>
<li class="md-nav__item">
<a href="#log-format-escape-json" title="log-format-escape-json" class="md-nav__link">
log-format-escape-json
</a>
</li>
<li class="md-nav__item">
<a href="#log-format-upstream" title="log-format-upstream" class="md-nav__link">
log-format-upstream
</a>
</li>
<li class="md-nav__item">
<a href="#log-format-stream" title="log-format-stream" class="md-nav__link">
log-format-stream
</a>
</li>
<li class="md-nav__item">
<a href="#enable-multi-accept" title="enable-multi-accept" class="md-nav__link">
enable-multi-accept
</a>
</li>
<li class="md-nav__item">
<a href="#max-worker-connections" title="max-worker-connections" class="md-nav__link">
max-worker-connections
</a>
</li>
<li class="md-nav__item">
<a href="#max-worker-open-files" title="max-worker-open-files" class="md-nav__link">
max-worker-open-files
</a>
</li>
<li class="md-nav__item">
<a href="#map-hash-bucket-size" title="map-hash-bucket-size" class="md-nav__link">
map-hash-bucket-size
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-real-ip-cidr" title="proxy-real-ip-cidr" class="md-nav__link">
proxy-real-ip-cidr
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-set-headers" title="proxy-set-headers" class="md-nav__link">
proxy-set-headers
</a>
</li>
<li class="md-nav__item">
<a href="#server-name-hash-max-size" title="server-name-hash-max-size" class="md-nav__link">
server-name-hash-max-size
</a>
</li>
<li class="md-nav__item">
<a href="#server-name-hash-bucket-size" title="server-name-hash-bucket-size" class="md-nav__link">
server-name-hash-bucket-size
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-headers-hash-max-size" title="proxy-headers-hash-max-size" class="md-nav__link">
proxy-headers-hash-max-size
</a>
</li>
<li class="md-nav__item">
<a href="#reuse-port" title="reuse-port" class="md-nav__link">
reuse-port
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-headers-hash-bucket-size" title="proxy-headers-hash-bucket-size" class="md-nav__link">
proxy-headers-hash-bucket-size
</a>
</li>
<li class="md-nav__item">
<a href="#server-tokens" title="server-tokens" class="md-nav__link">
server-tokens
</a>
</li>
<li class="md-nav__item">
<a href="#ssl-ciphers" title="ssl-ciphers" class="md-nav__link">
ssl-ciphers
</a>
</li>
<li class="md-nav__item">
<a href="#ssl-ecdh-curve" title="ssl-ecdh-curve" class="md-nav__link">
ssl-ecdh-curve
</a>
</li>
<li class="md-nav__item">
<a href="#ssl-dh-param" title="ssl-dh-param" class="md-nav__link">
ssl-dh-param
</a>
</li>
<li class="md-nav__item">
<a href="#ssl-protocols" title="ssl-protocols" class="md-nav__link">
ssl-protocols
</a>
</li>
<li class="md-nav__item">
<a href="#ssl-session-cache" title="ssl-session-cache" class="md-nav__link">
ssl-session-cache
</a>
</li>
<li class="md-nav__item">
<a href="#ssl-session-cache-size" title="ssl-session-cache-size" class="md-nav__link">
ssl-session-cache-size
</a>
</li>
<li class="md-nav__item">
<a href="#ssl-session-tickets" title="ssl-session-tickets" class="md-nav__link">
ssl-session-tickets
</a>
</li>
<li class="md-nav__item">
<a href="#ssl-session-ticket-key" title="ssl-session-ticket-key" class="md-nav__link">
ssl-session-ticket-key
</a>
</li>
<li class="md-nav__item">
<a href="#ssl-session-timeout" title="ssl-session-timeout" class="md-nav__link">
ssl-session-timeout
</a>
</li>
<li class="md-nav__item">
<a href="#ssl-buffer-size" title="ssl-buffer-size" class="md-nav__link">
ssl-buffer-size
</a>
</li>
<li class="md-nav__item">
<a href="#use-proxy-protocol" title="use-proxy-protocol" class="md-nav__link">
use-proxy-protocol
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-protocol-header-timeout" title="proxy-protocol-header-timeout" class="md-nav__link">
proxy-protocol-header-timeout
</a>
</li>
<li class="md-nav__item">
<a href="#use-gzip" title="use-gzip" class="md-nav__link">
use-gzip
</a>
</li>
<li class="md-nav__item">
<a href="#use-geoip" title="use-geoip" class="md-nav__link">
use-geoip
</a>
</li>
<li class="md-nav__item">
<a href="#use-geoip2" title="use-geoip2" class="md-nav__link">
use-geoip2
</a>
</li>
<li class="md-nav__item">
<a href="#enable-brotli" title="enable-brotli" class="md-nav__link">
enable-brotli
</a>
</li>
<li class="md-nav__item">
<a href="#brotli-level" title="brotli-level" class="md-nav__link">
brotli-level
</a>
</li>
<li class="md-nav__item">
<a href="#brotli-types" title="brotli-types" class="md-nav__link">
brotli-types
</a>
</li>
<li class="md-nav__item">
<a href="#use-http2" title="use-http2" class="md-nav__link">
use-http2
</a>
</li>
<li class="md-nav__item">
<a href="#gzip-level" title="gzip-level" class="md-nav__link">
gzip-level
</a>
</li>
<li class="md-nav__item">
<a href="#gzip-types" title="gzip-types" class="md-nav__link">
gzip-types
</a>
</li>
<li class="md-nav__item">
<a href="#worker-processes" title="worker-processes" class="md-nav__link">
worker-processes
</a>
</li>
<li class="md-nav__item">
<a href="#worker-cpu-affinity" title="worker-cpu-affinity" class="md-nav__link">
worker-cpu-affinity
</a>
</li>
<li class="md-nav__item">
<a href="#worker-shutdown-timeout" title="worker-shutdown-timeout" class="md-nav__link">
worker-shutdown-timeout
</a>
</li>
<li class="md-nav__item">
<a href="#load-balance" title="load-balance" class="md-nav__link">
load-balance
</a>
</li>
<li class="md-nav__item">
<a href="#variables-hash-bucket-size" title="variables-hash-bucket-size" class="md-nav__link">
variables-hash-bucket-size
</a>
</li>
<li class="md-nav__item">
<a href="#variables-hash-max-size" title="variables-hash-max-size" class="md-nav__link">
variables-hash-max-size
</a>
</li>
<li class="md-nav__item">
<a href="#upstream-keepalive-connections" title="upstream-keepalive-connections" class="md-nav__link">
upstream-keepalive-connections
</a>
</li>
<li class="md-nav__item">
<a href="#upstream-keepalive-timeout" title="upstream-keepalive-timeout" class="md-nav__link">
upstream-keepalive-timeout
</a>
</li>
<li class="md-nav__item">
<a href="#upstream-keepalive-requests" title="upstream-keepalive-requests" class="md-nav__link">
upstream-keepalive-requests
</a>
</li>
<li class="md-nav__item">
<a href="#limit-conn-zone-variable" title="limit-conn-zone-variable" class="md-nav__link">
limit-conn-zone-variable
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-stream-timeout" title="proxy-stream-timeout" class="md-nav__link">
proxy-stream-timeout
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-stream-responses" title="proxy-stream-responses" class="md-nav__link">
proxy-stream-responses
</a>
</li>
<li class="md-nav__item">
<a href="#bind-address" title="bind-address" class="md-nav__link">
bind-address
</a>
</li>
<li class="md-nav__item">
<a href="#use-forwarded-headers" title="use-forwarded-headers" class="md-nav__link">
use-forwarded-headers
</a>
</li>
<li class="md-nav__item">
<a href="#forwarded-for-header" title="forwarded-for-header" class="md-nav__link">
forwarded-for-header
</a>
</li>
<li class="md-nav__item">
<a href="#compute-full-forwarded-for" title="compute-full-forwarded-for" class="md-nav__link">
compute-full-forwarded-for
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-add-original-uri-header" title="proxy-add-original-uri-header" class="md-nav__link">
proxy-add-original-uri-header
</a>
</li>
<li class="md-nav__item">
<a href="#generate-request-id" title="generate-request-id" class="md-nav__link">
generate-request-id
</a>
</li>
<li class="md-nav__item">
<a href="#enable-opentracing" title="enable-opentracing" class="md-nav__link">
enable-opentracing
</a>
</li>
<li class="md-nav__item">
<a href="#zipkin-collector-host" title="zipkin-collector-host" class="md-nav__link">
zipkin-collector-host
</a>
</li>
<li class="md-nav__item">
<a href="#zipkin-collector-port" title="zipkin-collector-port" class="md-nav__link">
zipkin-collector-port
</a>
</li>
<li class="md-nav__item">
<a href="#zipkin-service-name" title="zipkin-service-name" class="md-nav__link">
zipkin-service-name
</a>
</li>
<li class="md-nav__item">
<a href="#zipkin-sample-rate" title="zipkin-sample-rate" class="md-nav__link">
zipkin-sample-rate
</a>
</li>
<li class="md-nav__item">
<a href="#jaeger-collector-host" title="jaeger-collector-host" class="md-nav__link">
jaeger-collector-host
</a>
</li>
<li class="md-nav__item">
<a href="#jaeger-collector-port" title="jaeger-collector-port" class="md-nav__link">
jaeger-collector-port
</a>
</li>
<li class="md-nav__item">
<a href="#jaeger-service-name" title="jaeger-service-name" class="md-nav__link">
jaeger-service-name
</a>
</li>
<li class="md-nav__item">
<a href="#jaeger-sampler-type" title="jaeger-sampler-type" class="md-nav__link">
jaeger-sampler-type
</a>
</li>
<li class="md-nav__item">
<a href="#jaeger-sampler-param" title="jaeger-sampler-param" class="md-nav__link">
jaeger-sampler-param
</a>
</li>
<li class="md-nav__item">
<a href="#jaeger-sampler-host" title="jaeger-sampler-host" class="md-nav__link">
jaeger-sampler-host
</a>
</li>
<li class="md-nav__item">
<a href="#jaeger-sampler-port" title="jaeger-sampler-port" class="md-nav__link">
jaeger-sampler-port
</a>
</li>
<li class="md-nav__item">
<a href="#main-snippet" title="main-snippet" class="md-nav__link">
main-snippet
</a>
</li>
<li class="md-nav__item">
<a href="#http-snippet" title="http-snippet" class="md-nav__link">
http-snippet
</a>
</li>
<li class="md-nav__item">
<a href="#server-snippet" title="server-snippet" class="md-nav__link">
server-snippet
</a>
</li>
<li class="md-nav__item">
<a href="#location-snippet" title="location-snippet" class="md-nav__link">
location-snippet
</a>
</li>
<li class="md-nav__item">
<a href="#custom-http-errors" title="custom-http-errors" class="md-nav__link">
custom-http-errors
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-body-size" title="proxy-body-size" class="md-nav__link">
proxy-body-size
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-connect-timeout" title="proxy-connect-timeout" class="md-nav__link">
proxy-connect-timeout
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-read-timeout" title="proxy-read-timeout" class="md-nav__link">
proxy-read-timeout
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-send-timeout" title="proxy-send-timeout" class="md-nav__link">
proxy-send-timeout
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-buffers-number" title="proxy-buffers-number" class="md-nav__link">
proxy-buffers-number
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-buffer-size" title="proxy-buffer-size" class="md-nav__link">
proxy-buffer-size
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-cookie-path" title="proxy-cookie-path" class="md-nav__link">
proxy-cookie-path
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-cookie-domain" title="proxy-cookie-domain" class="md-nav__link">
proxy-cookie-domain
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-next-upstream" title="proxy-next-upstream" class="md-nav__link">
proxy-next-upstream
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-next-upstream-timeout" title="proxy-next-upstream-timeout" class="md-nav__link">
proxy-next-upstream-timeout
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-next-upstream-tries" title="proxy-next-upstream-tries" class="md-nav__link">
proxy-next-upstream-tries
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-redirect-from" title="proxy-redirect-from" class="md-nav__link">
proxy-redirect-from
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-request-buffering" title="proxy-request-buffering" class="md-nav__link">
proxy-request-buffering
</a>
</li>
<li class="md-nav__item">
<a href="#ssl-redirect" title="ssl-redirect" class="md-nav__link">
ssl-redirect
</a>
</li>
<li class="md-nav__item">
<a href="#whitelist-source-range" title="whitelist-source-range" class="md-nav__link">
whitelist-source-range
</a>
</li>
<li class="md-nav__item">
<a href="#skip-access-log-urls" title="skip-access-log-urls" class="md-nav__link">
skip-access-log-urls
</a>
</li>
<li class="md-nav__item">
<a href="#limit-rate" title="limit-rate" class="md-nav__link">
limit-rate
</a>
</li>
<li class="md-nav__item">
<a href="#limit-rate-after" title="limit-rate-after" class="md-nav__link">
limit-rate-after
</a>
</li>
<li class="md-nav__item">
<a href="#http-redirect-code" title="http-redirect-code" class="md-nav__link">
http-redirect-code
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-buffering" title="proxy-buffering" class="md-nav__link">
proxy-buffering
</a>
</li>
<li class="md-nav__item">
<a href="#limit-req-status-code" title="limit-req-status-code" class="md-nav__link">
limit-req-status-code
</a>
</li>
<li class="md-nav__item">
<a href="#limit-conn-status-code" title="limit-conn-status-code" class="md-nav__link">
limit-conn-status-code
</a>
</li>
<li class="md-nav__item">
<a href="#no-tls-redirect-locations" title="no-tls-redirect-locations" class="md-nav__link">
no-tls-redirect-locations
</a>
</li>
<li class="md-nav__item">
<a href="#global-auth-url" title="global-auth-url" class="md-nav__link">
global-auth-url
</a>
</li>
<li class="md-nav__item">
<a href="#global-auth-method" title="global-auth-method" class="md-nav__link">
global-auth-method
</a>
</li>
<li class="md-nav__item">
<a href="#global-auth-signin" title="global-auth-signin" class="md-nav__link">
global-auth-signin
</a>
</li>
<li class="md-nav__item">
<a href="#global-auth-response-headers" title="global-auth-response-headers" class="md-nav__link">
global-auth-response-headers
</a>
</li>
<li class="md-nav__item">
<a href="#global-auth-request-redirect" title="global-auth-request-redirect" class="md-nav__link">
global-auth-request-redirect
</a>
</li>
<li class="md-nav__item">
<a href="#global-auth-snippet" title="global-auth-snippet" class="md-nav__link">
global-auth-snippet
</a>
</li>
<li class="md-nav__item">
<a href="#no-auth-locations" title="no-auth-locations" class="md-nav__link">
no-auth-locations
</a>
</li>
<li class="md-nav__item">
<a href="#block-cidrs" title="block-cidrs" class="md-nav__link">
block-cidrs
</a>
</li>
<li class="md-nav__item">
<a href="#block-user-agents" title="block-user-agents" class="md-nav__link">
block-user-agents
</a>
</li>
<li class="md-nav__item">
<a href="#block-referers" title="block-referers" class="md-nav__link">
block-referers
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../custom-template/" title="Custom NGINX template" class="md-nav__link">
Custom NGINX template
</a>
</li>
<li class="md-nav__item">
<a href="../log-format/" title="Log format" class="md-nav__link">
Log format
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../cli-arguments/" title="Command line arguments" class="md-nav__link">
Command line arguments
</a>
</li>
<li class="md-nav__item">
<a href="../../custom-errors/" title="Custom errors" class="md-nav__link">
Custom errors
</a>
</li>
<li class="md-nav__item">
<a href="../../default-backend/" title="Default backend" class="md-nav__link">
Default backend
</a>
</li>
<li class="md-nav__item">
<a href="../../exposing-tcp-udp-services/" title="Exposing TCP and UDP services" class="md-nav__link">
Exposing TCP and UDP services
</a>
</li>
<li class="md-nav__item">
<a href="../../ingress-path-matching/" title="Regular expressions in paths" class="md-nav__link">
Regular expressions in paths
</a>
</li>
<li class="md-nav__item">
<a href="../../external-articles/" title="External Articles" class="md-nav__link">
External Articles
</a>
</li>
<li class="md-nav__item">
<a href="../../miscellaneous/" title="Miscellaneous" class="md-nav__link">
Miscellaneous
</a>
</li>
<li class="md-nav__item">
<a href="../../monitoring/" title="Prometheus and Grafana installation" class="md-nav__link">
Prometheus and Grafana installation
</a>
</li>
<li class="md-nav__item">
<a href="../../multiple-ingress/" title="Multiple Ingress controllers" class="md-nav__link">
Multiple Ingress controllers
</a>
</li>
<li class="md-nav__item">
<a href="../../tls/" title="TLS/HTTPS" class="md-nav__link">
TLS/HTTPS
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-3-12" type="checkbox" id="nav-3-12">
<label class="md-nav__link" for="nav-3-12">
Third party addons
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="2">
<label class="md-nav__title" for="nav-3-12">
Third party addons
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../third-party-addons/modsecurity/" title="ModSecurity Web Application Firewall" class="md-nav__link">
ModSecurity Web Application Firewall
</a>
</li>
<li class="md-nav__item">
<a href="../../third-party-addons/opentracing/" title="OpenTracing" class="md-nav__link">
OpenTracing
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-4" type="checkbox" id="nav-4">
<label class="md-nav__link" for="nav-4">
Examples
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="1">
<label class="md-nav__title" for="nav-4">
Examples
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../examples/" title="Introduction" class="md-nav__link">
Introduction
</a>
</li>
<li class="md-nav__item">
<a href="../../../examples/PREREQUISITES/" title="Prerequisites" class="md-nav__link">
Prerequisites
</a>
</li>
<li class="md-nav__item">
<a href="../../../examples/affinity/cookie/" title="Sticky Sessions" class="md-nav__link">
Sticky Sessions
</a>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-4-4" type="checkbox" id="nav-4-4">
<label class="md-nav__link" for="nav-4-4">
Auth
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="2">
<label class="md-nav__title" for="nav-4-4">
Auth
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../examples/auth/basic/" title="Basic Authentication" class="md-nav__link">
Basic Authentication
</a>
</li>
<li class="md-nav__item">
<a href="../../../examples/auth/client-certs/" title="Client Certificate Authentication" class="md-nav__link">
Client Certificate Authentication
</a>
</li>
<li class="md-nav__item">
<a href="../../../examples/auth/external-auth/" title="External Basic Authentication" class="md-nav__link">
External Basic Authentication
</a>
</li>
<li class="md-nav__item">
<a href="../../../examples/auth/oauth-external-auth/" title="External OAUTH Authentication" class="md-nav__link">
External OAUTH Authentication
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item md-nav__item--nested">
<input class="md-toggle md-nav__toggle" data-md-toggle="nav-4-5" type="checkbox" id="nav-4-5">
<label class="md-nav__link" for="nav-4-5">
Customization
</label>
<nav class="md-nav" data-md-component="collapsible" data-md-level="2">
<label class="md-nav__title" for="nav-4-5">
Customization
</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="../../../examples/customization/configuration-snippets/" title="Configuration Snippets" class="md-nav__link">
Configuration Snippets
</a>
</li>
<li class="md-nav__item">
<a href="../../../examples/customization/custom-configuration/" title="Custom Configuration" class="md-nav__link">
Custom Configuration
</a>
</li>
<li class="md-nav__item">
<a href="../../../examples/customization/custom-errors/" title="Custom Errors" class="md-nav__link">
Custom Errors
</a>
</li>
<li class="md-nav__item">
<a href="../../../examples/customization/custom-headers/" title="Custom Headers" class="md-nav__link">
Custom Headers
</a>
</li>
<li class="md-nav__item">
<a href="../../../examples/customization/external-auth-headers/" title="External authentication" class="md-nav__link">
External authentication
</a>
</li>
<li class="md-nav__item">
<a href="../../../examples/customization/ssl-dh-param/" title="Custom DH parameters for perfect forward secrecy" class="md-nav__link">
Custom DH parameters for perfect forward secrecy
</a>
</li>
<li class="md-nav__item">
<a href="../../../examples/customization/sysctl/" title="Sysctl tuning" class="md-nav__link">
Sysctl tuning
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="../../../examples/docker-registry/" title="Docker registry" class="md-nav__link">
Docker registry
</a>
</li>
<li class="md-nav__item">
<a href="../../../examples/grpc/" title="gRPC" class="md-nav__link">
gRPC
</a>
</li>
<li class="md-nav__item">
<a href="../../../examples/multi-tls/" title="Multi TLS certificate termination" class="md-nav__link">
Multi TLS certificate termination
</a>
</li>
<li class="md-nav__item">
<a href="../../../examples/rewrite/" title="Rewrite" class="md-nav__link">
Rewrite
</a>
</li>
<li class="md-nav__item">
<a href="../../../examples/static-ip/" title="Static IPs" class="md-nav__link">
Static IPs
</a>
</li>
<li class="md-nav__item">
<a href="../../../examples/tls-termination/" title="TLS termination" class="md-nav__link">
TLS termination
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary">
<label class="md-nav__title" for="__toc">Table of contents</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="#configuration-options" title="Configuration options" class="md-nav__link">
Configuration options
</a>
</li>
<li class="md-nav__item">
<a href="#add-headers" title="add-headers" class="md-nav__link">
add-headers
</a>
</li>
<li class="md-nav__item">
<a href="#allow-backend-server-header" title="allow-backend-server-header" class="md-nav__link">
allow-backend-server-header
</a>
</li>
<li class="md-nav__item">
<a href="#hide-headers" title="hide-headers" class="md-nav__link">
hide-headers
</a>
</li>
<li class="md-nav__item">
<a href="#access-log-params" title="access-log-params" class="md-nav__link">
access-log-params
</a>
</li>
<li class="md-nav__item">
<a href="#access-log-path" title="access-log-path" class="md-nav__link">
access-log-path
</a>
</li>
<li class="md-nav__item">
<a href="#enable-access-log-for-default-backend" title="enable-access-log-for-default-backend" class="md-nav__link">
enable-access-log-for-default-backend
</a>
</li>
<li class="md-nav__item">
<a href="#error-log-path" title="error-log-path" class="md-nav__link">
error-log-path
</a>
</li>
<li class="md-nav__item">
<a href="#enable-dynamic-tls-records" title="enable-dynamic-tls-records" class="md-nav__link">
enable-dynamic-tls-records
</a>
</li>
<li class="md-nav__item">
<a href="#enable-modsecurity" title="enable-modsecurity" class="md-nav__link">
enable-modsecurity
</a>
</li>
<li class="md-nav__item">
<a href="#enable-owasp-modsecurity-crs" title="enable-owasp-modsecurity-crs" class="md-nav__link">
enable-owasp-modsecurity-crs
</a>
</li>
<li class="md-nav__item">
<a href="#client-header-buffer-size" title="client-header-buffer-size" class="md-nav__link">
client-header-buffer-size
</a>
</li>
<li class="md-nav__item">
<a href="#client-header-timeout" title="client-header-timeout" class="md-nav__link">
client-header-timeout
</a>
</li>
<li class="md-nav__item">
<a href="#client-body-buffer-size" title="client-body-buffer-size" class="md-nav__link">
client-body-buffer-size
</a>
</li>
<li class="md-nav__item">
<a href="#client-body-timeout" title="client-body-timeout" class="md-nav__link">
client-body-timeout
</a>
</li>
<li class="md-nav__item">
<a href="#disable-access-log" title="disable-access-log" class="md-nav__link">
disable-access-log
</a>
</li>
<li class="md-nav__item">
<a href="#disable-ipv6" title="disable-ipv6" class="md-nav__link">
disable-ipv6
</a>
</li>
<li class="md-nav__item">
<a href="#disable-ipv6-dns" title="disable-ipv6-dns" class="md-nav__link">
disable-ipv6-dns
</a>
</li>
<li class="md-nav__item">
<a href="#enable-underscores-in-headers" title="enable-underscores-in-headers" class="md-nav__link">
enable-underscores-in-headers
</a>
</li>
<li class="md-nav__item">
<a href="#ignore-invalid-headers" title="ignore-invalid-headers" class="md-nav__link">
ignore-invalid-headers
</a>
</li>
<li class="md-nav__item">
<a href="#retry-non-idempotent" title="retry-non-idempotent" class="md-nav__link">
retry-non-idempotent
</a>
</li>
<li class="md-nav__item">
<a href="#error-log-level" title="error-log-level" class="md-nav__link">
error-log-level
</a>
</li>
<li class="md-nav__item">
<a href="#http2-max-field-size" title="http2-max-field-size" class="md-nav__link">
http2-max-field-size
</a>
</li>
<li class="md-nav__item">
<a href="#http2-max-header-size" title="http2-max-header-size" class="md-nav__link">
http2-max-header-size
</a>
</li>
<li class="md-nav__item">
<a href="#http2-max-requests" title="http2-max-requests" class="md-nav__link">
http2-max-requests
</a>
</li>
<li class="md-nav__item">
<a href="#hsts" title="hsts" class="md-nav__link">
hsts
</a>
</li>
<li class="md-nav__item">
<a href="#hsts-include-subdomains" title="hsts-include-subdomains" class="md-nav__link">
hsts-include-subdomains
</a>
</li>
<li class="md-nav__item">
<a href="#hsts-max-age" title="hsts-max-age" class="md-nav__link">
hsts-max-age
</a>
</li>
<li class="md-nav__item">
<a href="#hsts-preload" title="hsts-preload" class="md-nav__link">
hsts-preload
</a>
</li>
<li class="md-nav__item">
<a href="#keep-alive" title="keep-alive" class="md-nav__link">
keep-alive
</a>
</li>
<li class="md-nav__item">
<a href="#keep-alive-requests" title="keep-alive-requests" class="md-nav__link">
keep-alive-requests
</a>
</li>
<li class="md-nav__item">
<a href="#large-client-header-buffers" title="large-client-header-buffers" class="md-nav__link">
large-client-header-buffers
</a>
</li>
<li class="md-nav__item">
<a href="#log-format-escape-json" title="log-format-escape-json" class="md-nav__link">
log-format-escape-json
</a>
</li>
<li class="md-nav__item">
<a href="#log-format-upstream" title="log-format-upstream" class="md-nav__link">
log-format-upstream
</a>
</li>
<li class="md-nav__item">
<a href="#log-format-stream" title="log-format-stream" class="md-nav__link">
log-format-stream
</a>
</li>
<li class="md-nav__item">
<a href="#enable-multi-accept" title="enable-multi-accept" class="md-nav__link">
enable-multi-accept
</a>
</li>
<li class="md-nav__item">
<a href="#max-worker-connections" title="max-worker-connections" class="md-nav__link">
max-worker-connections
</a>
</li>
<li class="md-nav__item">
<a href="#max-worker-open-files" title="max-worker-open-files" class="md-nav__link">
max-worker-open-files
</a>
</li>
<li class="md-nav__item">
<a href="#map-hash-bucket-size" title="map-hash-bucket-size" class="md-nav__link">
map-hash-bucket-size
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-real-ip-cidr" title="proxy-real-ip-cidr" class="md-nav__link">
proxy-real-ip-cidr
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-set-headers" title="proxy-set-headers" class="md-nav__link">
proxy-set-headers
</a>
</li>
<li class="md-nav__item">
<a href="#server-name-hash-max-size" title="server-name-hash-max-size" class="md-nav__link">
server-name-hash-max-size
</a>
</li>
<li class="md-nav__item">
<a href="#server-name-hash-bucket-size" title="server-name-hash-bucket-size" class="md-nav__link">
server-name-hash-bucket-size
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-headers-hash-max-size" title="proxy-headers-hash-max-size" class="md-nav__link">
proxy-headers-hash-max-size
</a>
</li>
<li class="md-nav__item">
<a href="#reuse-port" title="reuse-port" class="md-nav__link">
reuse-port
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-headers-hash-bucket-size" title="proxy-headers-hash-bucket-size" class="md-nav__link">
proxy-headers-hash-bucket-size
</a>
</li>
<li class="md-nav__item">
<a href="#server-tokens" title="server-tokens" class="md-nav__link">
server-tokens
</a>
</li>
<li class="md-nav__item">
<a href="#ssl-ciphers" title="ssl-ciphers" class="md-nav__link">
ssl-ciphers
</a>
</li>
<li class="md-nav__item">
<a href="#ssl-ecdh-curve" title="ssl-ecdh-curve" class="md-nav__link">
ssl-ecdh-curve
</a>
</li>
<li class="md-nav__item">
<a href="#ssl-dh-param" title="ssl-dh-param" class="md-nav__link">
ssl-dh-param
</a>
</li>
<li class="md-nav__item">
<a href="#ssl-protocols" title="ssl-protocols" class="md-nav__link">
ssl-protocols
</a>
</li>
<li class="md-nav__item">
<a href="#ssl-session-cache" title="ssl-session-cache" class="md-nav__link">
ssl-session-cache
</a>
</li>
<li class="md-nav__item">
<a href="#ssl-session-cache-size" title="ssl-session-cache-size" class="md-nav__link">
ssl-session-cache-size
</a>
</li>
<li class="md-nav__item">
<a href="#ssl-session-tickets" title="ssl-session-tickets" class="md-nav__link">
ssl-session-tickets
</a>
</li>
<li class="md-nav__item">
<a href="#ssl-session-ticket-key" title="ssl-session-ticket-key" class="md-nav__link">
ssl-session-ticket-key
</a>
</li>
<li class="md-nav__item">
<a href="#ssl-session-timeout" title="ssl-session-timeout" class="md-nav__link">
ssl-session-timeout
</a>
</li>
<li class="md-nav__item">
<a href="#ssl-buffer-size" title="ssl-buffer-size" class="md-nav__link">
ssl-buffer-size
</a>
</li>
<li class="md-nav__item">
<a href="#use-proxy-protocol" title="use-proxy-protocol" class="md-nav__link">
use-proxy-protocol
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-protocol-header-timeout" title="proxy-protocol-header-timeout" class="md-nav__link">
proxy-protocol-header-timeout
</a>
</li>
<li class="md-nav__item">
<a href="#use-gzip" title="use-gzip" class="md-nav__link">
use-gzip
</a>
</li>
<li class="md-nav__item">
<a href="#use-geoip" title="use-geoip" class="md-nav__link">
use-geoip
</a>
</li>
<li class="md-nav__item">
<a href="#use-geoip2" title="use-geoip2" class="md-nav__link">
use-geoip2
</a>
</li>
<li class="md-nav__item">
<a href="#enable-brotli" title="enable-brotli" class="md-nav__link">
enable-brotli
</a>
</li>
<li class="md-nav__item">
<a href="#brotli-level" title="brotli-level" class="md-nav__link">
brotli-level
</a>
</li>
<li class="md-nav__item">
<a href="#brotli-types" title="brotli-types" class="md-nav__link">
brotli-types
</a>
</li>
<li class="md-nav__item">
<a href="#use-http2" title="use-http2" class="md-nav__link">
use-http2
</a>
</li>
<li class="md-nav__item">
<a href="#gzip-level" title="gzip-level" class="md-nav__link">
gzip-level
</a>
</li>
<li class="md-nav__item">
<a href="#gzip-types" title="gzip-types" class="md-nav__link">
gzip-types
</a>
</li>
<li class="md-nav__item">
<a href="#worker-processes" title="worker-processes" class="md-nav__link">
worker-processes
</a>
</li>
<li class="md-nav__item">
<a href="#worker-cpu-affinity" title="worker-cpu-affinity" class="md-nav__link">
worker-cpu-affinity
</a>
</li>
<li class="md-nav__item">
<a href="#worker-shutdown-timeout" title="worker-shutdown-timeout" class="md-nav__link">
worker-shutdown-timeout
</a>
</li>
<li class="md-nav__item">
<a href="#load-balance" title="load-balance" class="md-nav__link">
load-balance
</a>
</li>
<li class="md-nav__item">
<a href="#variables-hash-bucket-size" title="variables-hash-bucket-size" class="md-nav__link">
variables-hash-bucket-size
</a>
</li>
<li class="md-nav__item">
<a href="#variables-hash-max-size" title="variables-hash-max-size" class="md-nav__link">
variables-hash-max-size
</a>
</li>
<li class="md-nav__item">
<a href="#upstream-keepalive-connections" title="upstream-keepalive-connections" class="md-nav__link">
upstream-keepalive-connections
</a>
</li>
<li class="md-nav__item">
<a href="#upstream-keepalive-timeout" title="upstream-keepalive-timeout" class="md-nav__link">
upstream-keepalive-timeout
</a>
</li>
<li class="md-nav__item">
<a href="#upstream-keepalive-requests" title="upstream-keepalive-requests" class="md-nav__link">
upstream-keepalive-requests
</a>
</li>
<li class="md-nav__item">
<a href="#limit-conn-zone-variable" title="limit-conn-zone-variable" class="md-nav__link">
limit-conn-zone-variable
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-stream-timeout" title="proxy-stream-timeout" class="md-nav__link">
proxy-stream-timeout
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-stream-responses" title="proxy-stream-responses" class="md-nav__link">
proxy-stream-responses
</a>
</li>
<li class="md-nav__item">
<a href="#bind-address" title="bind-address" class="md-nav__link">
bind-address
</a>
</li>
<li class="md-nav__item">
<a href="#use-forwarded-headers" title="use-forwarded-headers" class="md-nav__link">
use-forwarded-headers
</a>
</li>
<li class="md-nav__item">
<a href="#forwarded-for-header" title="forwarded-for-header" class="md-nav__link">
forwarded-for-header
</a>
</li>
<li class="md-nav__item">
<a href="#compute-full-forwarded-for" title="compute-full-forwarded-for" class="md-nav__link">
compute-full-forwarded-for
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-add-original-uri-header" title="proxy-add-original-uri-header" class="md-nav__link">
proxy-add-original-uri-header
</a>
</li>
<li class="md-nav__item">
<a href="#generate-request-id" title="generate-request-id" class="md-nav__link">
generate-request-id
</a>
</li>
<li class="md-nav__item">
<a href="#enable-opentracing" title="enable-opentracing" class="md-nav__link">
enable-opentracing
</a>
</li>
<li class="md-nav__item">
<a href="#zipkin-collector-host" title="zipkin-collector-host" class="md-nav__link">
zipkin-collector-host
</a>
</li>
<li class="md-nav__item">
<a href="#zipkin-collector-port" title="zipkin-collector-port" class="md-nav__link">
zipkin-collector-port
</a>
</li>
<li class="md-nav__item">
<a href="#zipkin-service-name" title="zipkin-service-name" class="md-nav__link">
zipkin-service-name
</a>
</li>
<li class="md-nav__item">
<a href="#zipkin-sample-rate" title="zipkin-sample-rate" class="md-nav__link">
zipkin-sample-rate
</a>
</li>
<li class="md-nav__item">
<a href="#jaeger-collector-host" title="jaeger-collector-host" class="md-nav__link">
jaeger-collector-host
</a>
</li>
<li class="md-nav__item">
<a href="#jaeger-collector-port" title="jaeger-collector-port" class="md-nav__link">
jaeger-collector-port
</a>
</li>
<li class="md-nav__item">
<a href="#jaeger-service-name" title="jaeger-service-name" class="md-nav__link">
jaeger-service-name
</a>
</li>
<li class="md-nav__item">
<a href="#jaeger-sampler-type" title="jaeger-sampler-type" class="md-nav__link">
jaeger-sampler-type
</a>
</li>
<li class="md-nav__item">
<a href="#jaeger-sampler-param" title="jaeger-sampler-param" class="md-nav__link">
jaeger-sampler-param
</a>
</li>
<li class="md-nav__item">
<a href="#jaeger-sampler-host" title="jaeger-sampler-host" class="md-nav__link">
jaeger-sampler-host
</a>
</li>
<li class="md-nav__item">
<a href="#jaeger-sampler-port" title="jaeger-sampler-port" class="md-nav__link">
jaeger-sampler-port
</a>
</li>
<li class="md-nav__item">
<a href="#main-snippet" title="main-snippet" class="md-nav__link">
main-snippet
</a>
</li>
<li class="md-nav__item">
<a href="#http-snippet" title="http-snippet" class="md-nav__link">
http-snippet
</a>
</li>
<li class="md-nav__item">
<a href="#server-snippet" title="server-snippet" class="md-nav__link">
server-snippet
</a>
</li>
<li class="md-nav__item">
<a href="#location-snippet" title="location-snippet" class="md-nav__link">
location-snippet
</a>
</li>
<li class="md-nav__item">
<a href="#custom-http-errors" title="custom-http-errors" class="md-nav__link">
custom-http-errors
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-body-size" title="proxy-body-size" class="md-nav__link">
proxy-body-size
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-connect-timeout" title="proxy-connect-timeout" class="md-nav__link">
proxy-connect-timeout
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-read-timeout" title="proxy-read-timeout" class="md-nav__link">
proxy-read-timeout
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-send-timeout" title="proxy-send-timeout" class="md-nav__link">
proxy-send-timeout
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-buffers-number" title="proxy-buffers-number" class="md-nav__link">
proxy-buffers-number
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-buffer-size" title="proxy-buffer-size" class="md-nav__link">
proxy-buffer-size
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-cookie-path" title="proxy-cookie-path" class="md-nav__link">
proxy-cookie-path
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-cookie-domain" title="proxy-cookie-domain" class="md-nav__link">
proxy-cookie-domain
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-next-upstream" title="proxy-next-upstream" class="md-nav__link">
proxy-next-upstream
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-next-upstream-timeout" title="proxy-next-upstream-timeout" class="md-nav__link">
proxy-next-upstream-timeout
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-next-upstream-tries" title="proxy-next-upstream-tries" class="md-nav__link">
proxy-next-upstream-tries
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-redirect-from" title="proxy-redirect-from" class="md-nav__link">
proxy-redirect-from
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-request-buffering" title="proxy-request-buffering" class="md-nav__link">
proxy-request-buffering
</a>
</li>
<li class="md-nav__item">
<a href="#ssl-redirect" title="ssl-redirect" class="md-nav__link">
ssl-redirect
</a>
</li>
<li class="md-nav__item">
<a href="#whitelist-source-range" title="whitelist-source-range" class="md-nav__link">
whitelist-source-range
</a>
</li>
<li class="md-nav__item">
<a href="#skip-access-log-urls" title="skip-access-log-urls" class="md-nav__link">
skip-access-log-urls
</a>
</li>
<li class="md-nav__item">
<a href="#limit-rate" title="limit-rate" class="md-nav__link">
limit-rate
</a>
</li>
<li class="md-nav__item">
<a href="#limit-rate-after" title="limit-rate-after" class="md-nav__link">
limit-rate-after
</a>
</li>
<li class="md-nav__item">
<a href="#http-redirect-code" title="http-redirect-code" class="md-nav__link">
http-redirect-code
</a>
</li>
<li class="md-nav__item">
<a href="#proxy-buffering" title="proxy-buffering" class="md-nav__link">
proxy-buffering
</a>
</li>
<li class="md-nav__item">
<a href="#limit-req-status-code" title="limit-req-status-code" class="md-nav__link">
limit-req-status-code
</a>
</li>
<li class="md-nav__item">
<a href="#limit-conn-status-code" title="limit-conn-status-code" class="md-nav__link">
limit-conn-status-code
</a>
</li>
<li class="md-nav__item">
<a href="#no-tls-redirect-locations" title="no-tls-redirect-locations" class="md-nav__link">
no-tls-redirect-locations
</a>
</li>
<li class="md-nav__item">
<a href="#global-auth-url" title="global-auth-url" class="md-nav__link">
global-auth-url
</a>
</li>
<li class="md-nav__item">
<a href="#global-auth-method" title="global-auth-method" class="md-nav__link">
global-auth-method
</a>
</li>
<li class="md-nav__item">
<a href="#global-auth-signin" title="global-auth-signin" class="md-nav__link">
global-auth-signin
</a>
</li>
<li class="md-nav__item">
<a href="#global-auth-response-headers" title="global-auth-response-headers" class="md-nav__link">
global-auth-response-headers
</a>
</li>
<li class="md-nav__item">
<a href="#global-auth-request-redirect" title="global-auth-request-redirect" class="md-nav__link">
global-auth-request-redirect
</a>
</li>
<li class="md-nav__item">
<a href="#global-auth-snippet" title="global-auth-snippet" class="md-nav__link">
global-auth-snippet
</a>
</li>
<li class="md-nav__item">
<a href="#no-auth-locations" title="no-auth-locations" class="md-nav__link">
no-auth-locations
</a>
</li>
<li class="md-nav__item">
<a href="#block-cidrs" title="block-cidrs" class="md-nav__link">
block-cidrs
</a>
</li>
<li class="md-nav__item">
<a href="#block-user-agents" title="block-user-agents" class="md-nav__link">
block-user-agents
</a>
</li>
<li class="md-nav__item">
<a href="#block-referers" title="block-referers" class="md-nav__link">
block-referers
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content">
<article class="md-content__inner md-typeset">
<a href="https://github.com/kubernetes/ingress-nginx/edit/master/docs/user-guide/nginx-configuration/configmap.md" title="Edit this page" class="md-icon md-content__icon">&#xE3C9;</a>
<h1 id="configmaps">ConfigMaps<a class="headerlink" href="#configmaps" title="Permanent link">&para;</a></h1>
<p>ConfigMaps allow you to decouple configuration artifacts from image content to keep containerized applications portable.</p>
<p>The ConfigMap API resource stores configuration data as key-value pairs. The data provides the configurations for system
components for the nginx-controller.</p>
<p>In order to overwrite nginx-controller configuration values as seen in <a href="https://github.com/kubernetes/ingress-nginx/blob/master/internal/ingress/controller/config/config.go">config.go</a>,
you can add key-value pairs to the data section of the config-map. For Example:</p>
<div class="codehilite"><pre><span></span><span class="nt">data</span><span class="p">:</span>
<span class="nt">map-hash-bucket-size</span><span class="p">:</span> <span class="s">&quot;128&quot;</span>
<span class="nt">ssl-protocols</span><span class="p">:</span> <span class="l l-Scalar l-Scalar-Plain">SSLv2</span>
</pre></div>
<div class="admonition important">
<p class="admonition-title">Important</p>
<p>The key and values in a ConfigMap can only be strings.
This means that we want a value with boolean values we need to quote the values, like "true" or "false".
Same for numbers, like "100".</p>
<p>"Slice" types (defined below as <code class="codehilite">[]string</code> or <code class="codehilite">[]int</code> can be provided as a comma-delimited string.</p>
</div>
<h2 id="configuration-options">Configuration options<a class="headerlink" href="#configuration-options" title="Permanent link">&para;</a></h2>
<p>The following table shows a configuration option's name, type, and the default value:</p>
<table>
<thead>
<tr>
<th align="left">name</th>
<th align="left">type</th>
<th align="left">default</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left"><a href="#add-headers">add-headers</a></td>
<td align="left">string</td>
<td align="left">""</td>
</tr>
<tr>
<td align="left"><a href="#allow-backend-server-header">allow-backend-server-header</a></td>
<td align="left">bool</td>
<td align="left">"false"</td>
</tr>
<tr>
<td align="left"><a href="#hide-headers">hide-headers</a></td>
<td align="left">string array</td>
<td align="left">empty</td>
</tr>
<tr>
<td align="left"><a href="#access-log-params">access-log-params</a></td>
<td align="left">string</td>
<td align="left">""</td>
</tr>
<tr>
<td align="left"><a href="#access-log-path">access-log-path</a></td>
<td align="left">string</td>
<td align="left">"/var/log/nginx/access.log"</td>
</tr>
<tr>
<td align="left"><a href="#enable-access-log-for-default-backend">enable-access-log-for-default-backend</a></td>
<td align="left">bool</td>
<td align="left">"false"</td>
</tr>
<tr>
<td align="left"><a href="#error-log-path">error-log-path</a></td>
<td align="left">string</td>
<td align="left">"/var/log/nginx/error.log"</td>
</tr>
<tr>
<td align="left"><a href="#enable-dynamic-tls-records">enable-dynamic-tls-records</a></td>
<td align="left">bool</td>
<td align="left">"true"</td>
</tr>
<tr>
<td align="left"><a href="#enable-modsecurity">enable-modsecurity</a></td>
<td align="left">bool</td>
<td align="left">"false"</td>
</tr>
<tr>
<td align="left"><a href="#enable-owasp-modsecurity-crs">enable-owasp-modsecurity-crs</a></td>
<td align="left">bool</td>
<td align="left">"false"</td>
</tr>
<tr>
<td align="left"><a href="#client-header-buffer-size">client-header-buffer-size</a></td>
<td align="left">string</td>
<td align="left">"1k"</td>
</tr>
<tr>
<td align="left"><a href="#client-header-timeout">client-header-timeout</a></td>
<td align="left">int</td>
<td align="left">60</td>
</tr>
<tr>
<td align="left"><a href="#client-body-buffer-size">client-body-buffer-size</a></td>
<td align="left">string</td>
<td align="left">"8k"</td>
</tr>
<tr>
<td align="left"><a href="#client-body-timeout">client-body-timeout</a></td>
<td align="left">int</td>
<td align="left">60</td>
</tr>
<tr>
<td align="left"><a href="#disable-access-log">disable-access-log</a></td>
<td align="left">bool</td>
<td align="left">false</td>
</tr>
<tr>
<td align="left"><a href="#disable-ipv6">disable-ipv6</a></td>
<td align="left">bool</td>
<td align="left">false</td>
</tr>
<tr>
<td align="left"><a href="#disable-ipv6-dns">disable-ipv6-dns</a></td>
<td align="left">bool</td>
<td align="left">false</td>
</tr>
<tr>
<td align="left"><a href="#enable-underscores-in-headers">enable-underscores-in-headers</a></td>
<td align="left">bool</td>
<td align="left">false</td>
</tr>
<tr>
<td align="left"><a href="#ignore-invalid-headers">ignore-invalid-headers</a></td>
<td align="left">bool</td>
<td align="left">true</td>
</tr>
<tr>
<td align="left"><a href="#retry-non-idempotent">retry-non-idempotent</a></td>
<td align="left">bool</td>
<td align="left">"false"</td>
</tr>
<tr>
<td align="left"><a href="#error-log-level">error-log-level</a></td>
<td align="left">string</td>
<td align="left">"notice"</td>
</tr>
<tr>
<td align="left"><a href="#http2-max-field-size">http2-max-field-size</a></td>
<td align="left">string</td>
<td align="left">"4k"</td>
</tr>
<tr>
<td align="left"><a href="#http2-max-header-size">http2-max-header-size</a></td>
<td align="left">string</td>
<td align="left">"16k"</td>
</tr>
<tr>
<td align="left"><a href="#http2-max-requests">http2-max-requests</a></td>
<td align="left">int</td>
<td align="left">1000</td>
</tr>
<tr>
<td align="left"><a href="#hsts">hsts</a></td>
<td align="left">bool</td>
<td align="left">"true"</td>
</tr>
<tr>
<td align="left"><a href="#hsts-include-subdomains">hsts-include-subdomains</a></td>
<td align="left">bool</td>
<td align="left">"true"</td>
</tr>
<tr>
<td align="left"><a href="#hsts-max-age">hsts-max-age</a></td>
<td align="left">string</td>
<td align="left">"15724800"</td>
</tr>
<tr>
<td align="left"><a href="#hsts-preload">hsts-preload</a></td>
<td align="left">bool</td>
<td align="left">"false"</td>
</tr>
<tr>
<td align="left"><a href="#keep-alive">keep-alive</a></td>
<td align="left">int</td>
<td align="left">75</td>
</tr>
<tr>
<td align="left"><a href="#keep-alive-requests">keep-alive-requests</a></td>
<td align="left">int</td>
<td align="left">100</td>
</tr>
<tr>
<td align="left"><a href="#large-client-header-buffers">large-client-header-buffers</a></td>
<td align="left">string</td>
<td align="left">"4 8k"</td>
</tr>
<tr>
<td align="left"><a href="#log-format-escape-json">log-format-escape-json</a></td>
<td align="left">bool</td>
<td align="left">"false"</td>
</tr>
<tr>
<td align="left"><a href="#log-format-upstream">log-format-upstream</a></td>
<td align="left">string</td>
<td align="left"><code class="codehilite"><span class="nf">%v</span> <span class="o">-</span> <span class="p">[</span><span class="n">$the_real_ip</span><span class="p">]</span> <span class="o">-</span> <span class="n">$remote_user</span> <span class="p">[</span><span class="n">$time_local</span><span class="p">]</span> <span class="s">&quot;$request&quot;</span> <span class="n">$status</span> <span class="n">$body_bytes_sent</span> <span class="s">&quot;$http_referer&quot;</span> <span class="s">&quot;$http_user_agent&quot;</span> <span class="n">$request_length</span> <span class="n">$request_time</span> <span class="p">[</span><span class="n">$proxy_upstream_name</span><span class="p">]</span> <span class="n">$upstream_addr</span> <span class="n">$upstream_response_length</span> <span class="n">$upstream_response_time</span> <span class="n">$upstream_status</span> <span class="n">$req_id</span></code></td>
</tr>
<tr>
<td align="left"><a href="#log-format-stream">log-format-stream</a></td>
<td align="left">string</td>
<td align="left"><code class="codehilite">[$time_local] $protocol $status $bytes_sent $bytes_received $session_time</code></td>
</tr>
<tr>
<td align="left"><a href="#enable-multi-accept">enable-multi-accept</a></td>
<td align="left">bool</td>
<td align="left">"true"</td>
</tr>
<tr>
<td align="left"><a href="#max-worker-connections">max-worker-connections</a></td>
<td align="left">int</td>
<td align="left">16384</td>
</tr>
<tr>
<td align="left"><a href="#max-worker-open-files">max-worker-open-files</a></td>
<td align="left">int</td>
<td align="left">0</td>
</tr>
<tr>
<td align="left"><a href="#max-hash-bucket-size">map-hash-bucket-size</a></td>
<td align="left">int</td>
<td align="left">64</td>
</tr>
<tr>
<td align="left"><a href="#nginx-status-ipv4-whitelist">nginx-status-ipv4-whitelist</a></td>
<td align="left">[]string</td>
<td align="left">"127.0.0.1"</td>
</tr>
<tr>
<td align="left"><a href="#nginx-status-ipv6-whitelist">nginx-status-ipv6-whitelist</a></td>
<td align="left">[]string</td>
<td align="left">"::1"</td>
</tr>
<tr>
<td align="left"><a href="#proxy-real-ip-cidr">proxy-real-ip-cidr</a></td>
<td align="left">[]string</td>
<td align="left">"0.0.0.0/0"</td>
</tr>
<tr>
<td align="left"><a href="#proxy-set-headers">proxy-set-headers</a></td>
<td align="left">string</td>
<td align="left">""</td>
</tr>
<tr>
<td align="left"><a href="#server-name-hash-max-size">server-name-hash-max-size</a></td>
<td align="left">int</td>
<td align="left">1024</td>
</tr>
<tr>
<td align="left"><a href="#server-name-hash-bucket-size">server-name-hash-bucket-size</a></td>
<td align="left">int</td>
<td align="left"><code class="codehilite">&lt;size of the processors cache line&gt;</code></td>
</tr>
<tr>
<td align="left"><a href="#proxy-headers-hash-max-size">proxy-headers-hash-max-size</a></td>
<td align="left">int</td>
<td align="left">512</td>
</tr>
<tr>
<td align="left"><a href="#proxy-headers-hash-bucket-size">proxy-headers-hash-bucket-size</a></td>
<td align="left">int</td>
<td align="left">64</td>
</tr>
<tr>
<td align="left"><a href="#reuse-port">reuse-port</a></td>
<td align="left">bool</td>
<td align="left">"true"</td>
</tr>
<tr>
<td align="left"><a href="#server-tokens">server-tokens</a></td>
<td align="left">bool</td>
<td align="left">"true"</td>
</tr>
<tr>
<td align="left"><a href="#ssl-ciphers">ssl-ciphers</a></td>
<td align="left">string</td>
<td align="left">"ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256"</td>
</tr>
<tr>
<td align="left"><a href="#ssl-ecdh-curve">ssl-ecdh-curve</a></td>
<td align="left">string</td>
<td align="left">"auto"</td>
</tr>
<tr>
<td align="left"><a href="#ssl-dh-param">ssl-dh-param</a></td>
<td align="left">string</td>
<td align="left">""</td>
</tr>
<tr>
<td align="left"><a href="#ssl-protocols">ssl-protocols</a></td>
<td align="left">string</td>
<td align="left">"TLSv1.2"</td>
</tr>
<tr>
<td align="left"><a href="#ssl-session-cache">ssl-session-cache</a></td>
<td align="left">bool</td>
<td align="left">"true"</td>
</tr>
<tr>
<td align="left"><a href="#ssl-session-cache-size">ssl-session-cache-size</a></td>
<td align="left">string</td>
<td align="left">"10m"</td>
</tr>
<tr>
<td align="left"><a href="#ssl-session-tickets">ssl-session-tickets</a></td>
<td align="left">bool</td>
<td align="left">"true"</td>
</tr>
<tr>
<td align="left"><a href="#ssl-session-ticket-key">ssl-session-ticket-key</a></td>
<td align="left">string</td>
<td align="left"><code class="codehilite">&lt;Randomly Generated&gt;</code></td>
</tr>
<tr>
<td align="left"><a href="#ssl-session-timeout">ssl-session-timeout</a></td>
<td align="left">string</td>
<td align="left">"10m"</td>
</tr>
<tr>
<td align="left"><a href="#ssl-buffer-size">ssl-buffer-size</a></td>
<td align="left">string</td>
<td align="left">"4k"</td>
</tr>
<tr>
<td align="left"><a href="#use-proxy-protocol">use-proxy-protocol</a></td>
<td align="left">bool</td>
<td align="left">"false"</td>
</tr>
<tr>
<td align="left"><a href="#proxy-protocol-header-timeout">proxy-protocol-header-timeout</a></td>
<td align="left">string</td>
<td align="left">"5s"</td>
</tr>
<tr>
<td align="left"><a href="#use-gzip">use-gzip</a></td>
<td align="left">bool</td>
<td align="left">"true"</td>
</tr>
<tr>
<td align="left"><a href="#use-geoip">use-geoip</a></td>
<td align="left">bool</td>
<td align="left">"true"</td>
</tr>
<tr>
<td align="left"><a href="#use-geoip2">use-geoip2</a></td>
<td align="left">bool</td>
<td align="left">"false"</td>
</tr>
<tr>
<td align="left"><a href="#enable-brotli">enable-brotli</a></td>
<td align="left">bool</td>
<td align="left">"false"</td>
</tr>
<tr>
<td align="left"><a href="#brotli-level">brotli-level</a></td>
<td align="left">int</td>
<td align="left">4</td>
</tr>
<tr>
<td align="left"><a href="#brotli-types">brotli-types</a></td>
<td align="left">string</td>
<td align="left">"application/xml+rss application/atom+xml application/javascript application/x-javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/plain text/x-component"</td>
</tr>
<tr>
<td align="left"><a href="#use-http2">use-http2</a></td>
<td align="left">bool</td>
<td align="left">"true"</td>
</tr>
<tr>
<td align="left"><a href="#gzip-level">gzip-level</a></td>
<td align="left">int</td>
<td align="left">5</td>
</tr>
<tr>
<td align="left"><a href="#gzip-types">gzip-types</a></td>
<td align="left">string</td>
<td align="left">"application/atom+xml application/javascript application/x-javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/plain text/x-component"</td>
</tr>
<tr>
<td align="left"><a href="#worker-processes">worker-processes</a></td>
<td align="left">string</td>
<td align="left"><code class="codehilite">&lt;Number of CPUs&gt;</code></td>
</tr>
<tr>
<td align="left"><a href="#worker-cpu-affinity">worker-cpu-affinity</a></td>
<td align="left">string</td>
<td align="left">""</td>
</tr>
<tr>
<td align="left"><a href="#worker-shutdown-timeout">worker-shutdown-timeout</a></td>
<td align="left">string</td>
<td align="left">"10s"</td>
</tr>
<tr>
<td align="left"><a href="#load-balance">load-balance</a></td>
<td align="left">string</td>
<td align="left">"round_robin"</td>
</tr>
<tr>
<td align="left"><a href="#variables-hash-bucket-size">variables-hash-bucket-size</a></td>
<td align="left">int</td>
<td align="left">128</td>
</tr>
<tr>
<td align="left"><a href="#variables-hash-max-size">variables-hash-max-size</a></td>
<td align="left">int</td>
<td align="left">2048</td>
</tr>
<tr>
<td align="left"><a href="#upstream-keepalive-connections">upstream-keepalive-connections</a></td>
<td align="left">int</td>
<td align="left">32</td>
</tr>
<tr>
<td align="left"><a href="#upstream-keepalive-timeout">upstream-keepalive-timeout</a></td>
<td align="left">int</td>
<td align="left">60</td>
</tr>
<tr>
<td align="left"><a href="#upstream-keepalive-requests">upstream-keepalive-requests</a></td>
<td align="left">int</td>
<td align="left">100</td>
</tr>
<tr>
<td align="left"><a href="#limit-conn-zone-variable">limit-conn-zone-variable</a></td>
<td align="left">string</td>
<td align="left">"$binary_remote_addr"</td>
</tr>
<tr>
<td align="left"><a href="#proxy-stream-timeout">proxy-stream-timeout</a></td>
<td align="left">string</td>
<td align="left">"600s"</td>
</tr>
<tr>
<td align="left"><a href="#proxy-stream-responses">proxy-stream-responses</a></td>
<td align="left">int</td>
<td align="left">1</td>
</tr>
<tr>
<td align="left"><a href="#bind-address">bind-address</a></td>
<td align="left">[]string</td>
<td align="left">""</td>
</tr>
<tr>
<td align="left"><a href="#use-forwarded-headers">use-forwarded-headers</a></td>
<td align="left">bool</td>
<td align="left">"false"</td>
</tr>
<tr>
<td align="left"><a href="#forwarded-for-header">forwarded-for-header</a></td>
<td align="left">string</td>
<td align="left">"X-Forwarded-For"</td>
</tr>
<tr>
<td align="left"><a href="#compute-full-forwarded-for">compute-full-forwarded-for</a></td>
<td align="left">bool</td>
<td align="left">"false"</td>
</tr>
<tr>
<td align="left"><a href="#proxy-add-original-uri-header">proxy-add-original-uri-header</a></td>
<td align="left">bool</td>
<td align="left">"true"</td>
</tr>
<tr>
<td align="left"><a href="#generate-request-id">generate-request-id</a></td>
<td align="left">bool</td>
<td align="left">"true"</td>
</tr>
<tr>
<td align="left"><a href="#enable-opentracing">enable-opentracing</a></td>
<td align="left">bool</td>
<td align="left">"false"</td>
</tr>
<tr>
<td align="left"><a href="#zipkin-collector-host">zipkin-collector-host</a></td>
<td align="left">string</td>
<td align="left">""</td>
</tr>
<tr>
<td align="left"><a href="#zipkin-collector-port">zipkin-collector-port</a></td>
<td align="left">int</td>
<td align="left">9411</td>
</tr>
<tr>
<td align="left"><a href="#zipkin-service-name">zipkin-service-name</a></td>
<td align="left">string</td>
<td align="left">"nginx"</td>
</tr>
<tr>
<td align="left"><a href="#zipkin-sample-rate">zipkin-sample-rate</a></td>
<td align="left">float</td>
<td align="left">1.0</td>
</tr>
<tr>
<td align="left"><a href="#jaeger-collector-host">jaeger-collector-host</a></td>
<td align="left">string</td>
<td align="left">""</td>
</tr>
<tr>
<td align="left"><a href="#jaeger-collector-port">jaeger-collector-port</a></td>
<td align="left">int</td>
<td align="left">6831</td>
</tr>
<tr>
<td align="left"><a href="#jaeger-service-name">jaeger-service-name</a></td>
<td align="left">string</td>
<td align="left">"nginx"</td>
</tr>
<tr>
<td align="left"><a href="#jaeger-sampler-type">jaeger-sampler-type</a></td>
<td align="left">string</td>
<td align="left">"const"</td>
</tr>
<tr>
<td align="left"><a href="#jaeger-sampler-param">jaeger-sampler-param</a></td>
<td align="left">string</td>
<td align="left">"1"</td>
</tr>
<tr>
<td align="left"><a href="#jaeger-sampler-host">jaeger-sampler-host</a></td>
<td align="left">string</td>
<td align="left">"http://127.0.0.1"</td>
</tr>
<tr>
<td align="left"><a href="#jaeger-sampler-port">jaeger-sampler-port</a></td>
<td align="left">int</td>
<td align="left">5778</td>
</tr>
<tr>
<td align="left"><a href="#main-snippet">main-snippet</a></td>
<td align="left">string</td>
<td align="left">""</td>
</tr>
<tr>
<td align="left"><a href="#http-snippet">http-snippet</a></td>
<td align="left">string</td>
<td align="left">""</td>
</tr>
<tr>
<td align="left"><a href="#server-snippet">server-snippet</a></td>
<td align="left">string</td>
<td align="left">""</td>
</tr>
<tr>
<td align="left"><a href="#location-snippet">location-snippet</a></td>
<td align="left">string</td>
<td align="left">""</td>
</tr>
<tr>
<td align="left"><a href="#custom-http-errors">custom-http-errors</a></td>
<td align="left">[]int</td>
<td align="left">[]int{}</td>
</tr>
<tr>
<td align="left"><a href="#proxy-body-size">proxy-body-size</a></td>
<td align="left">string</td>
<td align="left">"1m"</td>
</tr>
<tr>
<td align="left"><a href="#proxy-connect-timeout">proxy-connect-timeout</a></td>
<td align="left">int</td>
<td align="left">5</td>
</tr>
<tr>
<td align="left"><a href="#proxy-read-timeout">proxy-read-timeout</a></td>
<td align="left">int</td>
<td align="left">60</td>
</tr>
<tr>
<td align="left"><a href="#proxy-send-timeout">proxy-send-timeout</a></td>
<td align="left">int</td>
<td align="left">60</td>
</tr>
<tr>
<td align="left"><a href="#proxy-buffers-number">proxy-buffers-number</a></td>
<td align="left">int</td>
<td align="left">4</td>
</tr>
<tr>
<td align="left"><a href="#proxy-buffer-size">proxy-buffer-size</a></td>
<td align="left">string</td>
<td align="left">"4k"</td>
</tr>
<tr>
<td align="left"><a href="#proxy-cookie-path">proxy-cookie-path</a></td>
<td align="left">string</td>
<td align="left">"off"</td>
</tr>
<tr>
<td align="left"><a href="#proxy-cookie-domain">proxy-cookie-domain</a></td>
<td align="left">string</td>
<td align="left">"off"</td>
</tr>
<tr>
<td align="left"><a href="#proxy-next-upstream">proxy-next-upstream</a></td>
<td align="left">string</td>
<td align="left">"error timeout"</td>
</tr>
<tr>
<td align="left"><a href="#proxy-next-upstream-timeout">proxy-next-upstream-timeout</a></td>
<td align="left">int</td>
<td align="left">0</td>
</tr>
<tr>
<td align="left"><a href="#proxy-next-upstream-tries">proxy-next-upstream-tries</a></td>
<td align="left">int</td>
<td align="left">3</td>
</tr>
<tr>
<td align="left"><a href="#proxy-redirect-from">proxy-redirect-from</a></td>
<td align="left">string</td>
<td align="left">"off"</td>
</tr>
<tr>
<td align="left"><a href="#proxy-request-buffering">proxy-request-buffering</a></td>
<td align="left">string</td>
<td align="left">"on"</td>
</tr>
<tr>
<td align="left"><a href="#ssl-redirect">ssl-redirect</a></td>
<td align="left">bool</td>
<td align="left">"true"</td>
</tr>
<tr>
<td align="left"><a href="#whitelist-source-range">whitelist-source-range</a></td>
<td align="left">[]string</td>
<td align="left">[]string{}</td>
</tr>
<tr>
<td align="left"><a href="#skip-access-log-urls">skip-access-log-urls</a></td>
<td align="left">[]string</td>
<td align="left">[]string{}</td>
</tr>
<tr>
<td align="left"><a href="#limit-rate">limit-rate</a></td>
<td align="left">int</td>
<td align="left">0</td>
</tr>
<tr>
<td align="left"><a href="#limit-rate-after">limit-rate-after</a></td>
<td align="left">int</td>
<td align="left">0</td>
</tr>
<tr>
<td align="left"><a href="#http-redirect-code">http-redirect-code</a></td>
<td align="left">int</td>
<td align="left">308</td>
</tr>
<tr>
<td align="left"><a href="#proxy-buffering">proxy-buffering</a></td>
<td align="left">string</td>
<td align="left">"off"</td>
</tr>
<tr>
<td align="left"><a href="#limit-req-status-code">limit-req-status-code</a></td>
<td align="left">int</td>
<td align="left">503</td>
</tr>
<tr>
<td align="left"><a href="#limit-conn-status-code">limit-conn-status-code</a></td>
<td align="left">int</td>
<td align="left">503</td>
</tr>
<tr>
<td align="left"><a href="#no-tls-redirect-locations">no-tls-redirect-locations</a></td>
<td align="left">string</td>
<td align="left">"/.well-known/acme-challenge"</td>
</tr>
<tr>
<td align="left"><a href="#global-auth-url">global-auth-url</a></td>
<td align="left">string</td>
<td align="left">""</td>
</tr>
<tr>
<td align="left"><a href="#global-auth-method">global-auth-method</a></td>
<td align="left">string</td>
<td align="left">""</td>
</tr>
<tr>
<td align="left"><a href="#global-auth-signin">global-auth-signin</a></td>
<td align="left">string</td>
<td align="left">""</td>
</tr>
<tr>
<td align="left"><a href="#global-auth-response-headers">global-auth-response-headers</a></td>
<td align="left">string</td>
<td align="left">""</td>
</tr>
<tr>
<td align="left"><a href="#global-auth-request-redirect">global-auth-request-redirect</a></td>
<td align="left">string</td>
<td align="left">""</td>
</tr>
<tr>
<td align="left"><a href="#global-auth-snippet">global-auth-snippet</a></td>
<td align="left">string</td>
<td align="left">""</td>
</tr>
<tr>
<td align="left"><a href="#no-auth-locations">no-auth-locations</a></td>
<td align="left">string</td>
<td align="left">"/.well-known/acme-challenge"</td>
</tr>
<tr>
<td align="left"><a href="#block-cidrs">block-cidrs</a></td>
<td align="left">[]string</td>
<td align="left">""</td>
</tr>
<tr>
<td align="left"><a href="#block-user-agents">block-user-agents</a></td>
<td align="left">[]string</td>
<td align="left">""</td>
</tr>
<tr>
<td align="left"><a href="#block-referers">block-referers</a></td>
<td align="left">[]string</td>
<td align="left">""</td>
</tr>
</tbody>
</table>
<h2 id="add-headers">add-headers<a class="headerlink" href="#add-headers" title="Permanent link">&para;</a></h2>
<p>Sets custom headers from named configmap before sending traffic to the client. See <a href="#proxy-set-headers">proxy-set-headers</a>. <a href="https://github.com/kubernetes/ingress-nginx/tree/master/docs/examples/customization/custom-headers">example</a></p>
<h2 id="allow-backend-server-header">allow-backend-server-header<a class="headerlink" href="#allow-backend-server-header" title="Permanent link">&para;</a></h2>
<p>Enables the return of the header Server from the backend instead of the generic nginx string. <em><strong>default:</strong></em> is disabled</p>
<h2 id="hide-headers">hide-headers<a class="headerlink" href="#hide-headers" title="Permanent link">&para;</a></h2>
<p>Sets additional header that will not be passed from the upstream server to the client response.
<em><strong>default:</strong></em> empty</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_hide_header">http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_hide_header</a></p>
<h2 id="access-log-params">access-log-params<a class="headerlink" href="#access-log-params" title="Permanent link">&para;</a></h2>
<p>Additional params for access_log. For example, buffer=16k, gzip, flush=1m</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log">http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log</a></p>
<h2 id="access-log-path">access-log-path<a class="headerlink" href="#access-log-path" title="Permanent link">&para;</a></h2>
<p>Access log path. Goes to <code class="codehilite">/var/log/nginx/access.log</code> by default.</p>
<p><strong>Note:</strong> the file <code class="codehilite">/var/log/nginx/access.log</code> is a symlink to <code class="codehilite">/dev/stdout</code></p>
<h2 id="enable-access-log-for-default-backend">enable-access-log-for-default-backend<a class="headerlink" href="#enable-access-log-for-default-backend" title="Permanent link">&para;</a></h2>
<p>Enables logging access to default backend. <em><strong>default:</strong></em> is disabled. </p>
<h2 id="error-log-path">error-log-path<a class="headerlink" href="#error-log-path" title="Permanent link">&para;</a></h2>
<p>Error log path. Goes to <code class="codehilite">/var/log/nginx/error.log</code> by default.</p>
<p><strong>Note:</strong> the file <code class="codehilite">/var/log/nginx/error.log</code> is a symlink to <code class="codehilite">/dev/stderr</code></p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/ngx_core_module.html#error_log">http://nginx.org/en/docs/ngx_core_module.html#error_log</a></p>
<h2 id="enable-dynamic-tls-records">enable-dynamic-tls-records<a class="headerlink" href="#enable-dynamic-tls-records" title="Permanent link">&para;</a></h2>
<p>Enables dynamically sized TLS records to improve time-to-first-byte. <em><strong>default:</strong></em> is enabled</p>
<p><em>References:</em>
<a href="https://blog.cloudflare.com/optimizing-tls-over-tcp-to-reduce-latency">https://blog.cloudflare.com/optimizing-tls-over-tcp-to-reduce-latency</a></p>
<h2 id="enable-modsecurity">enable-modsecurity<a class="headerlink" href="#enable-modsecurity" title="Permanent link">&para;</a></h2>
<p>Enables the modsecurity module for NGINX. <em><strong>default:</strong></em> is disabled</p>
<h2 id="enable-owasp-modsecurity-crs">enable-owasp-modsecurity-crs<a class="headerlink" href="#enable-owasp-modsecurity-crs" title="Permanent link">&para;</a></h2>
<p>Enables the OWASP ModSecurity Core Rule Set (CRS). <em><strong>default:</strong></em> is disabled</p>
<h2 id="client-header-buffer-size">client-header-buffer-size<a class="headerlink" href="#client-header-buffer-size" title="Permanent link">&para;</a></h2>
<p>Allows to configure a custom buffer size for reading client request header.</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/ngx_http_core_module.html#client_header_buffer_size">http://nginx.org/en/docs/http/ngx_http_core_module.html#client_header_buffer_size</a></p>
<h2 id="client-header-timeout">client-header-timeout<a class="headerlink" href="#client-header-timeout" title="Permanent link">&para;</a></h2>
<p>Defines a timeout for reading client request header, in seconds.</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/ngx_http_core_module.html#client_header_timeout">http://nginx.org/en/docs/http/ngx_http_core_module.html#client_header_timeout</a></p>
<h2 id="client-body-buffer-size">client-body-buffer-size<a class="headerlink" href="#client-body-buffer-size" title="Permanent link">&para;</a></h2>
<p>Sets buffer size for reading client request body.</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_buffer_size">http://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_buffer_size</a></p>
<h2 id="client-body-timeout">client-body-timeout<a class="headerlink" href="#client-body-timeout" title="Permanent link">&para;</a></h2>
<p>Defines a timeout for reading client request body, in seconds.</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_timeout">http://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_timeout</a></p>
<h2 id="disable-access-log">disable-access-log<a class="headerlink" href="#disable-access-log" title="Permanent link">&para;</a></h2>
<p>Disables the Access Log from the entire Ingress Controller. <em><strong>default:</strong></em> '"false"'</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log">http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log</a></p>
<h2 id="disable-ipv6">disable-ipv6<a class="headerlink" href="#disable-ipv6" title="Permanent link">&para;</a></h2>
<p>Disable listening on IPV6. <em><strong>default:</strong></em> <code class="codehilite">false</code>; IPv6 listening is enabled</p>
<h2 id="disable-ipv6-dns">disable-ipv6-dns<a class="headerlink" href="#disable-ipv6-dns" title="Permanent link">&para;</a></h2>
<p>Disable IPV6 for nginx DNS resolver. <em><strong>default:</strong></em> <code class="codehilite">false</code>; IPv6 resolving enabled.</p>
<h2 id="enable-underscores-in-headers">enable-underscores-in-headers<a class="headerlink" href="#enable-underscores-in-headers" title="Permanent link">&para;</a></h2>
<p>Enables underscores in header names. <em><strong>default:</strong></em> is disabled</p>
<h2 id="ignore-invalid-headers">ignore-invalid-headers<a class="headerlink" href="#ignore-invalid-headers" title="Permanent link">&para;</a></h2>
<p>Set if header fields with invalid names should be ignored.
<em><strong>default:</strong></em> is enabled</p>
<h2 id="retry-non-idempotent">retry-non-idempotent<a class="headerlink" href="#retry-non-idempotent" title="Permanent link">&para;</a></h2>
<p>Since 1.9.13 NGINX will not retry non-idempotent requests (POST, LOCK, PATCH) in case of an error in the upstream server. The previous behavior can be restored using the value "true".</p>
<h2 id="error-log-level">error-log-level<a class="headerlink" href="#error-log-level" title="Permanent link">&para;</a></h2>
<p>Configures the logging level of errors. Log levels above are listed in the order of increasing severity.</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/ngx_core_module.html#error_log">http://nginx.org/en/docs/ngx_core_module.html#error_log</a></p>
<h2 id="http2-max-field-size">http2-max-field-size<a class="headerlink" href="#http2-max-field-size" title="Permanent link">&para;</a></h2>
<p>Limits the maximum size of an HPACK-compressed request header field.</p>
<p><em>References:</em>
<a href="https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_max_field_size">https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_max_field_size</a></p>
<h2 id="http2-max-header-size">http2-max-header-size<a class="headerlink" href="#http2-max-header-size" title="Permanent link">&para;</a></h2>
<p>Limits the maximum size of the entire request header list after HPACK decompression.</p>
<p><em>References:</em>
<a href="https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_max_header_size">https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_max_header_size</a></p>
<h2 id="http2-max-requests">http2-max-requests<a class="headerlink" href="#http2-max-requests" title="Permanent link">&para;</a></h2>
<p>Sets the maximum number of requests (including push requests) that can be served through one HTTP/2 connection, after which the next client request will lead to connection closing and the need of establishing a new connection.</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_max_requests">http://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_max_requests</a></p>
<h2 id="hsts">hsts<a class="headerlink" href="#hsts" title="Permanent link">&para;</a></h2>
<p>Enables or disables the header HSTS in servers running SSL.
HTTP Strict Transport Security (often abbreviated as HSTS) is a security feature (HTTP header) that tell browsers that it should only be communicated with using HTTPS, instead of using HTTP. It provides protection against protocol downgrade attacks and cookie theft.</p>
<p><em>References:</em></p>
<ul>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/Security/HTTP_strict_transport_security">https://developer.mozilla.org/en-US/docs/Web/Security/HTTP_strict_transport_security</a></li>
<li><a href="https://blog.qualys.com/securitylabs/2016/03/28/the-importance-of-a-proper-http-strict-transport-security-implementation-on-your-web-server">https://blog.qualys.com/securitylabs/2016/03/28/the-importance-of-a-proper-http-strict-transport-security-implementation-on-your-web-server</a></li>
</ul>
<h2 id="hsts-include-subdomains">hsts-include-subdomains<a class="headerlink" href="#hsts-include-subdomains" title="Permanent link">&para;</a></h2>
<p>Enables or disables the use of HSTS in all the subdomains of the server-name.</p>
<h2 id="hsts-max-age">hsts-max-age<a class="headerlink" href="#hsts-max-age" title="Permanent link">&para;</a></h2>
<p>Sets the time, in seconds, that the browser should remember that this site is only to be accessed using HTTPS.</p>
<h2 id="hsts-preload">hsts-preload<a class="headerlink" href="#hsts-preload" title="Permanent link">&para;</a></h2>
<p>Enables or disables the preload attribute in the HSTS feature (when it is enabled) dd</p>
<h2 id="keep-alive">keep-alive<a class="headerlink" href="#keep-alive" title="Permanent link">&para;</a></h2>
<p>Sets the time during which a keep-alive client connection will stay open on the server side. The zero value disables keep-alive client connections.</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout">http://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_timeout</a></p>
<h2 id="keep-alive-requests">keep-alive-requests<a class="headerlink" href="#keep-alive-requests" title="Permanent link">&para;</a></h2>
<p>Sets the maximum number of requests that can be served through one keep-alive connection.</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_requests">http://nginx.org/en/docs/http/ngx_http_core_module.html#keepalive_requests</a></p>
<h2 id="large-client-header-buffers">large-client-header-buffers<a class="headerlink" href="#large-client-header-buffers" title="Permanent link">&para;</a></h2>
<p>Sets the maximum number and size of buffers used for reading large client request header. <em><strong>default:</strong></em> 4 8k</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/ngx_http_core_module.html#large_client_header_buffers">http://nginx.org/en/docs/http/ngx_http_core_module.html#large_client_header_buffers</a></p>
<h2 id="log-format-escape-json">log-format-escape-json<a class="headerlink" href="#log-format-escape-json" title="Permanent link">&para;</a></h2>
<p>Sets if the escape parameter allows JSON ("true") or default characters escaping in variables ("false") Sets the nginx <a href="http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format">log format</a>.</p>
<h2 id="log-format-upstream">log-format-upstream<a class="headerlink" href="#log-format-upstream" title="Permanent link">&para;</a></h2>
<p>Sets the nginx <a href="http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format">log format</a>.
Example for json output:</p>
<p><code class="codehilite">consolelog-format-upstream: &#39;{ &quot;time&quot;: &quot;$time_iso8601&quot;, &quot;remote_addr&quot;: &quot;$proxy_protocol_addr&quot;,&quot;x-forward-for&quot;: &quot;$proxy_add_x_forwarded_for&quot;, &quot;request_id&quot;: &quot;$req_id&quot;, &quot;remote_user&quot;:&quot;$remote_user&quot;, &quot;bytes_sent&quot;: $bytes_sent, &quot;request_time&quot;: $request_time, &quot;status&quot;:$status, &quot;vhost&quot;: &quot;$host&quot;, &quot;request_proto&quot;: &quot;$server_protocol&quot;, &quot;path&quot;: &quot;$uri&quot;,&quot;request_query&quot;: &quot;$args&quot;, &quot;request_length&quot;: $request_length, &quot;duration&quot;: $request_time,&quot;method&quot;: &quot;$request_method&quot;, &quot;http_referrer&quot;: &quot;$http_referer&quot;, &quot;http_user_agent&quot;:&quot;$http_user_agent&quot; }&#39;</code></p>
<p>Please check the <a href="../log-format/">log-format</a> for definition of each field.</p>
<h2 id="log-format-stream">log-format-stream<a class="headerlink" href="#log-format-stream" title="Permanent link">&para;</a></h2>
<p>Sets the nginx <a href="https://nginx.org/en/docs/stream/ngx_stream_log_module.html#log_format">stream format</a>.</p>
<h2 id="enable-multi-accept">enable-multi-accept<a class="headerlink" href="#enable-multi-accept" title="Permanent link">&para;</a></h2>
<p>If disabled, a worker process will accept one new connection at a time. Otherwise, a worker process will accept all new connections at a time.
<em><strong>default:</strong></em> true</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/ngx_core_module.html#multi_accept">http://nginx.org/en/docs/ngx_core_module.html#multi_accept</a></p>
<h2 id="max-worker-connections">max-worker-connections<a class="headerlink" href="#max-worker-connections" title="Permanent link">&para;</a></h2>
<p>Sets the <a href="http://nginx.org/en/docs/ngx_core_module.html#worker_connections">maximum number of simultaneous connections</a> that can be opened by each worker process.
0 will use the value of <a href="#max-worker-open-files">max-worker-open-files</a>.
<em><strong>default:</strong></em> 16384</p>
<div class="admonition tip">
<p class="admonition-title">Tip</p>
<p>Using 0 in scenarios of high load improves performance at the cost of increasing RAM utilization (even on idle).</p>
</div>
<h2 id="max-worker-open-files">max-worker-open-files<a class="headerlink" href="#max-worker-open-files" title="Permanent link">&para;</a></h2>
<p>Sets the <a href="http://nginx.org/en/docs/ngx_core_module.html#worker_rlimit_nofile">maximum number of files</a> that can be opened by each worker process.
The default of 0 means "max open files (system's limit) / <a href="#worker-processes">worker-processes</a> - 1024".
<em><strong>default:</strong></em> 0</p>
<h2 id="map-hash-bucket-size">map-hash-bucket-size<a class="headerlink" href="#map-hash-bucket-size" title="Permanent link">&para;</a></h2>
<p>Sets the bucket size for the <a href="http://nginx.org/en/docs/http/ngx_http_map_module.html#map_hash_bucket_size">map variables hash tables</a>. The details of setting up hash tables are provided in a separate <a href="http://nginx.org/en/docs/hash.html">document</a>.</p>
<h2 id="proxy-real-ip-cidr">proxy-real-ip-cidr<a class="headerlink" href="#proxy-real-ip-cidr" title="Permanent link">&para;</a></h2>
<p>If use-proxy-protocol is enabled, proxy-real-ip-cidr defines the default the IP/network address of your external load balancer.</p>
<h2 id="proxy-set-headers">proxy-set-headers<a class="headerlink" href="#proxy-set-headers" title="Permanent link">&para;</a></h2>
<p>Sets custom headers from named configmap before sending traffic to backends. The value format is namespace/name. See <a href="https://github.com/kubernetes/ingress-nginx/tree/master/docs/examples/customization/custom-headers">example</a></p>
<h2 id="server-name-hash-max-size">server-name-hash-max-size<a class="headerlink" href="#server-name-hash-max-size" title="Permanent link">&para;</a></h2>
<p>Sets the maximum size of the <a href="http://nginx.org/en/docs/http/ngx_http_core_module.html#server_names_hash_max_size">server names hash tables</a> used in server names,map directives values, MIME types, names of request header strings, etc.</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/hash.html">http://nginx.org/en/docs/hash.html</a></p>
<h2 id="server-name-hash-bucket-size">server-name-hash-bucket-size<a class="headerlink" href="#server-name-hash-bucket-size" title="Permanent link">&para;</a></h2>
<p>Sets the size of the bucket for the server names hash tables.</p>
<p><em>References:</em></p>
<ul>
<li><a href="http://nginx.org/en/docs/hash.html">http://nginx.org/en/docs/hash.html</a></li>
<li><a href="http://nginx.org/en/docs/http/ngx_http_core_module.html#server_names_hash_bucket_size">http://nginx.org/en/docs/http/ngx_http_core_module.html#server_names_hash_bucket_size</a></li>
</ul>
<h2 id="proxy-headers-hash-max-size">proxy-headers-hash-max-size<a class="headerlink" href="#proxy-headers-hash-max-size" title="Permanent link">&para;</a></h2>
<p>Sets the maximum size of the proxy headers hash tables.</p>
<p><em>References:</em></p>
<ul>
<li><a href="http://nginx.org/en/docs/hash.html">http://nginx.org/en/docs/hash.html</a></li>
<li><a href="https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_headers_hash_max_size">https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_headers_hash_max_size</a></li>
</ul>
<h2 id="reuse-port">reuse-port<a class="headerlink" href="#reuse-port" title="Permanent link">&para;</a></h2>
<p>Instructs NGINX to create an individual listening socket for each worker process (using the SO_REUSEPORT socket option), allowing a kernel to distribute incoming connections between worker processes
<em><strong>default:</strong></em> true</p>
<h2 id="proxy-headers-hash-bucket-size">proxy-headers-hash-bucket-size<a class="headerlink" href="#proxy-headers-hash-bucket-size" title="Permanent link">&para;</a></h2>
<p>Sets the size of the bucket for the proxy headers hash tables.</p>
<p><em>References:</em></p>
<ul>
<li><a href="http://nginx.org/en/docs/hash.html">http://nginx.org/en/docs/hash.html</a></li>
<li><a href="https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_headers_hash_bucket_size">https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_headers_hash_bucket_size</a></li>
</ul>
<h2 id="server-tokens">server-tokens<a class="headerlink" href="#server-tokens" title="Permanent link">&para;</a></h2>
<p>Send NGINX Server header in responses and display NGINX version in error pages. <em><strong>default:</strong></em> is enabled</p>
<h2 id="ssl-ciphers">ssl-ciphers<a class="headerlink" href="#ssl-ciphers" title="Permanent link">&para;</a></h2>
<p>Sets the <a href="http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_ciphers">ciphers</a> list to enable. The ciphers are specified in the format understood by the OpenSSL library.</p>
<p>The default cipher list is:
<code class="codehilite">ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256</code>.</p>
<p>The ordering of a ciphersuite is very important because it decides which algorithms are going to be selected in priority. The recommendation above prioritizes algorithms that provide perfect <a href="https://wiki.mozilla.org/Security/Server_Side_TLS#Forward_Secrecy">forward secrecy</a>.</p>
<p>Please check the <a href="https://mozilla.github.io/server-side-tls/ssl-config-generator/">Mozilla SSL Configuration Generator</a>.</p>
<h2 id="ssl-ecdh-curve">ssl-ecdh-curve<a class="headerlink" href="#ssl-ecdh-curve" title="Permanent link">&para;</a></h2>
<p>Specifies a curve for ECDHE ciphers.</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_ecdh_curve">http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_ecdh_curve</a></p>
<h2 id="ssl-dh-param">ssl-dh-param<a class="headerlink" href="#ssl-dh-param" title="Permanent link">&para;</a></h2>
<p>Sets the name of the secret that contains Diffie-Hellman key to help with "Perfect Forward Secrecy".</p>
<p><em>References:</em></p>
<ul>
<li><a href="https://wiki.openssl.org/index.php/Diffie-Hellman_parameters">https://wiki.openssl.org/index.php/Diffie-Hellman_parameters</a></li>
<li><a href="https://wiki.mozilla.org/Security/Server_Side_TLS#DHE_handshake_and_dhparam">https://wiki.mozilla.org/Security/Server_Side_TLS#DHE_handshake_and_dhparam</a></li>
<li><a href="http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_dhparam">http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_dhparam</a></li>
</ul>
<h2 id="ssl-protocols">ssl-protocols<a class="headerlink" href="#ssl-protocols" title="Permanent link">&para;</a></h2>
<p>Sets the <a href="http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_protocols">SSL protocols</a> to use. The default is: <code class="codehilite">TLSv1.2</code>.</p>
<p>Please check the result of the configuration using <code class="codehilite">https://ssllabs.com/ssltest/analyze.html</code> or <code class="codehilite">https://testssl.sh</code>.</p>
<h2 id="ssl-session-cache">ssl-session-cache<a class="headerlink" href="#ssl-session-cache" title="Permanent link">&para;</a></h2>
<p>Enables or disables the use of shared <a href="http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_session_cache">SSL cache</a> among worker processes.</p>
<h2 id="ssl-session-cache-size">ssl-session-cache-size<a class="headerlink" href="#ssl-session-cache-size" title="Permanent link">&para;</a></h2>
<p>Sets the size of the <a href="http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_session_cache">SSL shared session cache</a> between all worker processes.</p>
<h2 id="ssl-session-tickets">ssl-session-tickets<a class="headerlink" href="#ssl-session-tickets" title="Permanent link">&para;</a></h2>
<p>Enables or disables session resumption through <a href="http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_session_tickets">TLS session tickets</a>.</p>
<h2 id="ssl-session-ticket-key">ssl-session-ticket-key<a class="headerlink" href="#ssl-session-ticket-key" title="Permanent link">&para;</a></h2>
<p>Sets the secret key used to encrypt and decrypt TLS session tickets. The value must be a valid base64 string.
To create a ticket: <code class="codehilite">openssl rand 80 | openssl enc -A -base64</code></p>
<p><a href="http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_session_tickets">TLS session ticket-key</a>, by default, a randomly generated key is used. </p>
<h2 id="ssl-session-timeout">ssl-session-timeout<a class="headerlink" href="#ssl-session-timeout" title="Permanent link">&para;</a></h2>
<p>Sets the time during which a client may <a href="http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_session_timeout">reuse the session</a> parameters stored in a cache.</p>
<h2 id="ssl-buffer-size">ssl-buffer-size<a class="headerlink" href="#ssl-buffer-size" title="Permanent link">&para;</a></h2>
<p>Sets the size of the <a href="http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_buffer_size">SSL buffer</a> used for sending data. The default of 4k helps NGINX to improve TLS Time To First Byte (TTTFB).</p>
<p><em>References:</em>
<a href="https://www.igvita.com/2013/12/16/optimizing-nginx-tls-time-to-first-byte/">https://www.igvita.com/2013/12/16/optimizing-nginx-tls-time-to-first-byte/</a></p>
<h2 id="use-proxy-protocol">use-proxy-protocol<a class="headerlink" href="#use-proxy-protocol" title="Permanent link">&para;</a></h2>
<p>Enables or disables the <a href="https://www.nginx.com/resources/admin-guide/proxy-protocol/">PROXY protocol</a> to receive client connection (real IP address) information passed through proxy servers and load balancers such as HAProxy and Amazon Elastic Load Balancer (ELB).</p>
<h2 id="proxy-protocol-header-timeout">proxy-protocol-header-timeout<a class="headerlink" href="#proxy-protocol-header-timeout" title="Permanent link">&para;</a></h2>
<p>Sets the timeout value for receiving the proxy-protocol headers. The default of 5 seconds prevents the TLS passthrough handler from waiting indefinitely on a dropped connection.
<em><strong>default:</strong></em> 5s</p>
<h2 id="use-gzip">use-gzip<a class="headerlink" href="#use-gzip" title="Permanent link">&para;</a></h2>
<p>Enables or disables compression of HTTP responses using the <a href="http://nginx.org/en/docs/http/ngx_http_gzip_module.html">"gzip" module</a>. MIME types to compress are controlled by <a href="#gzip-types">gzip-types</a>. <em><strong>default:</strong></em> true</p>
<h2 id="use-geoip">use-geoip<a class="headerlink" href="#use-geoip" title="Permanent link">&para;</a></h2>
<p>Enables or disables <a href="http://nginx.org/en/docs/http/ngx_http_geoip_module.html">"geoip" module</a> that creates variables with values depending on the client IP address, using the precompiled MaxMind databases.
<em><strong>default:</strong></em> true</p>
<blockquote>
<p><strong>Note:</strong> MaxMind legacy databases are discontinued and will not receive updates after 2019-01-02, cf. <a href="https://support.maxmind.com/geolite-legacy-discontinuation-notice/">discontinuation notice</a>. Consider <a href="#use-geoip2">use-geoip2</a> below.</p>
</blockquote>
<h2 id="use-geoip2">use-geoip2<a class="headerlink" href="#use-geoip2" title="Permanent link">&para;</a></h2>
<p>Enables the <a href="https://github.com/leev/ngx_http_geoip2_module">geoip2 module</a> for NGINX.
<em><strong>default:</strong></em> false</p>
<h2 id="enable-brotli">enable-brotli<a class="headerlink" href="#enable-brotli" title="Permanent link">&para;</a></h2>
<p>Enables or disables compression of HTTP responses using the <a href="https://github.com/google/ngx_brotli">"brotli" module</a>.
The default mime type list to compress is: <code class="codehilite">application/xml+rss application/atom+xml application/javascript application/x-javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/plain text/x-component</code>. <em><strong>default:</strong></em> is disabled</p>
<blockquote>
<p><strong>Note:</strong> Brotli does not works in Safari &lt; 11. For more information see <a href="https://caniuse.com/#feat=brotli">https://caniuse.com/#feat=brotli</a></p>
</blockquote>
<h2 id="brotli-level">brotli-level<a class="headerlink" href="#brotli-level" title="Permanent link">&para;</a></h2>
<p>Sets the Brotli Compression Level that will be used. <em><strong>default:</strong></em> 4</p>
<h2 id="brotli-types">brotli-types<a class="headerlink" href="#brotli-types" title="Permanent link">&para;</a></h2>
<p>Sets the MIME Types that will be compressed on-the-fly by brotli.
<em><strong>default:</strong></em> <code class="codehilite">application/xml+rss application/atom+xml application/javascript application/x-javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/plain text/x-component</code></p>
<h2 id="use-http2">use-http2<a class="headerlink" href="#use-http2" title="Permanent link">&para;</a></h2>
<p>Enables or disables <a href="http://nginx.org/en/docs/http/ngx_http_v2_module.html">HTTP/2</a> support in secure connections.</p>
<h2 id="gzip-level">gzip-level<a class="headerlink" href="#gzip-level" title="Permanent link">&para;</a></h2>
<p>Sets the gzip Compression Level that will be used. <em><strong>default:</strong></em> 5</p>
<h2 id="gzip-types">gzip-types<a class="headerlink" href="#gzip-types" title="Permanent link">&para;</a></h2>
<p>Sets the MIME types in addition to "text/html" to compress. The special value "*" matches any MIME type. Responses with the "text/html" type are always compressed if <code class="codehilite">[use-gzip](#use-gzip)</code> is enabled.
<em><strong>default:</strong></em> <code class="codehilite">application/atom+xml application/javascript application/x-javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/svg+xml image/x-icon text/css text/plain text/x-component</code>.</p>
<h2 id="worker-processes">worker-processes<a class="headerlink" href="#worker-processes" title="Permanent link">&para;</a></h2>
<p>Sets the number of <a href="http://nginx.org/en/docs/ngx_core_module.html#worker_processes">worker processes</a>.
The default of "auto" means number of available CPU cores.</p>
<h2 id="worker-cpu-affinity">worker-cpu-affinity<a class="headerlink" href="#worker-cpu-affinity" title="Permanent link">&para;</a></h2>
<p>Binds worker processes to the sets of CPUs. <a href="http://nginx.org/en/docs/ngx_core_module.html#worker_cpu_affinity">worker_cpu_affinity</a>.
By default worker processes are not bound to any specific CPUs. The value can be:</p>
<ul>
<li>"": empty string indicate no affinity is applied.</li>
<li>cpumask: e.g. <code class="codehilite">0001 0010 0100 1000</code> to bind processes to specific cpus.</li>
<li>auto: binding worker processes automatically to available CPUs.</li>
</ul>
<h2 id="worker-shutdown-timeout">worker-shutdown-timeout<a class="headerlink" href="#worker-shutdown-timeout" title="Permanent link">&para;</a></h2>
<p>Sets a timeout for Nginx to <a href="http://nginx.org/en/docs/ngx_core_module.html#worker_shutdown_timeout">wait for worker to gracefully shutdown</a>. <em><strong>default:</strong></em> "10s"</p>
<h2 id="load-balance">load-balance<a class="headerlink" href="#load-balance" title="Permanent link">&para;</a></h2>
<p>Sets the algorithm to use for load balancing.
The value can either be:</p>
<ul>
<li>round_robin: to use the default round robin loadbalancer</li>
<li>ewma: to use the Peak EWMA method for routing (<a href="https://github.com/kubernetes/ingress-nginx/blob/master/rootfs/etc/nginx/lua/balancer/ewma.lua">implementation</a>)</li>
</ul>
<p>The default is <code class="codehilite">round_robin</code>.</p>
<ul>
<li>To load balance using consistent hashing of IP or other variables, consider the <code class="codehilite">nginx.ingress.kubernetes.io/upstream-hash-by</code> annotation.</li>
<li>To load balance using session cookies, consider the <code class="codehilite">nginx.ingress.kubernetes.io/affinity</code> annotation.</li>
</ul>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/load_balancing.html">http://nginx.org/en/docs/http/load_balancing.html</a></p>
<h2 id="variables-hash-bucket-size">variables-hash-bucket-size<a class="headerlink" href="#variables-hash-bucket-size" title="Permanent link">&para;</a></h2>
<p>Sets the bucket size for the variables hash table.</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/ngx_http_map_module.html#variables_hash_bucket_size">http://nginx.org/en/docs/http/ngx_http_map_module.html#variables_hash_bucket_size</a></p>
<h2 id="variables-hash-max-size">variables-hash-max-size<a class="headerlink" href="#variables-hash-max-size" title="Permanent link">&para;</a></h2>
<p>Sets the maximum size of the variables hash table.</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/ngx_http_map_module.html#variables_hash_max_size">http://nginx.org/en/docs/http/ngx_http_map_module.html#variables_hash_max_size</a></p>
<h2 id="upstream-keepalive-connections">upstream-keepalive-connections<a class="headerlink" href="#upstream-keepalive-connections" title="Permanent link">&para;</a></h2>
<p>Activates the cache for connections to upstream servers. The connections parameter sets the maximum number of idle
keepalive connections to upstream servers that are preserved in the cache of each worker process. When this number is
exceeded, the least recently used connections are closed.
<em><strong>default:</strong></em> 32</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive">http://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive</a></p>
<h2 id="upstream-keepalive-timeout">upstream-keepalive-timeout<a class="headerlink" href="#upstream-keepalive-timeout" title="Permanent link">&para;</a></h2>
<p>Sets a timeout during which an idle keepalive connection to an upstream server will stay open.
<em><strong>default:</strong></em> 60</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive_timeout">http://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive_timeout</a></p>
<h2 id="upstream-keepalive-requests">upstream-keepalive-requests<a class="headerlink" href="#upstream-keepalive-requests" title="Permanent link">&para;</a></h2>
<p>Sets the maximum number of requests that can be served through one keepalive connection. After the maximum number of
requests is made, the connection is closed.
<em><strong>default:</strong></em> 100</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive_requests">http://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive_requests</a></p>
<h2 id="limit-conn-zone-variable">limit-conn-zone-variable<a class="headerlink" href="#limit-conn-zone-variable" title="Permanent link">&para;</a></h2>
<p>Sets parameters for a shared memory zone that will keep states for various keys of <a href="http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html#limit_conn_zone">limit_conn_zone</a>. The default of "$binary_remote_addr" variables size is always 4 bytes for IPv4 addresses or 16 bytes for IPv6 addresses.</p>
<h2 id="proxy-stream-timeout">proxy-stream-timeout<a class="headerlink" href="#proxy-stream-timeout" title="Permanent link">&para;</a></h2>
<p>Sets the timeout between two successive read or write operations on client or proxied server connections. If no data is transmitted within this time, the connection is closed.</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_timeout">http://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_timeout</a></p>
<h2 id="proxy-stream-responses">proxy-stream-responses<a class="headerlink" href="#proxy-stream-responses" title="Permanent link">&para;</a></h2>
<p>Sets the number of datagrams expected from the proxied server in response to the client request if the UDP protocol is used.</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_responses">http://nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_responses</a></p>
<h2 id="bind-address">bind-address<a class="headerlink" href="#bind-address" title="Permanent link">&para;</a></h2>
<p>Sets the addresses on which the server will accept requests instead of *. It should be noted that these addresses must exist in the runtime environment or the controller will crash loop.</p>
<h2 id="use-forwarded-headers">use-forwarded-headers<a class="headerlink" href="#use-forwarded-headers" title="Permanent link">&para;</a></h2>
<p>If true, NGINX passes the incoming <code class="codehilite">X-Forwarded-*</code> headers to upstreams. Use this option when NGINX is behind another L7 proxy / load balancer that is setting these headers.</p>
<p>If false, NGINX ignores incoming <code class="codehilite">X-Forwarded-*</code> headers, filling them with the request information it sees. Use this option if NGINX is exposed directly to the internet, or it's behind a L3/packet-based load balancer that doesn't alter the source IP in the packets.</p>
<h2 id="forwarded-for-header">forwarded-for-header<a class="headerlink" href="#forwarded-for-header" title="Permanent link">&para;</a></h2>
<p>Sets the header field for identifying the originating IP address of a client. <em><strong>default:</strong></em> X-Forwarded-For</p>
<h2 id="compute-full-forwarded-for">compute-full-forwarded-for<a class="headerlink" href="#compute-full-forwarded-for" title="Permanent link">&para;</a></h2>
<p>Append the remote address to the X-Forwarded-For header instead of replacing it. When this option is enabled, the upstream application is responsible for extracting the client IP based on its own list of trusted proxies.</p>
<h2 id="proxy-add-original-uri-header">proxy-add-original-uri-header<a class="headerlink" href="#proxy-add-original-uri-header" title="Permanent link">&para;</a></h2>
<p>Adds an X-Original-Uri header with the original request URI to the backend request</p>
<h2 id="generate-request-id">generate-request-id<a class="headerlink" href="#generate-request-id" title="Permanent link">&para;</a></h2>
<p>Ensures that X-Request-ID is defaulted to a random value, if no X-Request-ID is present in the request</p>
<h2 id="enable-opentracing">enable-opentracing<a class="headerlink" href="#enable-opentracing" title="Permanent link">&para;</a></h2>
<p>Enables the nginx Opentracing extension. <em><strong>default:</strong></em> is disabled</p>
<p><em>References:</em>
<a href="https://github.com/opentracing-contrib/nginx-opentracing">https://github.com/opentracing-contrib/nginx-opentracing</a></p>
<h2 id="zipkin-collector-host">zipkin-collector-host<a class="headerlink" href="#zipkin-collector-host" title="Permanent link">&para;</a></h2>
<p>Specifies the host to use when uploading traces. It must be a valid URL.</p>
<h2 id="zipkin-collector-port">zipkin-collector-port<a class="headerlink" href="#zipkin-collector-port" title="Permanent link">&para;</a></h2>
<p>Specifies the port to use when uploading traces. <em><strong>default:</strong></em> 9411</p>
<h2 id="zipkin-service-name">zipkin-service-name<a class="headerlink" href="#zipkin-service-name" title="Permanent link">&para;</a></h2>
<p>Specifies the service name to use for any traces created. <em><strong>default:</strong></em> nginx</p>
<h2 id="zipkin-sample-rate">zipkin-sample-rate<a class="headerlink" href="#zipkin-sample-rate" title="Permanent link">&para;</a></h2>
<p>Specifies sample rate for any traces created. <em><strong>default:</strong></em> 1.0</p>
<h2 id="jaeger-collector-host">jaeger-collector-host<a class="headerlink" href="#jaeger-collector-host" title="Permanent link">&para;</a></h2>
<p>Specifies the host to use when uploading traces. It must be a valid URL.</p>
<h2 id="jaeger-collector-port">jaeger-collector-port<a class="headerlink" href="#jaeger-collector-port" title="Permanent link">&para;</a></h2>
<p>Specifies the port to use when uploading traces. <em><strong>default:</strong></em> 6831</p>
<h2 id="jaeger-service-name">jaeger-service-name<a class="headerlink" href="#jaeger-service-name" title="Permanent link">&para;</a></h2>
<p>Specifies the service name to use for any traces created. <em><strong>default:</strong></em> nginx</p>
<h2 id="jaeger-sampler-type">jaeger-sampler-type<a class="headerlink" href="#jaeger-sampler-type" title="Permanent link">&para;</a></h2>
<p>Specifies the sampler to be used when sampling traces. The available samplers are: const, probabilistic, ratelimiting, remote. <em><strong>default:</strong></em> const</p>
<h2 id="jaeger-sampler-param">jaeger-sampler-param<a class="headerlink" href="#jaeger-sampler-param" title="Permanent link">&para;</a></h2>
<p>Specifies the argument to be passed to the sampler constructor. Must be a number.
For const this should be 0 to never sample and 1 to always sample. <em><strong>default:</strong></em> 1</p>
<h2 id="jaeger-sampler-host">jaeger-sampler-host<a class="headerlink" href="#jaeger-sampler-host" title="Permanent link">&para;</a></h2>
<p>Specifies the custom remote sampler host to be passed to the sampler constructor. Must be a valid URL.
Leave blank to use default value (localhost). <em><strong>default:</strong></em> http://127.0.0.1</p>
<h2 id="jaeger-sampler-port">jaeger-sampler-port<a class="headerlink" href="#jaeger-sampler-port" title="Permanent link">&para;</a></h2>
<p>Specifies the custom remote sampler port to be passed to the sampler constructor. Must be a number. <em><strong>default:</strong></em> 5778</p>
<h2 id="main-snippet">main-snippet<a class="headerlink" href="#main-snippet" title="Permanent link">&para;</a></h2>
<p>Adds custom configuration to the main section of the nginx configuration.</p>
<h2 id="http-snippet">http-snippet<a class="headerlink" href="#http-snippet" title="Permanent link">&para;</a></h2>
<p>Adds custom configuration to the http section of the nginx configuration.</p>
<h2 id="server-snippet">server-snippet<a class="headerlink" href="#server-snippet" title="Permanent link">&para;</a></h2>
<p>Adds custom configuration to all the servers in the nginx configuration.</p>
<h2 id="location-snippet">location-snippet<a class="headerlink" href="#location-snippet" title="Permanent link">&para;</a></h2>
<p>Adds custom configuration to all the locations in the nginx configuration.</p>
<p>You can not use this to add new locations that proxy to the Kubernetes pods, as the snippet does not have access to the Go template functions. If you want to add custom locations you will have to <a href="https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/custom-template/">provide your own nginx.tmpl</a>.</p>
<h2 id="custom-http-errors">custom-http-errors<a class="headerlink" href="#custom-http-errors" title="Permanent link">&para;</a></h2>
<p>Enables which HTTP codes should be passed for processing with the <a href="http://nginx.org/en/docs/http/ngx_http_core_module.html#error_page">error_page directive</a></p>
<p>Setting at least one code also enables <a href="http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_intercept_errors">proxy_intercept_errors</a> which are required to process error_page.</p>
<p>Example usage: <code class="codehilite">custom-http-errors: 404,415</code></p>
<h2 id="proxy-body-size">proxy-body-size<a class="headerlink" href="#proxy-body-size" title="Permanent link">&para;</a></h2>
<p>Sets the maximum allowed size of the client request body.
See NGINX <a href="http://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size">client_max_body_size</a>.</p>
<h2 id="proxy-connect-timeout">proxy-connect-timeout<a class="headerlink" href="#proxy-connect-timeout" title="Permanent link">&para;</a></h2>
<p>Sets the timeout for <a href="http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_connect_timeout">establishing a connection with a proxied server</a>. It should be noted that this timeout cannot usually exceed 75 seconds.</p>
<h2 id="proxy-read-timeout">proxy-read-timeout<a class="headerlink" href="#proxy-read-timeout" title="Permanent link">&para;</a></h2>
<p>Sets the timeout in seconds for <a href="http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_read_timeout">reading a response from the proxied server</a>. The timeout is set only between two successive read operations, not for the transmission of the whole response.</p>
<h2 id="proxy-send-timeout">proxy-send-timeout<a class="headerlink" href="#proxy-send-timeout" title="Permanent link">&para;</a></h2>
<p>Sets the timeout in seconds for <a href="http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_send_timeout">transmitting a request to the proxied server</a>. The timeout is set only between two successive write operations, not for the transmission of the whole request.</p>
<h2 id="proxy-buffers-number">proxy-buffers-number<a class="headerlink" href="#proxy-buffers-number" title="Permanent link">&para;</a></h2>
<p>Sets the number of the buffer used for <a href="http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffers">reading the first part of the response</a> received from the proxied server. This part usually contains a small response header.</p>
<h2 id="proxy-buffer-size">proxy-buffer-size<a class="headerlink" href="#proxy-buffer-size" title="Permanent link">&para;</a></h2>
<p>Sets the size of the buffer used for <a href="http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffer_size">reading the first part of the response</a> received from the proxied server. This part usually contains a small response header.</p>
<h2 id="proxy-cookie-path">proxy-cookie-path<a class="headerlink" href="#proxy-cookie-path" title="Permanent link">&para;</a></h2>
<p>Sets a text that <a href="http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cookie_path">should be changed in the path attribute</a> of the “Set-Cookie” header fields of a proxied server response.</p>
<h2 id="proxy-cookie-domain">proxy-cookie-domain<a class="headerlink" href="#proxy-cookie-domain" title="Permanent link">&para;</a></h2>
<p>Sets a text that <a href="http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cookie_domain">should be changed in the domain attribute</a> of the “Set-Cookie” header fields of a proxied server response.</p>
<h2 id="proxy-next-upstream">proxy-next-upstream<a class="headerlink" href="#proxy-next-upstream" title="Permanent link">&para;</a></h2>
<p>Specifies in <a href="http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream">which cases</a> a request should be passed to the next server.</p>
<h2 id="proxy-next-upstream-timeout">proxy-next-upstream-timeout<a class="headerlink" href="#proxy-next-upstream-timeout" title="Permanent link">&para;</a></h2>
<p><a href="http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream_timeout">Limits the time</a> in seconds during which a request can be passed to the next server.</p>
<h2 id="proxy-next-upstream-tries">proxy-next-upstream-tries<a class="headerlink" href="#proxy-next-upstream-tries" title="Permanent link">&para;</a></h2>
<p>Limit the number of <a href="http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream_tries">possible tries</a> a request should be passed to the next server.</p>
<h2 id="proxy-redirect-from">proxy-redirect-from<a class="headerlink" href="#proxy-redirect-from" title="Permanent link">&para;</a></h2>
<p>Sets the original text that should be changed in the "Location" and "Refresh" header fields of a proxied server response. <em><strong>default:</strong></em> off</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect">http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect</a></p>
<h2 id="proxy-request-buffering">proxy-request-buffering<a class="headerlink" href="#proxy-request-buffering" title="Permanent link">&para;</a></h2>
<p>Enables or disables <a href="http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_request_buffering">buffering of a client request body</a>.</p>
<h2 id="ssl-redirect">ssl-redirect<a class="headerlink" href="#ssl-redirect" title="Permanent link">&para;</a></h2>
<p>Sets the global value of redirects (301) to HTTPS if the server has a TLS certificate (defined in an Ingress rule).
<em><strong>default:</strong></em> "true"</p>
<h2 id="whitelist-source-range">whitelist-source-range<a class="headerlink" href="#whitelist-source-range" title="Permanent link">&para;</a></h2>
<p>Sets the default whitelisted IPs for each <code class="codehilite">server</code> block. This can be overwritten by an annotation on an Ingress rule.
See <a href="http://nginx.org/en/docs/http/ngx_http_access_module.html">ngx_http_access_module</a>.</p>
<h2 id="skip-access-log-urls">skip-access-log-urls<a class="headerlink" href="#skip-access-log-urls" title="Permanent link">&para;</a></h2>
<p>Sets a list of URLs that should not appear in the NGINX access log. This is useful with urls like <code class="codehilite">/health</code> or <code class="codehilite">health-check</code> that make "complex" reading the logs. <em><strong>default:</strong></em> is empty</p>
<h2 id="limit-rate">limit-rate<a class="headerlink" href="#limit-rate" title="Permanent link">&para;</a></h2>
<p>Limits the rate of response transmission to a client. The rate is specified in bytes per second. The zero value disables rate limiting. The limit is set per a request, and so if a client simultaneously opens two connections, the overall rate will be twice as much as the specified limit.</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/ngx_http_core_module.html#limit_rate">http://nginx.org/en/docs/http/ngx_http_core_module.html#limit_rate</a></p>
<h2 id="limit-rate-after">limit-rate-after<a class="headerlink" href="#limit-rate-after" title="Permanent link">&para;</a></h2>
<p>Sets the initial amount after which the further transmission of a response to a client will be rate limited.</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/ngx_http_core_module.html#limit_rate_after">http://nginx.org/en/docs/http/ngx_http_core_module.html#limit_rate_after</a></p>
<h2 id="http-redirect-code">http-redirect-code<a class="headerlink" href="#http-redirect-code" title="Permanent link">&para;</a></h2>
<p>Sets the HTTP status code to be used in redirects.
Supported codes are <a href="https://developer.mozilla.org/docs/Web/HTTP/Status/301">301</a>,<a href="https://developer.mozilla.org/docs/Web/HTTP/Status/302">302</a>,<a href="https://developer.mozilla.org/docs/Web/HTTP/Status/307">307</a> and <a href="https://developer.mozilla.org/docs/Web/HTTP/Status/308">308</a>
<em><strong>default:</strong></em> 308</p>
<blockquote>
<p><strong>Why the default code is 308?</strong></p>
<p><a href="https://tools.ietf.org/html/rfc7238">RFC 7238</a> was created to define the 308 (Permanent Redirect) status code that is similar to 301 (Moved Permanently) but it keeps the payload in the redirect. This is important if the we send a redirect in methods like POST.</p>
</blockquote>
<h2 id="proxy-buffering">proxy-buffering<a class="headerlink" href="#proxy-buffering" title="Permanent link">&para;</a></h2>
<p>Enables or disables <a href="http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffering">buffering of responses from the proxied server</a>.</p>
<h2 id="limit-req-status-code">limit-req-status-code<a class="headerlink" href="#limit-req-status-code" title="Permanent link">&para;</a></h2>
<p>Sets the <a href="http://nginx.org/en/docs/http/ngx_http_limit_req_module.html#limit_req_status">status code to return in response to rejected requests</a>. <em><strong>default:</strong></em> 503</p>
<h2 id="limit-conn-status-code">limit-conn-status-code<a class="headerlink" href="#limit-conn-status-code" title="Permanent link">&para;</a></h2>
<p>Sets the <a href="http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html#limit_conn_status">status code to return in response to rejected connections</a>. <em><strong>default:</strong></em> 503</p>
<h2 id="no-tls-redirect-locations">no-tls-redirect-locations<a class="headerlink" href="#no-tls-redirect-locations" title="Permanent link">&para;</a></h2>
<p>A comma-separated list of locations on which http requests will never get redirected to their https counterpart.
<em><strong>default:</strong></em> "/.well-known/acme-challenge"</p>
<h2 id="global-auth-url">global-auth-url<a class="headerlink" href="#global-auth-url" title="Permanent link">&para;</a></h2>
<p>A url to an existing service that provides authentication for all the locations.
Similar to the Ingress rule annotation <code class="codehilite">nginx.ingress.kubernetes.io/auth-url</code>.
Locations that should not get authenticated can be listed using <code class="codehilite">no-auth-locations</code> See <a href="#no-auth-locations">no-auth-locations</a>. In addition, each service can be excluded from authentication via annotation <code class="codehilite">enable-global-auth</code> set to "false".
<em><strong>default:</strong></em> ""</p>
<p><em>References:</em> <a href="https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md#external-authentication">https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md#external-authentication</a></p>
<h2 id="global-auth-method">global-auth-method<a class="headerlink" href="#global-auth-method" title="Permanent link">&para;</a></h2>
<p>A HTTP method to use for an existing service that provides authentication for all the locations.
Similar to the Ingress rule annotation <code class="codehilite">nginx.ingress.kubernetes.io/auth-method</code>.
<em><strong>default:</strong></em> ""</p>
<h2 id="global-auth-signin">global-auth-signin<a class="headerlink" href="#global-auth-signin" title="Permanent link">&para;</a></h2>
<p>Sets the location of the error page for an existing service that provides authentication for all the locations.
Similar to the Ingress rule annotation <code class="codehilite">nginx.ingress.kubernetes.io/auth-signin</code>.
<em><strong>default:</strong></em> ""</p>
<h2 id="global-auth-response-headers">global-auth-response-headers<a class="headerlink" href="#global-auth-response-headers" title="Permanent link">&para;</a></h2>
<p>Sets the headers to pass to backend once authentication request completes. Applied to all the locations.
Similar to the Ingress rule annotation <code class="codehilite">nginx.ingress.kubernetes.io/auth-response-headers</code>.
<em><strong>default:</strong></em> ""</p>
<h2 id="global-auth-request-redirect">global-auth-request-redirect<a class="headerlink" href="#global-auth-request-redirect" title="Permanent link">&para;</a></h2>
<p>Sets the X-Auth-Request-Redirect header value. Applied to all the locations.
Similar to the Ingress rule annotation <code class="codehilite">nginx.ingress.kubernetes.io/auth-request-redirect</code>.
<em><strong>default:</strong></em> ""</p>
<h2 id="global-auth-snippet">global-auth-snippet<a class="headerlink" href="#global-auth-snippet" title="Permanent link">&para;</a></h2>
<p>Sets a custom snippet to use with external authentication. Applied to all the locations.
Similar to the Ingress rule annotation <code class="codehilite">nginx.ingress.kubernetes.io/auth-request-redirect</code>.
<em><strong>default:</strong></em> ""</p>
<h2 id="no-auth-locations">no-auth-locations<a class="headerlink" href="#no-auth-locations" title="Permanent link">&para;</a></h2>
<p>A comma-separated list of locations that should not get authenticated.
<em><strong>default:</strong></em> "/.well-known/acme-challenge"</p>
<h2 id="block-cidrs">block-cidrs<a class="headerlink" href="#block-cidrs" title="Permanent link">&para;</a></h2>
<p>A comma-separated list of IP addresses (or subnets), request from which have to be blocked globally.</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/ngx_http_access_module.html#deny">http://nginx.org/en/docs/http/ngx_http_access_module.html#deny</a></p>
<h2 id="block-user-agents">block-user-agents<a class="headerlink" href="#block-user-agents" title="Permanent link">&para;</a></h2>
<p>A comma-separated list of User-Agent, request from which have to be blocked globally.
It's possible to use here full strings and regular expressions. More details about valid patterns can be found at <code class="codehilite">map</code> Nginx directive documentation.</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/ngx_http_map_module.html#map">http://nginx.org/en/docs/http/ngx_http_map_module.html#map</a></p>
<h2 id="block-referers">block-referers<a class="headerlink" href="#block-referers" title="Permanent link">&para;</a></h2>
<p>A comma-separated list of Referers, request from which have to be blocked globally.
It's possible to use here full strings and regular expressions. More details about valid patterns can be found at <code class="codehilite">map</code> Nginx directive documentation.</p>
<p><em>References:</em>
<a href="http://nginx.org/en/docs/http/ngx_http_map_module.html#map">http://nginx.org/en/docs/http/ngx_http_map_module.html#map</a></p>
</article>
</div>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-nav">
<nav class="md-footer-nav__inner md-grid">
<a href="../annotations/" title="Annotations" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
<div class="md-flex__cell md-flex__cell--shrink">
<i class="md-icon md-icon--arrow-back md-footer-nav__button"></i>
</div>
<div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
<span class="md-flex__ellipsis">
<span class="md-footer-nav__direction">
Previous
</span>
Annotations
</span>
</div>
</a>
<a href="../custom-template/" title="Custom NGINX template" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
<div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
<span class="md-flex__ellipsis">
<span class="md-footer-nav__direction">
Next
</span>
Custom NGINX template
</span>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
<i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i>
</div>
</a>
</nav>
</div>
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-footer-copyright">
powered by
<a href="https://www.mkdocs.org">MkDocs</a>
and
<a href="https://squidfunk.github.io/mkdocs-material/">
Material for MkDocs</a>
</div>
</div>
</div>
</footer>
</div>
<script src="../../../assets/javascripts/application.d9aa80ab.js"></script>
<script>app.initialize({version:"1.0.4",url:{base:"../../.."}})</script>
</body>
</html>