ConfigMap允许您将配置工件与图像内容分离,以使容器化的应用程序具有可移植性。
ConfigMap API资源将配置数据存储为键值对。该数据为Nginx控制器提供了系统组件的配置。
为了覆盖config.go中所示的nginx-controller配置值,您可以将键值对添加到config-map的data部分。例如:
data:
map-hash-bucket-size: "128"
ssl-protocols: SSLv2
重要
ConfigMap中的键和值只能是字符串。这意味着我们想要一个带有布尔值的值,我们需要用引号将它们引号,例如“ true”或“ false”。数字也一样,例如“ 100”。
可以将Slice类型(以下定义为[]string
或[]int
)作为逗号分隔的字符串。
下表显示了配置选项的名称,类型和默认值:
name | type | default |
---|---|---|
add-headers | string | "" |
allow-backend-server-header | bool | "false" |
hide-headers | string array | empty |
access-log-params | string | "" |
access-log-path | string | "/var/log/nginx/access.log" |
http-access-log-path | string | "" |
stream-access-log-path | string | "" |
enable-access-log-for-default-backend | bool | "false" |
error-log-path | string | "/var/log/nginx/error.log" |
enable-modsecurity | bool | "false" |
modsecurity-snippet | string | "" |
enable-owasp-modsecurity-crs | bool | "false" |
client-header-buffer-size | string | "1k" |
client-header-timeout | int | 60 |
client-body-buffer-size | string | "8k" |
client-body-timeout | int | 60 |
disable-access-log | bool | false |
disable-ipv6 | bool | false |
disable-ipv6-dns | bool | false |
enable-underscores-in-headers | bool | false |
enable-ocsp | bool | false |
ignore-invalid-headers | bool | true |
retry-non-idempotent | bool | "false" |
error-log-level | string | "notice" |
http2-max-field-size | string | "4k" |
http2-max-header-size | string | "16k" |
http2-max-requests | int | 1000 |
http2-max-concurrent-streams | int | 1000 |
hsts | bool | "true" |
hsts-include-subdomains | bool | "true" |
hsts-max-age | string | "15724800" |
hsts-preload | bool | "false" |
keep-alive | int | 75 |
keep-alive-requests | int | 100 |
large-client-header-buffers | string | "4 8k" |
log-format-escape-json | bool | "false" |
log-format-upstream | string | $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $request_length $request_time [$proxy_upstream_name] [$proxy_alternative_upstream_name] $upstream_addr $upstream_response_length $upstream_response_time $upstream_status $req_id |
log-format-stream | string | [$remote_addr] [$time_local] $protocol $status $bytes_sent $bytes_received $session_time |
enable-multi-accept | bool | "true" |
max-worker-connections | int | 16384 |
max-worker-open-files | int | 0 |
map-hash-bucket-size | int | 64 |
nginx-status-ipv4-whitelist | []string | "127.0.0.1" |
nginx-status-ipv6-whitelist | []string | "::1" |
proxy-real-ip-cidr | []string | "0.0.0.0/0" |
proxy-set-headers | string | "" |
server-name-hash-max-size | int | 1024 |
server-name-hash-bucket-size | int |
|
proxy-headers-hash-max-size | int | 512 |
proxy-headers-hash-bucket-size | int | 64 |
plugins | []string | |
reuse-port | bool | "true" |
server-tokens | bool | "false" |
ssl-ciphers | string | "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384" |
ssl-ecdh-curve | string | "auto" |
ssl-dh-param | string | "" |
ssl-protocols | string | "TLSv1.2 TLSv1.3" |
ssl-session-cache | bool | "true" |
ssl-session-cache-size | string | "10m" |
ssl-session-tickets | bool | "false" |
ssl-session-ticket-key | string |
|
ssl-session-timeout | string | "10m" |
ssl-buffer-size | string | "4k" |
use-proxy-protocol | bool | "false" |
proxy-protocol-header-timeout | string | "5s" |
use-gzip | bool | "false" |
use-geoip | bool | "true" |
use-geoip2 | bool | "false" |
enable-brotli | bool | "false" |
brotli-level | int | 4 |
brotli-types | string | "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/javascript text/plain text/x-component" |
use-http2 | bool | "true" |
gzip-level | int | 1 |
gzip-types | string | "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/javascript text/plain text/x-component" |
worker-processes | string |
|
worker-cpu-affinity | string | "" |
worker-shutdown-timeout | string | "240s" |
load-balance | string | "round_robin" |
variables-hash-bucket-size | int | 128 |
variables-hash-max-size | int | 2048 |
upstream-keepalive-connections | int | 320 |
upstream-keepalive-timeout | int | 60 |
upstream-keepalive-requests | int | 10000 |
limit-conn-zone-variable | string | "$binary_remote_addr" |
proxy-stream-timeout | string | "600s" |
proxy-stream-next-upstream | bool | "true" |
proxy-stream-next-upstream-timeout | string | "600s" |
proxy-stream-next-upstream-tries | int | 3 |
proxy-stream-responses | int | 1 |
bind-address | []string | "" |
use-forwarded-headers | bool | "false" |
enable-real-ip | bool | "false" |
forwarded-for-header | string | "X-Forwarded-For" |
compute-full-forwarded-for | bool | "false" |
proxy-add-original-uri-header | bool | "false" |
generate-request-id | bool | "true" |
enable-opentracing | bool | "false" |
opentracing-operation-name | string | "" |
opentracing-location-operation-name | string | "" |
zipkin-collector-host | string | "" |
zipkin-collector-port | int | 9411 |
zipkin-service-name | string | "nginx" |
zipkin-sample-rate | float | 1.0 |
jaeger-collector-host | string | "" |
jaeger-collector-port | int | 6831 |
jaeger-service-name | string | "nginx" |
jaeger-sampler-type | string | "const" |
jaeger-sampler-param | string | "1" |
jaeger-sampler-host | string | "http://127.0.0.1" |
jaeger-sampler-port | int | 5778 |
jaeger-trace-context-header-name | string | uber-trace-id |
jaeger-debug-header | string | uber-debug-id |
jaeger-baggage-header | string | jaeger-baggage |
jaeger-trace-baggage-header-prefix | string | uberctx- |
datadog-collector-host | string | "" |
datadog-collector-port | int | 8126 |
datadog-service-name | string | "nginx" |
datadog-environment | string | "prod" |
datadog-operation-name-override | string | "nginx.handle" |
datadog-priority-sampling | bool | "true" |
datadog-sample-rate | float | 1.0 |
main-snippet | string | "" |
http-snippet | string | "" |
server-snippet | string | "" |
location-snippet | string | "" |
custom-http-errors | []int | []int |
proxy-body-size | string | "1m" |
proxy-connect-timeout | int | 5 |
proxy-read-timeout | int | 60 |
proxy-send-timeout | int | 60 |
proxy-buffers-number | int | 4 |
proxy-buffer-size | string | "4k" |
proxy-cookie-path | string | "off" |
proxy-cookie-domain | string | "off" |
proxy-next-upstream | string | "error timeout" |
proxy-next-upstream-timeout | int | 0 |
proxy-next-upstream-tries | int | 3 |
proxy-redirect-from | string | "off" |
proxy-request-buffering | string | "on" |
ssl-redirect | bool | "true" |
whitelist-source-range | []string | []string |
skip-access-log-urls | []string | []string |
limit-rate | int | 0 |
limit-rate-after | int | 0 |
lua-shared-dicts | string | "" |
http-redirect-code | int | 308 |
proxy-buffering | string | "off" |
limit-req-status-code | int | 503 |
limit-conn-status-code | int | 503 |
no-tls-redirect-locations | string | "/.well-known/acme-challenge" |
global-auth-url | string | "" |
global-auth-method | string | "" |
global-auth-signin | string | "" |
global-auth-signin-redirect-param | string | "rd" |
global-auth-response-headers | string | "" |
global-auth-request-redirect | string | "" |
global-auth-snippet | string | "" |
global-auth-cache-key | string | "" |
global-auth-cache-duration | string | "200 202 401 5m" |
no-auth-locations | string | "/.well-known/acme-challenge" |
block-cidrs | []string | "" |
block-user-agents | []string | "" |
block-referers | []string | "" |
proxy-ssl-location-only | bool | "false" |
default-type | string | "text/html" |
在将流量发送到客户端之前,从命名的configmap设置自定义标头。请参阅proxy-set-headers。例
启用从后端返回标头服务器,而不是从通用nginx字符串返回。default: is disabled
设置不会从上游服务器传递到客户端响应的其他标头。 default: empty
参考: http : //nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_hide_header
access_log的其他参数。例如,buffer = 16k,gzip,flush = 1m
参考: http : //nginx.org/en/docs/http/ngx_http_log_module.html#access_log
http和流上下文的访问日志路径。/var/log/nginx/access.log
默认情况下转到。
注意:该文件/var/log/nginx/access.log
是指向的符号链接/dev/stdout
全局访问http上下文的日志路径。 default: ""
注意:如果未指定,access-log-path
将使用。
全局访问流上下文的日志路径。 default: ""
ConfigMap允许您将配置工件与图像内容分离,以使容器化的应用程序具有可移植性。
ConfigMap API资源将配置数据存储为键值对。该数据为Nginx控制器提供了系统组件的配置。
为了覆盖config.go中所示的nginx-controller配置值,您可以将键值对添加到config-map的data部分。例如:
data:
map-hash-bucket-size: "128"
ssl-protocols: SSLv2
重要
ConfigMap中的键和值只能是字符串。这意味着我们想要一个带有布尔值的值,我们需要用引号将它们引号,例如“ true”或“ false”。数字也一样,例如“ 100”。
可以将Slice类型(以下定义为[]string
或[]int
)作为逗号分隔的字符串。
下表显示了配置选项的名称,类型和默认值:
名称 | 类型 | 默认 |
---|---|---|
添加标题 | 串 | ” |
允许后端服务器头 | 布尔 | “假” |
隐藏标题 | 字符串数组 | 空的 |
访问日志参数 | 串 | ” |
访问日志路径 | 串 | “ /var/log/nginx/access.log” |
http-access-log-path | 串 | ” |
流访问日志路径 | 串 | ” |
为默认后端启用访问日志 | 布尔 | “假” |
错误日志路径 | 串 | “ /var/log/nginx/error.log” |
启用安全性 | 布尔 | “假” |
modsecurity片段 | 串 | ” |
启用owasp-modsecurity-crs | 布尔 | “假” |
客户端头缓冲区大小 | 串 | “ 1k” |
客户头超时 | 整型 | 60 |
客户端主体缓冲区大小 | 串 | “ 8k” |
客户端超时 | 整型 | 60 |
禁用访问日志 | 布尔 | 假 |
禁用-ipv6 | 布尔 | 假 |
禁用-ipv6-dns | 布尔 | 假 |
启用标题下划线 | 布尔 | 假 |
使能 | 布尔 | 假 |
忽略无效的标题 | 布尔 | 真正 |
重试非幂等 | 布尔 | “假” |
错误日志级别 | 串 | “注意” |
http2-max-field-size | 串 | “ 4k” |
http2-max-header-size | 串 | “ 16k” |
http2-max-requests | 整型 | 1000 |
http2-max-concurrent-streams | 整型 | 1000 |
科技 | 布尔 | “真正” |
hsts-include-subdomains | 布尔 | “真正” |
最高时长 | 串 | “ 15724800” |
hsts-preload | 布尔 | “假” |
活着 | 整型 | 75 |
保持活动请求 | 整型 | 100 |
大客户头缓冲区 | 串 | “ 4 8k” |
日志格式转义json | 布尔 | “假” |
日志格式上游 | 串 | $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $request_length $request_time [$proxy_upstream_name] [$proxy_alternative_upstream_name] $upstream_addr $upstream_response_length $upstream_response_time $upstream_status $req_id |
日志格式流 | 串 | [$remote_addr] [$time_local] $protocol $status $bytes_sent $bytes_received $session_time |
启用多重接受 | 布尔 | “真正” |
max-worker-connections | 整型 | 16384 |
max-worker-open-files | 整型 | 0 |
映射哈希桶大小 | 整型 | 64 |
nginx-状态-ipv4-白名单 | []串 | “ 127.0.0.1” |
nginx-status-ipv6-whitelist | []串 | “ :: 1” |
代理真实IP密码 | []串 | “ 0.0.0.0/0” |
代理集标题 | 串 | ” |
服务器名称哈希最大大小 | 整型 | 1024 |
服务器名称哈希桶大小 | 整型 |
|
代理标头哈希最大大小 | 整型 | 512 |
代理标头哈希桶大小 | 整型 | 64 |
外挂程式 | []串 | |
重用端口 | 布尔 | “真正” |
服务器令牌 | 布尔 | “假” |
密码 | 串 | “ ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE -RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384“ |
ssl-ecdh曲线 | 串 | “汽车” |
ssl-dh-param | 串 | ” |
ssl协议 | 串 | “ TLSv1.2 TLSv1.3” |
ssl会话缓存 | 布尔 | “真正” |
ssl会话缓存大小 | 串 | “ 10m” |
ssl会话门票 | 布尔 | “假” |
ssl会话票证密钥 | 串 |
|
ssl会话超时 | 串 | “ 10m” |
ssl缓冲区大小 | 串 | “ 4k” |
使用代理协议 | 布尔 | “假” |
代理协议头超时 | 串 | “ 5s” |
使用gzip | 布尔 | “假” |
使用地理 | 布尔 | “真正” |
use-geoip2 | 布尔 | “假” |
使能 | 布尔 | “假” |
肉鸡水平 | 整型 | 4 |
肉鸡型 | 串 | “应用程序/ xml + rss应用程序/ atom + xml应用程序/ javascript应用程序/ x-javascript应用程序/ json应用程序/ rss + xml应用程序/vnd.ms-fontobject应用程序/ x-font-ttf应用程序/ x-web-app-manifest + json应用程序/ xhtml + xml应用程序/ xml字体/ opentype图片/ svg + xml图片/ x-icon文本/ css文本/ javascript文本/纯文本/ x组件” |
使用-http2 | 布尔 | “真正” |
gzip级 | 整型 | 1个 |
gzip类型 | 串 | “应用程序/ atom + xml应用程序/ javascript应用程序/ x-javascript应用程序/ json应用程序/ rss + xml应用程序/vnd.ms-fontobject应用程序/ x-font-ttf应用程序/ x-web-app-manifest + json应用程序/ xhtml + xml应用程序/ xml字体/ opentype图像/ svg + xml图像/ x-icon文本/ css文本/ javascript文本/纯文本/ x组件” |
工人过程 | 串 |
|
工人-CPU亲和力 | 串 | ” |
工人关机超时 | 串 | “ 240s” |
负载均衡 | 串 | “ round_robin” |
变量哈希桶大小 | 整型 | 128 |
变量哈希最大大小 | 整型 | 2048 |
上游-keepalive-连接 | 整型 | 320 |
上游Keepalive超时 | 整型 | 60 |
上游keepalive请求 | 整型 | 10000 |
极限连接区变量 | 串 | “ $ binary_remote_addr” |
代理流超时 | 串 | “ 600s” |
代理流下一个上游 | 布尔 | “真正” |
代理流下一个上游超时 | 串 | “ 600s” |
代理流下一个上游尝试 | 整型 | 3 |
代理流响应 | 整型 | 1个 |
绑定地址 | []串 | ” |
使用转发标头 | 布尔 | “假” |
启用真实IP | 布尔 | “假” |
标题转发 | 串 | “ X-Forwarded-For” |
计算完全转发 | 布尔 | “假” |
代理添加原始uri标头 | 布尔 | “假” |
生成请求ID | 布尔 | “真正” |
启用开放式跟踪 | 布尔 | “假” |
opentracing-操作名称 | 串 | ” |
opentracing-location-operation-name | 串 | ” |
zipkin-collector-host | 串 | ” |
zipkin-collector-port | 整型 | 9411 |
zipkin服务名称 | 串 | “ nginx” |
压缩样本率 | 浮动 | 1.0 |
jaeger-collector-host | 串 | ” |
Jaeger-collector-port | 整型 | 6831 |
jaeger服务名称 | 串 | “ nginx” |
杰格采样器类型 | 串 | “ const” |
jaeger-sampler-param | 串 | “ 1” |
jaeger-sampler-host | 串 | “ http://127.0.0.1” |
杰格采样器端口 | 整型 | 5778 |
jaeger-trace-context-header-名称 | 串 | uber-trace-id |
jaeger-debug-header | 串 | uber-debug-id |
贾格行李箱头 | 串 | 积家行李 |
jaeger-trace-baggage-header-prefix | 串 | uberctx- |
数据狗收集器主机 | 串 | ” |
数据狗收集器端口 | 整型 | 8126 |
datadog-service-name | 串 | “ nginx” |
数据狗环境 | 串 | “产品” |
数据狗操作名称覆盖 | 串 | “ nginx.handle” |
数据狗优先采样 | 布尔 | “真正” |
数据狗采样率 | 浮动 | 1.0 |
主片段 | 串 | ” |
http-片段 | 串 | ” |
服务器片段 | 串 | ” |
位置摘要 | 串 | ” |
自定义http错误 | [] int | [] int |
代理主体大小 | 串 | “ 1m” |
代理连接超时 | 整型 | 5 |
代理读取超时 | 整型 | 60 |
代理发送超时 | 整型 | 60 |
代理缓冲区编号 | 整型 | 4 |
代理缓冲区大小 | 串 | “ 4k” |
代理cookie路径 | 串 | “关闭” |
代理Cookie域 | 串 | “关闭” |
代理下一个上游 | 串 | “错误超时” |
代理下一个上游超时 | 整型 | 0 |
代理下一个上游尝试 | 整型 | 3 |
代理重定向自 | 串 | “关闭” |
代理请求缓冲 | 串 | “上” |
ssl重定向 | 布尔 | “真正” |
白名单源范围 | []串 | []串 |
跳过访问日志网址 | []串 | []串 |
极限率 | 整型 | 0 |
限制后率 | 整型 | 0 |
lua-share-dicts | 串 | ” |
http重定向代码 | 整型 | 308 |
代理缓冲 | 串 | “关闭” |
极限要求状态码 | 整型 | 503 |
极限连接状态码 | 整型 | 503 |
no-tls-重定向位置 | 串 | “ /。众所周知/ acme挑战” |
全局验证网址 | 串 | ” |
全局验证方法 | 串 | ” |
全局身份验证登录 | 串 | ” |
全局验证登录重定向参数 | 串 | “ rd” |
全局验证响应头 | 串 | ” |
全局验证请求重定向 | 串 | ” |
全局身份验证代码段 | 串 | ” |
全局验证缓存密钥 | 串 | ” |
全局验证缓存持续时间 | 串 | “ 200 202 401 5m” |
无身份验证位置 | 串 | “ /。众所周知/ acme挑战” |
块索引 | []串 | ” |
阻止用户代理 | []串 | ” |
区块参照 | []串 | ” |
仅限代理SSL位置 | 布尔 | “假” |
默认类型 | 串 | “文本/ html” |
在将流量发送到客户端之前,从命名的configmap设置自定义标头。请参阅proxy-set-headers。例
启用从后端返回标头服务器,而不是从通用nginx字符串返回。默认值:禁用
设置不会从上游服务器传递到客户端响应的其他标头。 默认值:空
参考: http : //nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_hide_header
access_log的其他参数。例如,buffer = 16k,gzip,flush = 1m
参考: http : //nginx.org/en/docs/http/ngx_http_log_module.html#access_log
http和流上下文的访问日志路径。/var/log/nginx/access.log
默认情况下转到。
注意:该文件/var/log/nginx/access.log
是指向的符号链接/dev/stdout
全局访问http上下文的日志路径。 默认值: “”
注意:如果未指定,access-log-path
将使用。
全局访问流上下文的日志路径。 默认值: “”
注意:如果未指定,access-log-path
将使用。
全局访问流上下文的日志路径。default: is disabled.
错误日志路径。/var/log/nginx/error.log
默认情况下转到。
注意:该文件/var/log/nginx/error.log
是指向的符号链接/dev/stderr
参考: http : //nginx.org/en/docs/ngx_core_module.html#error_log
为NGINX启用modsecurity模块。 default: is disabled
启用OWASP ModSecurity核心规则集(CRS)。 default: is disabled
向Nginx配置的modsecurity部分添加自定义规则
允许配置自定义缓冲区大小以读取客户端请求标头。
参考: 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_timeout
设置用于读取客户端请求正文的缓冲区大小。
参考: 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_timeout
从整个Ingress Controller禁用访问日志。 default: '"false"'
参考: http : //nginx.org/en/docs/http/ngx_http_log_module.html#access_log
禁用监听IPV6。default: false
; 已启用IPv6侦听
为Nginx DNS解析器禁用IPV6。default: false
; 启用了IPv6解析。
在标题名称中启用下划线。 default: is disabled
启用在线证书状态协议装订(OCSP)支持。 default: is disabled
设置是否忽略具有无效名称的头字段。 default: is enabled
从1.9.13开始,如果上游服务器发生错误,NGINX将不会重试非幂等请求(POST,LOCK,PATCH)。可以使用值“ true”恢复以前的行为。
配置错误的日志记录级别。以上日志级别按严重性从高到低的顺序列出。
参考: http : //nginx.org/en/docs/ngx_core_module.html#error_log
限制HPACK压缩的请求标头字段的最大大小。
参考: https : //nginx.org/en/docs/http/ngx_http_v2_module.html#http2_max_field_size
限制HPACK解压缩后整个请求标头列表的最大大小。
参考: https : //nginx.org/en/docs/http/ngx_http_v2_module.html#http2_max_header_size
设置可以通过一个HTTP / 2连接提供服务的最大请求数(包括推送请求),之后下一个客户端请求将导致连接关闭以及需要建立新连接。
参考: http : //nginx.org/en/docs/http/ngx_http_v2_module.html#http2_max_requests
设置连接中并发HTTP / 2流的最大数量。
参考: http : //nginx.org/en/docs/http/ngx_http_v2_module.html#http2_max_concurrent_streams
在运行SSL的服务器中启用或禁用标头HSTS。HTTP严格传输安全性(通常缩写为HSTS)是一项安全功能(HTTP标头),它告诉浏览器仅应使用HTTPS而不是使用HTTPS进行通信。它提供了针对协议降级攻击和cookie盗窃的保护。
参考文献:
在服务器名称的所有子域中启用或禁用HSTS。
设置浏览器记住该站点仅使用HTTPS访问的时间(以秒为单位)。
启用或禁用HSTS功能中的preload属性(启用时)dd
设置保持活动的客户端连接在服务器端保持打开状态的时间。零值将禁用保持活动状态的客户端连接。
参考: 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_requests
设置用于读取大型客户端请求标头的缓冲区的最大数量和大小。默认值: 4 8k
参考: http : //nginx.org/en/docs/http/ngx_http_core_module.html#large_client_header_buffers
设置转义参数是否允许JSON(“ true”)或在变量中转义的默认字符(“ false”)设置nginx日志格式。
设置nginx日志格式。json输出示例:
log-format-upstream: '{"time": "$time_iso8601", "remote_addr": "$proxy_protocol_addr", "x_forward_for": "$proxy_add_x_forwarded_for", "request_id": "$req_id",
"remote_user": "$remote_user", "bytes_sent": $bytes_sent, "request_time": $request_time, "status": $status, "vhost": "$host", "request_proto": "$server_protocol",
"path": "$uri", "request_query": "$args", "request_length": $request_length, "duration": $request_time,"method": "$request_method", "http_referrer": "$http_referer",
"http_user_agent": "$http_user_agent" }'
请检查日志格式以了解每个字段的定义。
设置nginx流格式。
如果禁用,则辅助进程将一次接受一个新连接。否则,工作进程将一次接受所有新连接。 默认值: true
参考: http : //nginx.org/en/docs/ngx_core_module.html#multi_accept
设置每个工作进程可以打开的最大同时连接数。0将使用max-worker-open-files的值。 default: 16384
Tip
在高负载的情况下使用0可以提高性能,但以增加RAM利用率(甚至在空闲时)为代价。
设置每个工作进程可以打开的最大文件数。默认值为0表示“最大打开文件数(系统的限制)/ worker-processes -1024”。 default: 0
设置映射变量哈希表的存储桶大小。设置哈希表的详细信息在单独的文档中提供。
如果启用了use-forwarded-header或use-proxy-protocol,则proxy-real-ip-cidr定义默认的外部负载均衡器的IP /网络地址。
在将流量发送到后端之前,从命名的configmap设置自定义标头。值格式为名称空间/名称。看例子
设置服务器名称哈希表的最大大小,这些哈希表用于服务器名称,map指令的值,MIME类型,请求标头字符串的名称等。
参考: http : //nginx.org/en/docs/hash.html
设置服务器名称哈希表的存储桶大小。
参考文献:
设置代理标头哈希表的最大大小。
参考文献:
指示NGINX为每个工作进程创建一个单独的侦听套接字(使用SO_REUSEPORT套接字选项),从而允许内核在工作进程之间分配传入的连接, default: true
设置代理标头哈希表的存储桶大小。
参考文献:
激活安装在中的插件/etc/nginx/lua/plugins
。有关如何编写和安装插件的更多信息,请参阅ingress-nginx插件自述文件。
在响应中发送NGINX Server标头,并在错误页面中显示NGINX版本。 default: is disabled
设置要启用的密码列表。密码以OpenSSL库可以理解的格式指定。
默认密码列表为: ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
。
密码套件的排序非常重要,因为它决定了优先选择哪些算法。以上建议优先考虑了提供完美前向保密性的算法。
在配置DH参数之前,基于DHE的密码将不可用自定义DH参数可实现完美的前向保密性
请检查Mozilla SSL配置生成器。
注意:默认情况下,将为http上下文启用ssl_prefer_server_ciphers指令。
指定ECDHE密码的曲线。
参考: http : //nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_ecdh_curve
设置包含Diffie-Hellman密钥的机密名称,以帮助实现“ Perfect Forward Secrecy”。
参考文献:
设置要使用的SSL协议。默认值为:TLSv1.2 TLSv1.3
。
请使用https://ssllabs.com/ssltest/analyze.html
或检查配置结果https://testssl.sh
。
启用或禁用TLS 1.3早期数据,也称为零往返时间恢复(0-RTT)。
这要求ssl-protocols
已经TLSv1.3
启用。请谨慎启用此功能,因为在早期数据中发送的请求会受到重放攻击。
ssl_early_data。The default is: false
.
启用或禁用工作进程之间共享SSL缓存的使用。
设置所有工作进程之间的SSL共享会话缓存的大小。
通过TLS会话票证启用或禁用会话恢复。
设置用于加密和解密TLS会话票证的密钥。该值必须是有效的base64字符串。要创建票证:openssl rand 80 | openssl enc -A -base64
TLS会话票证密钥,默认情况下,使用随机生成的密钥。
设置客户端可以重复使用存储在缓存中的会话参数的时间。
设置用于发送数据的SSL缓冲区的大小。默认的4k可以帮助NGINX改善TLS首字节时间(TTTFB)。
参考: https : //www.igvita.com/2013/12/16/optimizing-nginx-tls-time-to-first-byte/
启用或禁用PROXY协议,以接收通过代理服务器和负载均衡器(例如HAProxy和Amazon Elastic Load Balancer(ELB))传递的客户端连接(真实IP地址)信息。
设置用于接收代理协议标头的超时值。默认值为5秒可防止TLS直通处理程序无限期地等待断开的连接。 default: 5s
使用“ gzip”模块启用或禁用HTTP响应的压缩。要压缩的MIME类型由gzip-types控制。 default: false
使用预编译的MaxMind数据库启用或禁用“ geoip”模块,该模块使用取决于客户端IP地址的值来创建变量。 default: true
注意: MaxMind旧版数据库已停产,并且在2019年1月2日之后将不会接收更新,请参见。停产通知书。考虑下面的use-geoip2。
为NGINX启用geoip2模块。由于0.27.0
且由于MaxMind数据库的更改,需要许可证才能访问数据库。因此,需要--maxmind-license-key
在入口控制器部署中定义一个新标志,以下载在入口控制器初始化期间所需的数据库。另外,也可以使用卷来装载文件/etc/nginx/geoip/GeoLite2-City.mmdb
和/etc/nginx/geoip/GeoLite2-ASN.mmdb
,从而避免了下载的开销。
重要
如果启用了该功能但文件丢失,则不会启用GeoIP2。
default: false
使用“ brotli”模块启用或禁用HTTP响应的压缩。要压缩的默认mime类型列表为: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
。default: is disabled
注意: Brotli在Safari <11中不起作用。有关更多信息,请参见https://caniuse.com/#feat=brotli
设置将使用的Brotli压缩级别。default: 4
设置将由brotli即时压缩的MIME类型。 default: 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
在安全连接中启用或禁用HTTP / 2支持。
设置将使用的gzip压缩级别。 default: 1
可以进行gzip压缩之前返回给客户端的响应的最小长度(以字节为单位)。 default: 256
设置除“ text / html”以外的MIME类型以进行压缩。特殊值“ *”与任何MIME类型匹配。如果use-gzip
启用,则始终压缩“ text / html”类型的响应。 default: 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
.
设置工作进程数。默认值“ auto”表示可用的CPU内核数。
将工作进程绑定到CPU组。worker_cpu_affinity。默认情况下,辅助进程未绑定到任何特定的CPU。该值可以是:
0001 0010 0100 1000
,将进程绑定到特定的cpus。设置Nginx等待工作者正常关闭的超时时间 default: "240s"
设置用于负载平衡的算法。该值可以是:
默认值为round_robin
。
nginx.ingress.kubernetes.io/upstream-hash-by
注释。nginx.ingress.kubernetes.io/affinity
注释。参考: http : //nginx.org/en/docs/http/load_balancing.html
设置变量哈希表的存储桶大小。
参考: 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_max_size
激活缓存以连接到上游服务器。connections参数设置每个工作进程的高速缓存中保留的与上游服务器的空闲保持连接的最大数量。超过此数量时,将关闭最近最少使用的连接。 default: 320
参考: http : //nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive
设置一个超时,在此超时期间,与上游服务器的空闲keepalive连接将保持打开状态。default: 60
References: http://nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive_timeout
设置通过一个keepalive连接可以处理的最大请求数。达到最大请求数后,连接将关闭。 default: 10000
参考: http : //nginx.org/en/docs/http/ngx_http_upstream_module.html#keepalive_requests
设置共享内存区域的参数,该参数将保持limit_conn_zone的各个键的状态。变量“ $ binary_remote_addr”的默认大小始终为4字节(对于IPv4地址)或16字节(对于IPv6地址)。
设置客户端或代理服务器连接上两次连续的读取或写入操作之间的超时。如果在此时间内没有数据传输,则连接将关闭。
参考: 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_next_upstream
限制将连接传递到下一台服务器所允许的时间。0值关闭此限制。
参考: http : //nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_next_upstream_timeout
限制将请求传递到下一个服务器的可能尝试次数。0值关闭此限制。
参考: http : //nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_next_upstream_tries
如果使用UDP协议,则设置代理服务器响应客户端请求而期望的数据报数。
参考: http : //nginx.org/en/docs/stream/ngx_stream_proxy_module.html#proxy_responses
设置服务器将接受请求而不是*的地址。应当注意,这些地址必须存在于运行时环境中,否则控制器将崩溃。
如果为true,NGINX将传入的X-Forwarded-*
标头传递给上游。当NGINX位于另一个正在设置这些标头的L7代理/负载平衡器之后时,请使用此选项。
如果为false,则NGINX将忽略传入的X-Forwarded-*
标头,并用看到的请求信息填充它们。如果NGINX直接暴露于Internet或位于基于L3 /数据包的负载均衡器之后,而该负载均衡器不会更改数据包中的源IP,请使用此选项。
enable-real-ip
启用http://nginx.org/en/docs/http/ngx_http_realip_module.html的配置。可以使用forwarded-for-header
和proxy-real-ip-cidr
设置进一步配置模块的特定属性。
设置标头字段,用于标识客户端的原始IP地址。 default: X-Forwarded-For
将远程地址附加到X-Forwarded-For标头,而不是替换它。启用此选项后,上游应用程序将根据自己的受信任代理列表提取客户端IP。
将具有原始请求URI的X-Original-Uri标头添加到后端请求
如果请求中不存在X-Request-ID,则确保X-Request-ID默认为随机值
启用nginx Opentracing扩展。default: is disabled
References: https://github.com/opentracing-contrib/nginx-opentracing
指定服务器范围的自定义名称。 default: is empty
例如,设置为"HTTP $request_method $uri".
指定位置范围的自定义名称。default: is empty
例如,设置为"HTTP $request_method $uri".
指定上载跟踪时要使用的主机。它必须是一个有效的URL。
指定上载跟踪时要使用的端口。 default: 9411
指定用于创建的任何跟踪的服务名称。default: nginx
指定创建的任何跟踪的采样率。default: 1.0
指定上载跟踪时要使用的主机。它必须是一个有效的URL。
指定上载跟踪时要使用的端口。default: 6831
指定用于创建的任何跟踪的服务名称。default: nginx
指定采样轨迹时要使用的采样器。可用的采样器有:const,概率,速率限制,远程。 default: const
指定要传递给采样器构造函数的参数。必须是数字。对于const,应为0(从不采样)和1(始终采样)。default: 1
指定要传递给采样器构造函数的自定义远程采样器主机。必须是有效的网址。保留空白以使用默认值(localhost)。 default: http://127.0.0.1
指定要传递给采样器构造函数的自定义远程采样器端口。必须是数字。default: 5778
指定用于传递跟踪上下文的标头名称。 default: uber-trace-id
指定用于强制采样的标题名称。 default: jaeger-debug-id
指定没有根跨度时用于提交行李的标头名称。default: jaeger-baggage
指定用于传播行李的标题前缀。 default: uberctx-
指定上载跟踪时要使用的datadog代理主机。它必须是一个有效的URL。
指定上载跟踪时要使用的端口。 default: 8126
指定用于创建的任何跟踪的服务名称。 default: nginx
指定此跟踪所属的环境。default: prod
覆盖用于创建任何痕迹的操作名。default: nginx.handle
指定使用客户端采样。如果为true,则禁用客户端采样(因此忽略sample_rate
)并启用分布式优先级采样,其中基于用户分配的优先级和来自代理的配置的组合对跟踪进行采样。 default: true
指定创建的任何跟踪的采样率。只有当这是有效datadog-priority-sampling
的false
default: 1.0
将自定义配置添加到nginx配置的主要部分。
将自定义配置添加到nginx配置的http部分。
将自定义配置添加到nginx配置中的所有服务器。
将自定义配置添加到nginx配置中的所有位置。
您不能使用它来添加代理到Kubernetes容器的新位置,因为该片段无法访问Go模板功能。如果要添加自定义位置,则必须提供自己的nginx.tmpl。
启用应使用error_page指令传递哪些HTTP代码进行处理
设置至少一个代码还使得proxy_intercept_errors它们都需要处理error_page。
用法示例: custom-http-errors: 404,415
设置客户端请求正文的最大允许大小。参见NGINX client_max_body_size。
设置与代理服务器建立连接的超时。请注意,此超时通常不能超过75秒。
设置以秒为单位的超时时间,以从代理服务器读取响应。超时仅在两次连续的读取操作之间设置,而不用于传输整个响应。
以秒为单位设置将请求传输到代理服务器的超时时间。超时仅在两个连续的写操作之间设置,而不用于整个请求的传输。
设置用于读取从代理服务器接收到的响应的第一部分的缓冲区的编号。这部分通常包含一个小的响应头。
设置用于读取从代理服务器接收到的响应的第一部分的缓冲区的大小。这部分通常包含一个小的响应头。
设置应在代理服务器响应的“ Set-Cookie”标头字段的path属性中更改的文本。
设置应在代理服务器响应的“ Set-Cookie”标头字段的domain属性中更改的文本。
指定在哪种情况下将请求传递到下一个服务器。
限制可以将请求传递到下一台服务器的时间(以秒为单位)。
限制将请求传递到下一个服务器的可能尝试次数。
设置应在代理服务器响应的“位置”和“刷新”标头字段中更改的原始文本。 default: off
参考: http : //nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_redirect
启用或禁用客户端请求正文的缓冲。
如果服务器具有TLS证书(在Ingress规则中定义),则将重定向(301)的全局值设置为HTTPS。default: "true"
为每个server
块设置默认的白名单IP 。这可以由Ingress规则上的注释覆盖。参见ngx_http_access_module。
设置不应出现在NGINX访问日志中的URL列表。这对于类似/health
或health-check
使“复杂”读取日志的url很有用。 default: is empty
限制向客户端传输响应的速率。该速率以每秒字节数指定。零值禁用速率限制。该限制是根据请求设置的,因此,如果客户端同时打开两个连接,则总速率将是指定限制的两倍。
参考: http : //nginx.org/en/docs/http/ngx_http_core_module.html#limit_rate
设置初始数量,之后将进一步限制对客户端的响应的进一步传输。
自定义默认的Lua共享字典或定义更多。您可以使用以下语法来这样做:
lua-shared-dicts: ": , [: ], ..."
例如,以下将默认certificate_data
字典设置为100M
,并引入了一个新字典,名为 my_custom_plugin
:
lua-shared-dicts: "certificate_data: 100, my_custom_plugin: 5"
参考: http : //nginx.org/en/docs/http/ngx_http_core_module.html#limit_rate_after
设置要在重定向中使用的HTTP状态代码。支持代码301,302,307和308 default: 308
为什么默认代码是308?
创建RFC 7238是为了定义308(永久重定向)状态代码,该状态代码类似于301(永久移动),但它将有效负载保留在重定向中。如果我们以POST之类的方法发送重定向,这一点很重要。
启用或禁用代理服务器响应的缓冲。
设置状态代码以响应被拒绝的请求而返回。 default: 503
设置状态代码以响应拒绝的连接而返回。 default: 503
以逗号分隔的位置列表,在这些位置上,http请求永远不会重定向到其https副本。default: "/.well-known/acme-challenge"
nginx.ingress.kubernetes.io/auth-url
。可以使用no-auth-locations
See no-auth-locations列出不应该通过身份验证的位置。另外,可以通过enable-global-auth
设置为“ false”的注释将每个服务从身份验证中排除。 default: ""
参考文献: https : //github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md#external-authentication
一种用于现有服务的HTTP方法,该服务为所有位置提供身份验证。类似于Ingress规则注释nginx.ingress.kubernetes.io/auth-method
。default: ""
为现有服务设置错误页面的位置,该服务为所有位置提供身份验证。类似于Ingress规则注释nginx.ingress.kubernetes.io/auth-signin
。 default: ""
在错误页面登录URL中设置查询参数,该URL包含身份验证失败的请求的原始URL。类似于Ingress规则注释nginx.ingress.kubernetes.io/auth-signin-redirect-param
。 default: "rd"
将头设置为在身份验证请求完成后传递到后端。应用于所有位置。类似于Ingress规则注释nginx.ingress.kubernetes.io/auth-response-headers
。default: ""
设置X-Auth-Request-Redirect标头值。应用于所有位置。类似于Ingress规则注释nginx.ingress.kubernetes.io/auth-request-redirect
。default: ""
设置自定义代码段以与外部身份验证一起使用。应用于所有位置。类似于Ingress规则注释nginx.ingress.kubernetes.io/auth-request-redirect
。 default: ""
为全局身份验证请求启用缓存。指定用于身份验证响应的查找键,例如$remote_user$http_authorization
。
根据验证响应的响应代码(例如)设置缓存时间200 202 30m
。有关详细信息,请参见proxy_cache_valid。您可以指定多个逗号分隔的值:200 202 10m, 401 5m
。默认为200 202 401 5m
。
以逗号分隔的不应该通过身份验证的位置列表。 default: "/.well-known/acme-challenge"
以逗号分隔的IP地址(或子网)列表,必须全局阻止来自该IP地址(或子网)的请求。
参考: http : //nginx.org/en/docs/http/ngx_http_access_module.html#deny
以逗号分隔的User-Agent列表,必须全局阻止来自该列表的请求。在这里可以使用完整的字符串和正则表达式。有关有效模式的更多详细信息,可以在map
Nginx指令文档中找到。
参考: http : //nginx.org/en/docs/http/ngx_http_map_module.html#map
以逗号分隔的“引荐来源”列表,必须全局阻止来自其的请求。在这里可以使用完整的字符串和正则表达式。有关有效模式的更多详细信息,可以在map
Nginx指令文档中找到。
参考: http : //nginx.org/en/docs/http/ngx_http_map_module.html#map
设置是否将proxy-ssl参数仅应用于位置而不应用于服务器。default: is disabled
设置响应的默认MIME类型。default: text/html
参考: http : //nginx.org/en/docs/http/ngx_http_core_module.html#default_type
参考配置
apiVersion: v1
kind: ConfigMap
data:
allow-backend-server-header: "true"
compute-full-forwarded-for: "true"
enable-brotli: "true"
enable-modsecurity: "true"
enable-ocsp: "true"
enable-owasp-modsecurity-crs: "true"
enable-underscores-in-headers: "true"
generate-request-id: "true"
hsts-preload: "true"
ignore-invalid-headers: "true"
keep-alive-requests: "10000"
log-format-upstream: $remote_addr - [$proxy_add_x_forwarded_for] - $remote_user
[$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"
$request_length $request_time [$proxy_upstream_name] $upstream_addr $upstream_response_length
$upstream_response_time $upstream_status $req_id $host [$proxy_alternative_upstream_name]
max-worker-connections: "65535"
proxy-body-size: 20m
proxy-connect-timeout: "1"
proxy-read-timeout: "3"
proxy-send-timeout: "3"
reuse-port: "true"
server-tokens: "false"
ssl-protocols: TLSv1.2 TLSv1.3
ssl-redirect: "false"
ssl-session-cache: "true"
ssl-session-cache-size: 5m
ssl-session-ticket-key: yAl9Gs5LFBlfiWqmdCLVQCt7KVMXbYuYVOHhT1PD9w5OQWIFQ2SwsKhNBJ5FhninuR3tX6CpSDe2tnQOExJ2JCmvwSLfPUWL0PDeRJpEnJ0=
ssl-session-tickets: "true"
ssl-session-timeout: 60m
upstream-keepalive-connections: "200"
upstream-keepalive-requests: "10000"
upstream-keepalive-timeout: "100"
use-forwarded-headers: "true"
worker-cpu-affinity: auto
worker-processes: auto