티스토리 뷰
본 포스팅에서는 Kubernetes 기반 Nginx Ingress Proxy를 사용할 경우 발생할 수 있는 Request Entity Too Large Response 이슈에 대한 해결 방안을 제시한다.
<기반 환경>
Infra : Private Cloud (OpenStack)
PaaS : Kubernetes
Ingress Controller : Nginx Proxy
Web Server : Apahce Httpd
Application Server : Wildfly17
<장애 발생>
Kubernetes 기반의 Application Pod에 10MB 이상의 파일을 전송할 경우 Request Entity Too Large Response 응답이 발생하며, 파일 업로드가 이루어 지지않는 현상
<장애 추적>
파일 업로드 제한에 대한 각 구간 별 진단 수행
1. Kubernetes 유입 지점인 Nginx Proxy의 body_size 확인
2. Apache Httpd의 body_size 확인
3. WildFly의 bode_size 확인
<장애 해결>
각 구간 별 파일 업로드 용량 제한을 확인해 보니 다음과 같았다.
- Nginx Proxy : proxy_body_size 10MB
- Apache Httpd : LimitRequestBody 0 (unlimited)
- WildFly : max-post-size 10MB
파일 업로드는 1차로 Kubernetes Ingress인 Nginx Proxy에서 Request Entity Too Large를 발생 시켰을 것이라 의심된다.
따라서 아래와 같이 proxy_body_size를 annotation으로 적용한다.
apiVersion: extentions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/proxy_body_size: 1024M
위와 같이 annotation으로 kubernetes ingress를 edit하면 ingress proxy에 반영할 수 있다.
'④ 미들웨어' 카테고리의 다른 글
캐싱 장비 및 기술 (CDN, Redis, Memcached) (0) | 2020.05.06 |
---|---|
Network 장비 및 기술 (Web Application Firewall, Web Accelerator, Switch) (0) | 2020.05.05 |
[JDK] OpenJDK 다운로드 (0) | 2019.01.13 |
Kernel Parameter (TCP Parameter 정복하기) (0) | 2019.01.13 |
[WEB Server] TCP 권고 Parameter (0) | 2019.01.13 |
- Total
- Today
- Yesterday
- aws
- API Gateway
- JEUS6
- TA
- 마이크로서비스
- SWA
- apache
- jeus
- JEUS7
- Da
- Docker
- 오픈스택
- OpenStack
- aa
- git
- Architecture
- nodejs
- node.js
- wildfly
- 아키텍처
- JBoss
- openstack tenant
- kubernetes
- 쿠버네티스
- MSA
- k8s
- SA
- openstack token issue
- 마이크로서비스 아키텍처
- webtob
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |