홈 › 웹 서버 › 06 / 8

nginx 리버스 프록시

섹션 7진행 0 / 8

6. 연습 문제

문제 1. upstream 과 keepalive

127.0.0.1:8080 과 127.0.0.1:8081(백업)을 묶고 연결 32개를 유지하는 upstream 블록을 쓰세요.

nginx
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 요청은 어느 블록이 처리하나요?

text
location ^~ /static/ 가 처리합니다.
접두사 일치 중 가장 길고, ^~ 는 정규식 검사도 건너뛰기 때문입니다.
문제 3. proxy_pass 슬래시로 경로 맞추기

백엔드가 / 루트로 배포돼 있고 nginx 는 /api/ 로 받습니다. /api/orders 요청이 백엔드에 /orders 로 가도록 location·proxy_pass 를 쓰세요.

nginx
location /api/ {
    proxy_pass http://app_backend/;
}
문제 4. 업로드 413 해결

10MB 파일 업로드가 413 으로 실패합니다. 20MB 까지 허용하려면 무엇을 바꾸나요?

nginx
client_max_body_size 20m;

server 또는 해당 location 블록 안에 넣고 nginx -t 뒤 reload 합니다.

문제 5. 웹소켓 연결 끊김 해결

/ws/ 경로 웹소켓 연결이 몇 초 만에 끊깁니다. 어떤 세 줄이 빠졌을지 쓰세요.

nginx
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";