Nginx 리버스 프록시와 Cloudflare CDN 연동

2026. 02. 10 작성 · 트러블슈팅

1. 인프라 보안과 성능 최적화의 필요성

백엔드 개발을 진행하며 기능 구현만큼이나 중요한 것이 인프라의 안정성과 보안입니다. 현재 '벨로아' 서비스의 백엔드와 데이터베이스는 Oracle Cloud Infrastructure (OCI)의 Linux 인스턴스 위에서 동작하고 있습니다. 초기에는 Spring Boot의 내장 Tomcat 웹 서버를 8080 포트로 직접 개방하여 사용했으나, 이는 보안상 취약할 뿐만 아니라 정적 리소스 처리와 SSL(HTTPS) 적용에 있어 효율적이지 못했습니다. 따라서 앞단에 Nginx를 배치하고, 외부적으로는 Cloudflare를 연동하는 아키텍처를 구성하게 되었습니다.

2. Cloudflare 연동과 Strict SSL 모드 적용

사용자와 서버 사이의 통신을 암호화하고 디도스(DDoS) 공격으로부터 서버를 보호하기 위해 도메인의 네임서버를 Cloudflare로 이전했습니다. Cloudflare는 강력한 CDN(Content Delivery Network) 기능을 제공할 뿐만 아니라 무료로 범용 SSL 인증서를 발급해 줍니다.

보안 수준을 최고로 높이기 위해 Cloudflare의 SSL/TLS 암호화 모드를 '전체(엄격) - Full (Strict)' 모드로 설정했습니다. 이 모드는 클라이언트와 Cloudflare 간의 통신뿐만 아니라, Cloudflare와 오리진 서버(나의 OCI 서버) 간의 통신까지 모두 암호화할 것을 강제합니다. 이를 위해 서버 내부에도 Let's Encrypt를 활용하여 SSL 인증서를 발급받아 Nginx에 적용시켜 양단간 완벽한 보안 통신 채널을 구축했습니다.

3. Nginx 리버스 프록시(Reverse Proxy) 구성

OCI 서버 내부에서는 Nginx를 웹 서버이자 리버스 프록시로 동작하도록 설정했습니다. 클라이언트의 443(HTTPS) 포트 요청은 모두 Nginx가 받아들입니다. Nginx는 SSL 암복호화와 정적 파일(HTML, CSS, Image 등) 서빙을 전담하여 서버의 부하를 줄여줍니다. API 요청 등 동적 처리가 필요한 트래픽에 대해서만 proxy_pass 지시어를 사용하여 내부망의 http://localhost:8080 (Spring Boot)으로 포워딩하도록 라우팅 규칙을 작성했습니다. 이로 인해 Spring Boot 서버는 내부망에서만 동작하게 되어 외부의 직접적인 공격 표면(Attack Surface)에서 완전히 숨겨지게 되었습니다.

4. 잃어버린 클라이언트 IP 찾기: X-Forwarded-For

Cloudflare와 Nginx를 거치면서 한 가지 문제가 발생했습니다. Spring Boot 애플리케이션 로그에 찍히는 접속자 IP가 실제 사용자의 IP가 아닌 Nginx 혹은 Cloudflare의 프록시 IP로 기록되는 현상이었습니다. 서비스 운영 중 악성 유저 차단이나 통계 분석을 위해서는 실제 Client IP가 반드시 필요합니다.

이를 해결하기 위해 HTTP 헤더를 조작했습니다. Nginx 설정(nginx.conf)에서 proxy_set_header X-Forwarded-For $http_cf_connecting_ip; 설정을 추가하여, Cloudflare가 전달해 준 실제 사용자 IP(CF-Connecting-IP)를 다시 Spring Boot로 넘겨주도록 했습니다. 그리고 Spring Boot의 application.yml 파일에 server.tomcat.remote-ip-header: x-forwarded-for 설정을 활성화하여 애플리케이션 레벨에서 HttpServletRequest.getRemoteAddr() 호출 시 실제 IP를 정상적으로 획득할 수 있도록 파이프라인을 완성했습니다.

5. 결론

Cloudflare - Nginx - Spring Boot로 이어지는 3단 아키텍처를 구성함으로써, 단일 인스턴스 환경에서도 대규모 트래픽에 대비할 수 있는 캐싱, 완벽한 HTTPS 보안 적용, 그리고 백엔드 서버의 내부망 격리라는 세 마리 토끼를 모두 잡을 수 있었습니다. 서비스의 신뢰성을 높이는 든든한 인프라 기반이 완성되었습니다.