Traefik Kubernetes Ingress NGINX 라우팅 구성
본문
Traefik & NGINX 주석을 사용한 Ingress
NGINX 주석 호환성을 통해 NGINX Ingress Controller에서 Traefik으로 매끄럽게 마이그레이션할 수 있어요.
NGINX Ingress Controller 은퇴
Kubernetes NGINX Ingress Controller 프로젝트는 2026년 3월 은퇴를 발표했으며 더 이상 업데이트나 보안 패치를 받지 않을 예정이에요. Traefik은 NGINX 주석을 지원해 모든 Ingress 구성을 다시 작성하지 않고도 워크로드를 전환할 수 있는 마이그레이션 경로를 제공해요.
→ 단계별 지침은 NGINX to Traefik 마이그레이션 가이드를 참고하세요.
NGINX Ingress Controller 은퇴에 대한 자세한 내용은 공식 Kubernetes 블로그 공지를 참고하세요.
Ingress 발견
이 프로바이더는 기본적으로 클러스터의 모든 Ingress를 발견하며, 표준 Kubernetes Ingress 프로바이더도 함께 사용 중이라면 중복 라우터가 생길 수 있어요.
모범 사례:
-
IngressClass를 사용해 이 프로바이더가 처리해야 할 Ingress를 지정하세요
-
단일 네임스페이스로 발견을 제한하려면 watchNamespace를 구성하세요
-
네임스페이스 라벨을 기반으로 Ingress를 대상으로 하려면 watchNamespaceSelector를 사용하세요
라우팅 구성
이 프로바이더는 들어오는 Ingress 이벤트를 감시하고 NGINX 주석을 Traefik의 동적 구성으로 자동 변환하여, 트래픽을 처리하는 데 필요한 해당 라우터, 서비스, 미들웨어 및 기타 구성 요소를 만들어요.
ConfigMap 구성과 기본 동작
라우팅 주석은 프로바이더 레벨 기본값보다 우선하지만, NGINX Ingress Controller의 ConfigMap 구성이 전역으로 처리할 모든 동작을 제어하지는 않아요.
기본 동작의 중요한 차이점:
- 요청 버퍼링: NGINX는 기본적으로 proxy-request-buffering 을 활성화하지만, Traefik은 프로바이더의 proxyRequestBuffering 옵션을 통해 명시적으로 선택해야 해요.
마이그레이션 중 일관된 동작을 보장하려면 현재 NGINX ConfigMap 설정과 일치하도록 Traefik의 프로바이더 레벨 옵션을 검토하고 구성하세요. 사용 가능한 설정은 프로바이더 구성 옵션을 참고하세요.
설정 예시
Kubernetes Ingress NGINX Controller 구성하기
RBAC
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: traefik-ingress-controller
rules:
- apiGroups:
- ""
resources:
- namespaces
verbs:
- get
- apiGroups:
- ""
resources:
- configmaps
- pods
- secrets
- endpoints
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- services
verbs:
- get
- list
- watch
- apiGroups:
- networking.k8s.io
resources:
- ingresses
verbs:
- get
- list
- watch
- apiGroups:
- networking.k8s.io
resources:
- ingresses/status
verbs:
- update
- apiGroups:
- networking.k8s.io
resources:
- ingressclasses
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- events
verbs:
- create
- patch
- apiGroups:
- discovery.k8s.io
resources:
- endpointslices
verbs:
- list
- watch
- get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: traefik-ingress-controller
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: traefik-ingress-controller
subjects:
- kind: ServiceAccount
name: traefik-ingress-controller
namespace: default
Traefik
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: traefik-ingress-controller
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: traefik
labels:
app: traefik
spec:
replicas: 1
selector:
matchLabels:
app: traefik
template:
metadata:
labels:
app: traefik
spec:
serviceAccountName: traefik-ingress-controller
containers:
- name: traefik
image: traefik:v3.7
args:
- --entryPoints.web.address=:80
- --providers.kubernetesingressnginx
ports:
- name: web
containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: traefik
spec:
type: LoadBalancer
selector:
app: traefik
ports:
- name: web
port: 80
targetPort: 80
Whoami
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: whoami
labels:
app: whoami
spec:
replicas: 2
selector:
matchLabels:
app: whoami
template:
metadata:
labels:
app: whoami
spec:
containers:
- name: whoami
image: traefik/whoami
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: whoami
spec:
selector:
app: whoami
ports:
- name: http
port: 80
Ingress
---
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
name: nginx
spec:
controller: k8s.io/ingress-nginx
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: myingress
spec:
ingressClassName: nginx
rules:
- host: whoami.localhost
http:
paths:
- path: /bar
pathType: Exact
backend:
service:
name: whoami
port:
number: 80
- path: /foo
pathType: Exact
backend:
service:
name: whoami
port:
number: 80
주석 지원
이 섹션은 알려진 모든 NGINX Ingress 주석을 나열해요. 다음 주석들은 탐색하기 쉽도록 범주별로 정리되어 있어요.
인증
| Annotation | Limitations / Notes |
| nginx.ingress.kubernetes.io/auth-type | |
| nginx.ingress.kubernetes.io/auth-secret | |
| nginx.ingress.kubernetes.io/auth-secret-type | |
| nginx.ingress.kubernetes.io/auth-realm | |
| nginx.ingress.kubernetes.io/auth-url | URL과 응답 헤더 복사만 지원해요. Forward auth는 NGINX와 다르게 동작해요. 같은 Ingress에서 rewrite-target (또는 configuration-snippet/auth-snippet 의 rewrite 지시어)과 결합하면 인증 서비스로 보내지는 X-Forwarded-Uri 헤더는 원래 클라이언트 요청 경로가 아니라 다시 작성된 경로를 반영해요. 다음 NGINX 변수를 사용해 최소한의 변수 보간을 지원해요: $scheme, $host, $http_*, $hostname, $request_uri, $request_method, $query_string, $args, $arg_*, $remote_addr, $uri, $document_uri, $server_name, $server_port, $content_type, $content_length, $cookie_*, $is_args, $best_http_host, $escaped_request_uri, $proxy_add_x_forwarded_for. |
| nginx.ingress.kubernetes.io/auth-signin | 401 응답 시 로그인(signin) URL로 리다이렉트해요. 다음 NGINX 변수를 사용해 최소한의 변수 보간을 지원해요: $scheme, $host, $http_*, $hostname, $request_uri, $request_method, $query_string, $args, $arg_*, $remote_addr, $uri, $document_uri, $server_name, $server_port, $content_type, $content_length, $cookie_*, $is_args, $best_http_host, $escaped_request_uri, $proxy_add_x_forwarded_for. ingress-nginx와 마찬가지로 Traefik은 로그인 후 인증 서비스가 다시 리다이렉트할 수 있도록 rd=$scheme://$best_http_host$escaped_request_uri 를 자동으로 추가해요. 비활성화하려면 빈 rd 를 전달하세요. Host 매처가 없는 경로에서는 요청의 Host 헤더가 보간에 사용되어 오픈 리다이렉트에 악용될 수 있어요. 이 동작에 의존할 때는 Host 규칙으로 라우터를 스코프하는 것이 강력히 권장돼요. |
| nginx.ingress.kubernetes.io/auth-snippet | 지원 지시어: proxy_method, more_set_headers, proxy_set_header, more_set_input_headers, set, if, return code [text]. 다음 NGINX 변수를 사용해 최소한의 변수 보간을 지원해요: $scheme, $host, $http_*, $hostname, $request_uri, $request_method, $query_string, $args, $arg_*, $remote_addr, $uri, $document_uri, $server_name, $server_port, $content_type, $content_length, $cookie_*, $is_args, $best_http_host, $escaped_request_uri, $proxy_add_x_forwarded_for. |
| nginx.ingress.kubernetes.io/auth-method | 이 주석은 Nginx에서 proxy_method 지시어를 사용해요. 따라서 이미 proxy_method 지시어가 있는 auth-snippet 주석이 있는 ingress에는 정의할 수 없어요. |
| nginx.ingress.kubernetes.io/auth-response-headers | |
| nginx.ingress.kubernetes.io/enable-global-auth | |
SSL/TLS
| Annotation | Limitations / Notes |
| nginx.ingress.kubernetes.io/ssl-redirect | 전역으로 활성화되면 경로별로 선택 해제할 수 없어요. |
| nginx.ingress.kubernetes.io/force-ssl-redirect | 전역으로 활성화되면 경로별로 선택 해제할 수 없어요. |
| nginx.ingress.kubernetes.io/ssl-passthrough | SNI/기본 백엔드 처리에 약간의 차이가 있어요. |
| nginx.ingress.kubernetes.io/proxy-ssl-server-name | |
| nginx.ingress.kubernetes.io/proxy-ssl-name | |
| nginx.ingress.kubernetes.io/proxy-ssl-verify | |
| nginx.ingress.kubernetes.io/proxy-ssl-secret | |
| nginx.ingress.kubernetes.io/auth-tls-secret | 검증이 실패하면 400 Bad Request를 반환하는 대신 TLS 핸드셰이크 중에 거부가 발생해요. |
| nginx.ingress.kubernetes.io/auth-tls-verify-client | 검증이 실패하면 400 Bad Request를 반환하는 대신 TLS 핸드셰이크 중에 거부가 발생해요. |
| nginx.ingress.kubernetes.io/auth-tls-pass-certificate-to-upstream | |
| nginx.ingress.kubernetes.io/auth-tls-verify-depth | Go에는 구성 가능한 깊이 제한이 없어요. 얼마나 많은 중간 인증서가 포함되든 모든 유효한 체인을 수용해요. |
세션 선호도
| Annotation | Limitations / Notes |
| nginx.ingress.kubernetes.io/affinity | |
| nginx.ingress.kubernetes.io/affinity-mode | 지속(persistent) 모드만 지원되며 balanced 모드는 지원되지 않아요. |
| nginx.ingress.kubernetes.io/affinity-canary-behavior | 스티키 동작만 지원되며 레거시 동작은 지원되지 않아요. |
| nginx.ingress.kubernetes.io/session-cookie-name | |
| nginx.ingress.kubernetes.io/session-cookie-secure | |
| nginx.ingress.kubernetes.io/session-cookie-path | |
| nginx.ingress.kubernetes.io/session-cookie-domain | |
| nginx.ingress.kubernetes.io/session-cookie-samesite | |
| nginx.ingress.kubernetes.io/session-cookie-max-age | |
| nginx.ingress.kubernetes.io/session-cookie-expires | |
로드 밸런싱 & 백엔드
| Annotation | Limitations / Notes |
| nginx.ingress.kubernetes.io/load-balance | 구현되지 않았으며 조용히 무시돼요. |
| nginx.ingress.kubernetes.io/backend-protocol | FCGI와 AUTO_HTTP는 지원되지 않아요. |
| nginx.ingress.kubernetes.io/service-upstream | |
| nginx.ingress.kubernetes.io/upstream-hash-by | It supports minimal variable interpolation by using the following NGINX variables: $scheme, $host, $http_*, $hostname, $request_uri, $request_method, $query_string, $args, $arg_*, $remote_addr, $uri, $document_uri, $server_name, $server_port, $content_type, $content_length, $cookie_*, $is_args, $best_http_host, $escaped_request_uri, $proxy_add_x_forwarded_for. |
| nginx.ingress.kubernetes.io/upstream-vhost | NGINX 변수 보간을 지원해요. 요청 시 변수($scheme, $host, $http_*, $hostname, $request_uri, $request_method, $query_string, $args, $arg_*, $remote_addr, $uri, $document_uri, $server_name, $server_port, $content_type, $content_length, $cookie_*, $is_args, $best_http_host, $escaped_request_uri, $proxy_add_x_forwarded_for)와 프로바이더가 해석하는 위치별 변수($namespace, $ingress_name, $service_name, $service_port, $location_path)를 지원해요. NGINX 내부 변수 $proxy_upstream_name 은 사용할 수 없어요. |
| nginx.ingress.kubernetes.io/custom-headers | NGINX의 global-allowed-response-headers 구성과 유사한 헤더 화이트리스트는 지원되지 않아요. |
| nginx.ingress.kubernetes.io/default-backend | 기본 백엔드 서비스에 활성 엔드포인트가 없을 때 요청을 처리하는 데 사용되는 Ingress 리소스와 같은 네임스페이스의 대체 서비스를 지정해요. 지정된 서비스가 여러 포트를 노출하면 첫 번째 포트가 트래픽을 받아요. |
| nginx.ingress.kubernetes.io/proxy-http-version | 백엔드 통신의 HTTP 프로토콜 버전을 제어해요. 지원 값: "1.1" (백엔드로의 HTTP/2 비활성화). 값 "1.0" 은 지원되지 않으며 경고를 기록해요. |
| nginx.ingress.kubernetes.io/canary | |
| nginx.ingress.kubernetes.io/canary-by-header | |
| nginx.ingress.kubernetes.io/canary-by-header-value | |
| nginx.ingress.kubernetes.io/canary-by-header-pattern | |
| nginx.ingress.kubernetes.io/canary-by-cookie | |
| nginx.ingress.kubernetes.io/canary-weight | |
| nginx.ingress.kubernetes.io/canary-weight-total | |
| nginx.ingress.kubernetes.io/x-forwarded-prefix | |
CORS
| Annotation | Limitations / Notes |
| nginx.ingress.kubernetes.io/enable-cors | 부분 지원이에요. |
| nginx.ingress.kubernetes.io/cors-allow-credentials | |
| nginx.ingress.kubernetes.io/cors-allow-headers | |
| nginx.ingress.kubernetes.io/cors-allow-methods | |
| nginx.ingress.kubernetes.io/cors-allow-origin | protocol://*.domain[:port] 형식의 단일 레벨 와일드카드 origin이 지원되며, 여기서 * 는 정확히 하나의 DNS 레이블과 일치해요. ingress-nginx와 마찬가지로 다른 위치의 와일드카드는 무시돼요. |
| nginx.ingress.kubernetes.io/cors-expose-headers | |
| nginx.ingress.kubernetes.io/cors-max-age | |
라우팅
| Annotation | Limitations / Notes |
| nginx.ingress.kubernetes.io/app-root | |
| nginx.ingress.kubernetes.io/from-to-www-redirect | 와일드카드 호스트를 지원하지 않아요. |
| nginx.ingress.kubernetes.io/use-regex | |
| nginx.ingress.kubernetes.io/rewrite-target | 같은 Ingress에서 auth-url/auth-snippet 과 결합하면 다운스트림 미들웨어(ForwardAuth 요청 포함)는 원래 요청 경로가 아니라 다시 작성된 경로를 보게 돼요. |
| nginx.ingress.kubernetes.io/permanent-redirect | 기본적으로 301 Moved Permanently 상태 코드를 사용해요. |
| nginx.ingress.kubernetes.io/permanent-redirect-code | 유효한 3XX HTTP 상태 코드만 허용돼요. |
| nginx.ingress.kubernetes.io/temporal-redirect | permanent-redirect 주석보다 우선해요. 기본적으로 302 Found 상태 코드를 사용해요. |
| nginx.ingress.kubernetes.io/temporal-redirect-code | 유효한 3XX HTTP 상태 코드만 허용돼요. |
| nginx.ingress.kubernetes.io/custom-http-errors | 오류 페이지 백엔드가 가로채서 제공해야 하는 HTTP 상태 코드의 쉼표로 구분된 목록을 지정해요. 이 상태 코드 중 하나가 발생하면 요청은 글로벌 기본 백엔드로 전달되거나, 지정된 경우 default-backend 주석에 정의된 백엔드로 전달돼요. |
| nginx.ingress.kubernetes.io/server-alias | 별칭이 기존 Ingress Host 규칙과 충돌하면 무시돼요. Ingress Host 규칙이 항상 우선해요. |
| nginx.ingress.kubernetes.io/server-snippet | 지원 지시어: add_header, location,proxy_method, more_set_headers, proxy_set_header, more_set_input_headers, set, if, return code [text]. 다음 NGINX 변수를 사용해 최소한의 변수 보간을 지원해요: $scheme, $host, $http_*, $hostname, $request_uri, $request_method, $query_string, $args, $arg_*, $remote_addr, $uri, $document_uri, $server_name, $server_port, $content_type, $content_length, $cookie_*, $is_args, $best_http_host, $escaped_request_uri, $proxy_add_x_forwarded_for. |
| nginx.ingress.kubernetes.io/configuration-snippet | 지원 지시어: add_header, proxy_method, more_set_headers,proxy_set_header, more_set_input_headers, set, if, return code [text]. 다음 NGINX 변수를 사용해 최소한의 변수 보간을 지원해요: $scheme, $host, $http_*, $hostname, $request_uri, $request_method, $query_string, $args, $arg_*, $remote_addr, $uri, $document_uri, $server_name, $server_port, $content_type, $content_length, $cookie_*, $is_args, $best_http_host, $escaped_request_uri, $proxy_add_x_forwarded_for. |
IP 화이트리스트
클라이언트 IP 전략
기본적으로 클라이언트 IP는 들어오는 요청의 원격 주소에서 결정돼요.
Traefik이 리버스 프록시 뒤에 있을 때는 실제 클라이언트 IP가 대신 X-Forwarded-For 헤더에 있는 경우가 많아요.
이는 프로바이더 옵션 ipAllowListStrategy 를 사용해 전역으로 구성할 수 있어요.
| Annotation | Limitations / Notes |
| nginx.ingress.kubernetes.io/whitelist-source-range | |
| nginx.ingress.kubernetes.io/allowlist-source-range | |
속도 제한
| Annotation | Limitations / Notes |
| nginx.ingress.kubernetes.io/limit-rps | 한도를 초과하면 NGINX의 기본 503 Service Unavailable 대신 429 Too Many Requests 가 반환돼요. |
| nginx.ingress.kubernetes.io/limit-rpm | 한도를 초과하면 NGINX의 기본 503 Service Unavailable 대신 429 Too Many Requests 가 반환돼요. |
| nginx.ingress.kubernetes.io/limit-burst-multiplier | Default to a multiplier of 5 if the configured value is less than 1. 한도를 초과하면 NGINX의 기본 503 Service Unavailable 대신 429 Too Many Requests 가 반환돼요. |
| nginx.ingress.kubernetes.io/limit-connections | 한도를 초과하면 NGINX의 기본 503 Service Unavailable 대신 429 Too Many Requests 가 반환돼요. The concurrent connection limit is evaluated per client IP address. Values less than or equal to 0 are safely ignored. |
버퍼링
| Annotation | Limitations / Notes |
| nginx.ingress.kubernetes.io/proxy-request-buffering | |
| nginx.ingress.kubernetes.io/proxy-body-size | |
| nginx.ingress.kubernetes.io/client-body-buffer-size | |
| nginx.ingress.kubernetes.io/proxy-buffering | |
| nginx.ingress.kubernetes.io/proxy-buffer-size | |
| nginx.ingress.kubernetes.io/proxy-buffers-number | Traefik에서는 proxy-buffers-number 가 실제로 단일 버퍼의 크기(size * number)를 계산하는 데 사용돼요. |
| nginx.ingress.kubernetes.io/proxy-max-temp-file-size | |
관측성
| Annotation | Limitations / Notes |
| nginx.ingress.kubernetes.io/enable-access-log | 이 주석이 적용되려면 먼저 설치 구성(전역 또는 엔트리 포인트별)에서 액세스 로그를 활성화해야 해요. 액세스 로그가 활성화되면 이 주석을 "false" 로 설정해 특정 Ingress를 선택 해제할 수 있어요. 반대로 엔트리 포인트에서 액세스 로그가 비활성화되면 이 주석을 "true" 로 설정해 특정 Ingress를 선택할 수 있어요. |
타임아웃
| Annotation | Limitations / Notes |
| nginx.ingress.kubernetes.io/proxy-connect-timeout | 타임아웃은 프로바이더 레벨에서 proxyConnectTimeout 옵션으로 전역 정의할 수 있어요. |
| nginx.ingress.kubernetes.io/proxy-send-timeout | 타임아웃은 프로바이더 레벨에서 proxySendTimeout 옵션으로 전역 정의할 수 있어요. |
| nginx.ingress.kubernetes.io/proxy-read-timeout | 타임아웃은 프로바이더 레벨에서 proxyReadTimeout 옵션으로 전역 정의할 수 있어요. |
재시도
| Annotation | Limitations / Notes |
| nginx.ingress.kubernetes.io/proxy-next-upstream | NGINX와 달리 Traefik은 재시도가 다른 서버로 전송되는 것을 보장하지 않아요. error 와 timeout 사이에 차이가 없으며 둘 다 TCP 레벨 실패로 처리돼요. 이 구성은 프로바이더 레벨에서 proxyNextUpstream 옵션으로 전역 정의할 수 있어요. |
| nginx.ingress.kubernetes.io/proxy-next-upstream-tries | 무한 재시도를 피하기 위해 무제한 재시도(0)는 사용 가능한 서버 수로 제한돼요. 이 값은 프로바이더 레벨에서 proxyNextUpstreamTries 옵션으로 전역 정의할 수 있어요. |
| nginx.ingress.kubernetes.io/proxy-next-upstream-timeout | 타임아웃은 프로바이더 레벨에서 proxyNextUpstreamTimeout 옵션으로 전역 정의할 수 있어요. |
제한 사항
주의 사항 및 주요 동작 차이
-
인증: Forward auth는 다르게 동작하며 세션 캐싱은 지원되지 않아요. NGINX는 하위 요청 기반 인증을 지원하지만, Traefik은 원래 요청을 전달해요.
-
세션 선호도: 지속(persistent) 모드만 지원돼요.
-
리더 선출: 지원되지 않아요. 리더 선출이 있는 클러스터 모드가 없어요.
-
로드 밸런싱: 라운드 로빈만 지원되며 EWMA와 IP 해시는 지원되지 않아요.
-
CORS: NGINX는 구성된 모든 헤더를 무조건 응답하지만, Traefik은 pre-flight 요청과 일반 요청을 다르게 처리해요.
-
TLS/백엔드 프로토콜: AUTO_HTTP, FCGI 및 일부 TLS 옵션은 Traefik에서 지원되지 않아요.
-
경로 처리: Traefik은 기본적으로 후행 슬래시를 보존하지만, NGINX는 달리 구성하지 않으면 제거해요.
-
재시도: NGINX는 다음 재시도를 다음 서버로 전달하는 것을 보장하지만, Traefik에서는 재시도가 같은 서버로 전달될 가능성이 있어요.
-
속도 제한: NGINX는 요청을 큐에 넣고 고정 속도로 처리하는 Leaky Bucket 알고리즘을 사용해요. 큐(버스트)가 가득 차면 초과 요청은 즉시 503으로 거부돼요. Traefik은 버킷이 버스트 토큰으로 가득 찬 상태로 시작하고, 각 요청이 토큰 하나를 소비하며, limit-rps 속도로 토큰이 다시 채워지는 Token Bucket 알고리즘을 사용해요. 버킷이 비면 요청은 더 많은 토큰을 사용할 수 있을 때까지 지연되거나, 지연이 너무 길면 429로 거부돼요. 실제로 Traefik은 폭주 부하에서 트래픽을 버리지 않고 부드럽게 처리하므로 조금 더 관대하지만, 정상 상태 처리량 상한은 비슷해요.
지원되지 않는 주석
더 많은 주석에 대한 지원을 추가하고 싶으신가요?
두 가지 방법으로 지원을 확장하는 데 도움을 줄 수 있어요:
-
새 주석 지원과 함께 PR을 열어 주세요.
-
Traefik Labs 지원 팀에 문의해 주세요.
모든 기여와 제안을 환영해요 — 함께 만들어 나가요!
| Annotation | Notes |
| nginx.ingress.kubernetes.io/auth-tls-error-page | |
| nginx.ingress.kubernetes.io/auth-tls-match-cn | |
| nginx.ingress.kubernetes.io/auth-cache-key | |
| nginx.ingress.kubernetes.io/auth-cache-duration | |
| nginx.ingress.kubernetes.io/auth-keepalive | |
| nginx.ingress.kubernetes.io/auth-keepalive-share-vars | |
| nginx.ingress.kubernetes.io/auth-keepalive-requests | |
| nginx.ingress.kubernetes.io/auth-keepalive-timeout | |
| nginx.ingress.kubernetes.io/auth-proxy-set-headers | |
| nginx.ingress.kubernetes.io/disable-proxy-intercept-errors | |
| nginx.ingress.kubernetes.io/limit-rate-after | |
| nginx.ingress.kubernetes.io/limit-rate | |
| nginx.ingress.kubernetes.io/limit-whitelist | |
| nginx.ingress.kubernetes.io/global-rate-limit | |
| nginx.ingress.kubernetes.io/global-rate-limit-window | |
| nginx.ingress.kubernetes.io/global-rate-limit-key | |
| nginx.ingress.kubernetes.io/global-rate-limit-ignored-cidrs | |
| nginx.ingress.kubernetes.io/preserve-trailing-slash | Traefik은 기본적으로 후행 슬래시를 보존해요. |
| nginx.ingress.kubernetes.io/proxy-cookie-domain | |
| nginx.ingress.kubernetes.io/proxy-cookie-path | |
| nginx.ingress.kubernetes.io/proxy-redirect-from | |
| nginx.ingress.kubernetes.io/proxy-redirect-to | |
| nginx.ingress.kubernetes.io/proxy-ssl-ciphers | |
| nginx.ingress.kubernetes.io/proxy-ssl-verify-depth | |
| nginx.ingress.kubernetes.io/proxy-ssl-protocols | |
| nginx.ingress.kubernetes.io/enable-rewrite-log | |
| nginx.ingress.kubernetes.io/satisfy | |
| nginx.ingress.kubernetes.io/session-cookie-conditional-samesite-none | |
| nginx.ingress.kubernetes.io/session-cookie-change-on-failure | |
| nginx.ingress.kubernetes.io/ssl-ciphers | |
| nginx.ingress.kubernetes.io/ssl-prefer-server-ciphers | |
| nginx.ingress.kubernetes.io/connection-proxy-header | |
| nginx.ingress.kubernetes.io/enable-opentracing | |
| nginx.ingress.kubernetes.io/opentracing-trust-incoming-span | |
| nginx.ingress.kubernetes.io/enable-opentelemetry | |
| nginx.ingress.kubernetes.io/opentelemetry-trust-incoming-span | |
| nginx.ingress.kubernetes.io/enable-modsecurity | |
| nginx.ingress.kubernetes.io/enable-owasp-core-rules | |
| nginx.ingress.kubernetes.io/modsecurity-transaction-id | |
| nginx.ingress.kubernetes.io/modsecurity-snippet | |
| nginx.ingress.kubernetes.io/mirror-request-body | |
| nginx.ingress.kubernetes.io/mirror-target | |
| nginx.ingress.kubernetes.io/mirror-host | |
| nginx.ingress.kubernetes.io/denylist-source-range | |
| nginx.ingress.kubernetes.io/stream-snippet | |
전역 구성
Traefik은 NGINX가 하는 것과 같은 방식으로 Ingress의 기본 동작을 제어하는 모든 전역 구성 옵션을 노출하지는 않아요.
NGINX에서 전역으로 구성 가능한 일부 동작(기본 SSL 리다이렉트, 속도 제한, 선호도 등)은 현재 지원되지 않으며 NGINX처럼 Ingress별로 재정의할 수 없어요. 이러한 제한은 해당하는 경우 아래 주석 표에 명시되어 있어요.