nginx 리버스 프록시
6. 연습 문제
문제 1. upstream 과 keepalive
127.0.0.1:8080 과 127.0.0.1:8081(백업)을 묶고 연결 32개를 유지하는 upstream 블록을 쓰세요.
upstream app_backend {
server 127.0.0.1:8080;
server 127.0.0.1:8081 backup;
keepalive 32;
}문제 2. location 우선순위 판단
location = /health, location ^~ /static/, location / 세 블록이 있을 때 /static/logo.png 요청은 어느 블록이 처리하나요?
location ^~ /static/ 가 처리합니다.
접두사 일치 중 가장 길고, ^~ 는 정규식 검사도 건너뛰기 때문입니다.문제 3. proxy_pass 슬래시로 경로 맞추기
백엔드가 / 루트로 배포돼 있고 nginx 는 /api/ 로 받습니다. /api/orders 요청이 백엔드에 /orders 로 가도록 location·proxy_pass 를 쓰세요.
location /api/ {
proxy_pass http://app_backend/;
}문제 4. 업로드 413 해결
10MB 파일 업로드가 413 으로 실패합니다. 20MB 까지 허용하려면 무엇을 바꾸나요?
client_max_body_size 20m;server 또는 해당 location 블록 안에 넣고 nginx -t 뒤 reload 합니다.
문제 5. 웹소켓 연결 끊김 해결
/ws/ 경로 웹소켓 연결이 몇 초 만에 끊깁니다. 어떤 세 줄이 빠졌을지 쓰세요.
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";