Nginx 란 무엇인가?

Reverse Proxy, Load Balancer, HTTP 캐시 서버 등으로 다양한 네트워크 역할을 수행하는 소프트웨어다!
백엔드 개발에서는 특히, 클라이언트와 Spring Boot 사이 중간 계층 역할로 사용된다
Reverse Proxy 란?
클라이언트 요청을 받아 실제 백엔드 서버로 대신 전달하는 서버다!
Client → Nginx → Spring Boot 구조
Reverse Proxy를 사용하는 이유
- 백엔드 서버의 직접 노출을 방지하고, 포트를 숨긴다 (ex. 8080 → 80)
- 여러 서버로 요청 분산이 가능하다 (로드밸런싱)
- 정적 파일 처리와 캐싱 가능
- HTTPS 설정 간소화 가능
Nginx 동작 방식
Nginx는 요청이 들어오면 다음과 같은 순서로 처리한다.
- 클라이언트 요청 수신 (80/443 포트)
- 요청 URL 분석
- 설정 파일 (nginx.conf)에 따라 처리 방식을 결정
- 필요 시 백엔드 서버로 전달한다 (proxy_pass)
Nginx 사용 시 자주 발생하는 문제
- 502 Bad Gateway
: 백엔드 서버가 죽었거나, 포트가 불일치 되는 등의 경우다.
- 404 / 403
: location 설정 or root 경로 문제 등의 경우다.
- 정적 파일 안불러와짐
: 경로 설정에 오류가 있거나, static 파일 위치의 문제
- 설정 적용 안됨
sudo nginx -s reload
위 명령어를 실행하지 않으면 설정 반영이 안된다!!
Nginx 주요 파일
- /etc/nginx/nginx.conf → 메인 설정
- /etc/nginx/sites-available/ → 설정 파일
- /etc/nginx/sites-enabled/ → 활성화된 설정