인프런 커뮤니티 질문&답변
스프링부트 서버에 proxy_pass 할 때 질문 있습니다
작성
·
61
·
수정됨
0
리버시 프록시 + 스프링 부트 서버에 HTTPS 적용할 때,
location 잡힌게
location / { proxy_pass http://localhost:8080; }
이런형태 길래 궁금한게
여기서 http:// 는 https://가 아니어도 상관없는건가요??
해당 설정은
[브라우저] ← HTTPS(SSL) → [Nginx] ← HTTP → [Spring Boot :8080]이거인거같은데 nginx에서 스프링 부트갈때도 https걸려야 하지않나 싶어 질문드립니다!
퀴즈
리버스 프록시 서버의 주요 역할은 무엇일까요?
내부 네트워크 사용자의 외부 인터넷 요청을 관리합니다.
외부에서 백엔드 서버로 들어오는 요청을 관리하거나 보호합니다.
자주 방문하는 웹사이트 데이터를 저장하여 빠르게 보여줍니다.
도메인 이름을 해당 서버의 IP 주소로 변환합니다.
답변 2
0
안녕하세요 태현님 ! 질문 너무 잘해주셨어요 !
질문해 주신 내용에 대해 답변드려볼게요 ~
결론부터 말씀드리면 Nginx에서 Spring Boot로 갈 때 http://를 사용해도 괜찮아요 !
말씀해주신 대로 [브라우저] ← HTTPS → [Nginx] ← HTTP → [Spring Boot :8080] 이 구조가 맞아요 !
이렇게 구성해도 되는 이유는 Nginx와 Spring Boot가 같은 EC2 서버 내부에서 통신하기 때문이에요 ~
외부 인터넷을 타지 않고 서버 내부(localhost)에서만 주고받는 트래픽이라 중간에 누군가가 패킷을 가로채는 것이 사실상 불가능해요 !
그래서 내부 통신은 HTTP로 처리하는 게 일반적인 구성이에요 !
HTTPS가 필요한 이유는 외부 네트워크를 통해 데이터가 오갈 때 도청이나 변조를 막기 위한 것인데, 이 역할을 Nginx가 앞단에서 이미 처리해주고 있는 거라고 이해하시면 돼요 :)
추가로 또 궁금하신 점 있으시면 언제든 추가 질문 남겨주세요~~
0
안녕하세요, 인프런 AI 인턴입니다. 태현님.
스프링부트 서버에 리버스 프록시 설정을 하실 때, Nginx에서 proxy_pass 부분에 대해 헷갈리실 수 있을 것 같습니다. proxy_pass의 경우, Nginx가 클라이언트로부터 온 요청을 주어진 URL로 전달하도록 설정하는 것입니다.
proxy_pass에서 HTTP와 HTTPS의 차이
proxy_pass 설정에서 http://와 https://의 차이는 주로 Nginx와 스프링부트 서버 간의 연결에서 발생합니다. 아래는 각 프로토콜의 차이점입니다:
HTTP 프로토콜 사용:
proxy_pass http://localhost:8080: Nginx와 스프링부트 서버 간의 요청은 HTTP 프로토콜로 전달됩니다. 이 경우 보안이 없는 일반 텍스트 형식으로 데이터가 전송됩니다.
- 이 설정은 내부 네트워크 또는 신뢰할 수 있는 환경에서 주로 사용됩니다.
HTTPS 프로토콜 사용:
proxy_pass https://localhost:8080: Nginx와 스프링부트 서버 간의 요청은 HTTPS 프로토콜로 전송되어 SSL/TLS 암호화가 적용됩니다.
- 보안을 강화하기 위해, 외부로부터의 접근이 있는 경우 HTTPS를 사용하는 것이 일반적입니다.
보통 네트워크 내부 통신에서는 http://를 사용해도 큰 문제가 되지 않지만, 외부 네트워크에서의 연결은 https://를 사용하는 것이 보안에 유리합니다.
추가로, Nginx 설정 시 사용자의 요청(외부 요청)은 이미 HTTPS로 받아서 Nginx까지 오고, Nginx부터 백엔드(스프링부트 서버)로의 통신을 설정하실 때에는 두 가지 옵션 중 하나를 선택하시면 됩니다.
관련하여 더 구체적인 설정 및 예제를 보시려면 아래 링크를 참고해 주세요:
- Nginx를 이용한 Reverse Proxy 설정법
- 스프링부트와 Nginx의 HTTPS 설정
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.




