ConfigMap#
ConfigMap позволяет настраивать поведение Angie.
Например, можно задать количество рабочих процессов или настроить формат журнала
доступа. Наши инструкции по установке с манифестами
развертывают пустой ConfigMap, в то время как манифесты установки по
умолчанию указывают ее в аргументах командной строки ANIC.
Однако, если вы настроили манифесты, чтобы использовать ConfigMap,
обязательно укажите ресурс ConfigMap для использования с помощью
аргументов командной строки ANIC. Создайте файл ConfigMap с именем См. в разделе Краткое описание ключей
ConfigMap сведения о доступных ключах
ConfigMap (таких как Создайте новый (или обновите существующий) ресурс ConfigMap: Конфигурация Angie будет обновлена. Аннотации позволяют настраивать расширенные функции Angie и менять
поведение Angie. ConfigMap применяется глобально, то есть влияет на каждый ресурс
Ingress. Напротив, аннотации всегда применяются только к своему ресурсу
Ingress. Аннотации позволяют переопределять некоторые ключи ConfigMap.
Например, в Вы можете применять разные конфигурации ConfigMap к Ingress-ресурсам в зависимости от того, какое пространство имен указано в конфигурации. Аннотация Чтобы применить конкретный ConfigMap к ресурсу Ingress: Создайте ConfigMap с указанием нужного пространства имен. Например: Укажите аннотацию Например: В этом примере аннотация См. также документацию по расширенной конфигурации с помощью аннотаций. ConfigMap влияет на все ресурсы VirtualServer и VirtualServerRoute.
Однако поля этих ресурсов позволяют переопределять некоторые ключи
ConfigMap. Например, поле См. документацию по ресурсам VirtualServer и
VirtualServerRoute. Примечание Для всех параметров типа Ключ ConfigMap Описание По умолчанию Пример Задает адрес, который будет отображаться в статусе ресурсов Ingress.
Требуется аргумент командной строки Н/Д Ключ ConfigMap Описание По умолчанию Пример Задает значение директив
proxy_connect_timeout
и
grpc_connect_timeout. Задает значение директив
proxy_read_timeout
и
grpc_read_timeout. Задает значение директив
proxy_send_timeout
и
grpc_send_timeout. Задает значение директивы
client_max_body_size. Включает или отключает буферизацию
ответов от
проксируемого сервера. Задает значение директивы
proxy_buffers. Зависит от платформы. Задает значение директив
proxy_buffer_size
и
grpc_buffer_size. Зависит от платформы. Задает значение директивы
proxy_max_temp_file_size. Задает значение директивы
set_real_ip_from. Н/Д Задает значение директивы
real_ip_header. Включает или отключает директиву
real_ip_recursive. Настраивает директиву return на сервере по умолчанию, которая
обрабатывает клиентский запрос, если ни один из узлов ресурсов Ingress
или VirtualServer не совпадает. Значение по умолчанию настраивает в Angie
возврат страницы с ошибкой 404. Вы можете настроить фиксированный ответ
или перенаправление. Например, значение Включает или отключает директиву
server_tokens. Задает значение директивы
worker_processes. Задает значение директивы
worker_rlimit_nofile. Н/Д Задает значение директивы
worker_connections. Задает значение директивы
worker_cpu_affinity. Н/Д Задает значение директивы
worker_shutdown_timeout. Н/Д Задает значение директивы
server_names_hash_bucket_size. Задает значение директивы
server_names_hash_max_size. Задает значение директивы
map_hash_bucket_size. Задает значение директивы
map_hash_max_size. Задает значение адресов resolver. Н/Д Включает разрешение IPv6 в распознавателе. Задает значение resolver_timeout для разрешения имен. Задает значение директивы
keepalive_timeout. Задает значение директивы
keepalive_requests. Задает значение директивы
variables_hash_bucket_size. Задает значение директивы
variables_hash_max_size. Ключ ConfigMap Описание По умолчанию Пример Задает глобальный уровень журнала
ошибок для Angie. Отключает журнал доступа. Отключает журнал доступа для
сервера по умолчанию. Если журнал доступа отключен глобально
( Задает настраиваемый формат журнала для HTTP- и
HTTPS-трафика. Для удобства можно определить формат журнала в нескольких
строках (строки разделяются символом Задает экранирующие символы для переменных формата журнала.
Поддерживаемые значения: Задает настраиваемый формат журнала <s_log_format> для сквозного
трафика TCP, UDP и TLS. Для удобства можно определить формат журнала в
нескольких строках (строки разделяются символом Задает экранирующие символы для переменных формата журнала потока.
Поддерживаемые значения: Ключ ConfigMap Описание По умолчанию Пример Задает значение одной директивы
proxy_hide_header
или нескольких. Н/Д Задает значение одной директивы
proxy_pass_header
или нескольких. Н/Д Ключ ConfigMap Описание По умолчанию Пример Задает правило перенаправления 301 на основе значения заголовка
Задает безусловное правило перенаправления 301 для всего входящего
HTTP-трафика, требуя, чтобы входящий трафик шел по протоколу HTTPS. Включает режим HTTP Strict Transport Security (HSTS): заголовок HSTS
добавляется к ответам от проксируемых серверов. Директива Задает значение директивы Добавляет директиву Включает HSTS на основе значения заголовка запроса
Примечание Чтобы управлять перенаправлением с HTTP на HTTPS,
настройте аннотацию Задает значение директивы ssl_protocols. Включает или отключает директиву ssl_prefer_server_ciphers. Задает значение директивы ssl_ciphers. Задает содержимое файла Н/Д Ключ ConfigMap Описание По умолчанию Пример Включает HTTP/2 на серверах с включенным SSL. Включает прокси-протокол для входящих соединений. Ключ ConfigMap Описание По умолчанию Пример Задает метод балансировки нагрузки. Чтобы использовать циклический
метод, укажите Задает значение параметра Задает размер зоны разделяемой памяти для апстримов. Задает значение параметра Задает значение директивы keepalive. Обратите внимание: если
значение больше 0, в сгенерированную конфигурацию добавляется
Ключ ConfigMap Описание По умолчанию Пример Задает пользовательский фрагмент в основном контексте. Н/Д Задает пользовательский фрагмент в контексте http. Н/Д Задает пользовательский фрагмент в контексте location. Н/Д Задает пользовательский фрагмент в контексте server. Н/Д Задает пользовательский фрагмент в контексте stream. Н/Д Задает основной шаблон конфигурации Angie. По умолчанию шаблон считывается из файла в контейнере. Задает шаблон конфигурации Angie для ресурса Ingress. По умолчанию шаблон считывается из файла в контейнере. Задает шаблон конфигурации Angie для ресурса VirtualServer. По умолчанию шаблон считывается из файла в контейнере.Использование ConfigMap#
angie-config.yaml
и установите
значения, которые имеют смысл для вашей среды:kind: ConfigMap
apiVersion: v1
metadata:
name: angie-config
namespace: angie-ingress
data:
proxy-connect-timeout: 10s
proxy-read-timeout: 10s
client-max-body-size: 2m
proxy-connect-timeout
в этом примере).kubectl apply -f angie-config.yaml
ConfigMap и аннотации Ingress#
angie.software/proxy-connect-timeout
аннотации
переопределяют ключ конфигурации proxy-connect-timeout
.Переопределение ConfigMap для конкретного ресурса Ingress с помощью аннотации#
angie.software/configmap
позволяет задать конкретный ConfigMap для настройки ресурса Ingress. Заданный ConfigMap будет иметь приоритет над глобальным. В случае, если глобальный и заданный ConfigMap совпадают, применится заданный.kind: ConfigMap
apiVersion: v1
metadata:
name: echoserver-new-config
namespace: echoserver-new
data:
server-snippets: |
location /echoserver-new-snippet {
return 302 /echo-test-2;
}
angie.software/configmap
в ресурсе Ingress, к которому нужно применить этот ConfigMap.apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
angie.software/configmap: "echoserver-new/echoserver-new-config"
name: echoserver-new
namespace: echoserver-new
spec:
ingressClassName: angie
rules:
- host: test-new.example.com
http:
paths:
- backend:
service:
name: echoserver-new
port:
number: 8077
pathType: ImplementationSpecific
angie.software/configmap
указывает на использование конфигурации из ConfigMap echoserver-new-config
. Это означает, что директивы, описанные в server-snippets
из этого ConfigMap, будут применяться к запросам, обрабатываемым этим Ingress.ConfigMap и ресурсы VirtualServer, VirtualServerRoute#
connect-timeout
сервера апстрима
имеет
приоритет над ключом ConfigMap proxy-connect-timeout
.Краткое описание ключей ConfigMap#
boolean
допустимы пары значений true
/ false
, t
/ f
, on
/ off
и 1
/ 0
. Регистр не имеет значения.ANIC (не связанные с конфигурацией Angie)#
external-status-address
-report-status
. Имеет приоритет
над аргументом -external-service
.Общая настройка#
proxy-connect-timeout
60s
proxy-read-timeout
60s
proxy-send-timeout
60s
client-max-body-size
1m
proxy-buffering
True
proxy-buffers
proxy-buffer-size
proxy-max-temp-file-size
1024m
set-real-ip-from
real-ip-header
X-Real-IP
real-ip-recursive
False
default-server-return
default-server-return: 302
https://mysite.ru:samp:` перенаправит клиент на `https://mysite.ru
.404
server-tokens
True
worker-processes
auto
worker-rlimit-nofile
worker-connections
1024
worker-cpu-affinity
worker-shutdown-timeout
server-names-hash-bucket-size
256
server-names-hash-max-size
1024
map-hash-bucket-size
256
map-hash-max-size
2048
resolver-addresses
resolver-ipv6
True
resolver-timeout
30s
keepalive-timeout
65s
keepalive-requests
100
variables-hash-bucket-size
256
variables-hash-max-size
1024
Ведение журнала#
error-log-level
notice
access-log-off
False
default-server-access-log-off
access-log-off: "True"
), то журнал доступа к серверу по умолчанию
всегда отключен.False
log-format
\n
). В этом случае ANIC заменит
каждый символ \n
символом пробела. Все символы '
должны быть
экранированы.log-format-escaping
json
(экранирование JSON), default
(экранирование по умолчанию), none
(отключает экранирование).default
stream-log-format
\n
). В этом случае
ANIC заменит каждый символ \n
символом пробела. Все символы '
должны быть экранированы.stream-log-format-escaping
json
(экранирование JSON), default
(экранирование по умолчанию), none
(отключает экранирование).default
Манипулирование URI и заголовками запроса#
proxy-hide-headers
"angie.software/proxy-hide-headers": "header-a,header-b"
proxy-pass-headers
"angie.software/proxy-pass-headers":
"header-a,header-b"
Аутентификация, SSL, TLS#
redirect-to-https
http_x_forwarded_proto
в серверном блоке, требуя, чтобы входящий
трафик шел по протоколу HTTPS. Полезно при терминации SSL в системе
балансировки нагрузки перед ANIC.False
ssl-redirect
True
hsts
preload
будет включена
в заголовок.False
hsts-max-age
max-age
заголовка HSTS.2592000
(1 месяц)hsts-include-subdomains
includeSubDomains
в заголовок HSTS.False
hsts-behind-proxy
http_x_forwarded_proto
. Следует использовать только в том случае,
если в балансировщике нагрузки (прокси-сервере) перед ANIC
настроена терминация TLS.angie.software/redirect-to-https
.False
ssl-protocols
TLSv1 TLSv1.1 TLSv1.2
ssl-prefer-server-ciphers
On
ssl-ciphers
HIGH:!aNULL:!MD5
ssl-dhparam-file
dhparam
. Контроллер создаст файл и установит
значение директивы ssl_dhparam с указанием пути к файлу.Прослушиватели#
http2
False
proxy-protocol
False
Бэкенд-сервисы (апстримы)#
lb-method
"round_robin"
."random two least_conn"
max-fails
max_fails
директивы
server.1
upstream-zone-size
fail-timeout
fail_timeout
директивы server.10s
keepalive
proxy_set_header Connection "";
.0
Фрагменты и пользовательские шаблоны#
main-snippets
http-snippets
location-snippets
server-snippets
stream-snippets
main-template
ingress-template
virtualserver-template