inflearn logo
강의

講義

知識共有

非専門家でも理解できるNginx入門/実践

[実習] IPごとのリクエスト数制限 💡

스프링부트 서버에 proxy_pass 할 때 질문 있습니다

71

slf4bw929149

投稿した質問数 2

0

리버시 프록시 + 스프링 부트 서버에 HTTPS 적용할 때,

location 잡힌게
location / { proxy_pass http://localhost:8080; }

이런형태 길래 궁금한게

여기서 http:// 는 https://가 아니어도 상관없는건가요??

해당 설정은
[브라우저] ← HTTPS(SSL) → [Nginx] ← HTTP → [Spring Boot :8080]이거인거같은데 nginx에서 스프링 부트갈때도 https걸려야 하지않나 싶어 질문드립니다!

aws nginx reverse-proxy infrastructure

回答 2

0

jscode

안녕하세요 태현님 ! 질문 너무 잘해주셨어요 !

질문해 주신 내용에 대해 답변드려볼게요 ~

결론부터 말씀드리면 Nginx에서 Spring Boot로 갈 때 http://를 사용해도 괜찮아요 !

말씀해주신 대로 [브라우저] ← HTTPS → [Nginx] ← HTTP → [Spring Boot :8080] 이 구조가 맞아요 !

이렇게 구성해도 되는 이유는 Nginx와 Spring Boot가 같은 EC2 서버 내부에서 통신하기 때문이에요 ~

외부 인터넷을 타지 않고 서버 내부(localhost)에서만 주고받는 트래픽이라 중간에 누군가가 패킷을 가로채는 것이 사실상 불가능해요 !

그래서 내부 통신은 HTTP로 처리하는 게 일반적인 구성이에요 !

HTTPS가 필요한 이유는 외부 네트워크를 통해 데이터가 오갈 때 도청이나 변조를 막기 위한 것인데, 이 역할을 Nginx가 앞단에서 이미 처리해주고 있는 거라고 이해하시면 돼요 :)

추가로 또 궁금하신 점 있으시면 언제든 추가 질문 남겨주세요~~

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 태현님.

스프링부트 서버에 리버스 프록시 설정을 하실 때, Nginx에서 proxy_pass 부분에 대해 헷갈리실 수 있을 것 같습니다. proxy_pass의 경우, Nginx가 클라이언트로부터 온 요청을 주어진 URL로 전달하도록 설정하는 것입니다.

proxy_pass에서 HTTP와 HTTPS의 차이

proxy_pass 설정에서 http://https://의 차이는 주로 Nginx와 스프링부트 서버 간의 연결에서 발생합니다. 아래는 각 프로토콜의 차이점입니다:

  1. HTTP 프로토콜 사용:

    • proxy_pass http://localhost:8080: Nginx와 스프링부트 서버 간의 요청은 HTTP 프로토콜로 전달됩니다. 이 경우 보안이 없는 일반 텍스트 형식으로 데이터가 전송됩니다.
    • 이 설정은 내부 네트워크 또는 신뢰할 수 있는 환경에서 주로 사용됩니다.
  2. HTTPS 프로토콜 사용:

    • proxy_pass https://localhost:8080: Nginx와 스프링부트 서버 간의 요청은 HTTPS 프로토콜로 전송되어 SSL/TLS 암호화가 적용됩니다.
    • 보안을 강화하기 위해, 외부로부터의 접근이 있는 경우 HTTPS를 사용하는 것이 일반적입니다.

보통 네트워크 내부 통신에서는 http://를 사용해도 큰 문제가 되지 않지만, 외부 네트워크에서의 연결은 https://를 사용하는 것이 보안에 유리합니다.

추가로, Nginx 설정 시 사용자의 요청(외부 요청)은 이미 HTTPS로 받아서 Nginx까지 오고, Nginx부터 백엔드(스프링부트 서버)로의 통신을 설정하실 때에는 두 가지 옵션 중 하나를 선택하시면 됩니다.

관련하여 더 구체적인 설정 및 예제를 보시려면 아래 링크를 참고해 주세요:
- Nginx를 이용한 Reverse Proxy 설정법
- 스프링부트와 Nginx의 HTTPS 설정

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

정적 파일 서빙에 대한 성능 최적화에 대해 질문드립니다.

0

3

0

패키지 구분에 대해 궁금한게 있습니다

0

7

1

iam 권한

0

15

1

혹시 아파치 서버 관련 책이나 사이트도 추천해주실수 있으신가요..?

0

63

2

꼭 conf.d에 default 파일이 있는상태에서 시작해야하나요 ??

0

72

2

HTTPS 관련 코드 해석하기

0

78

2

default.conf 파일이 없습니다.

0

81

2

로드밸런싱 Server ID 출력에 관한 질문

0

54

2

default.conf

0

68

2

도메인 구매 시, AWS 결제 이력이 없으면 실패하니 참고바랍니다.

0

60

2

https는 백엔드에도 적용해야하나요?

0

126

2

Nginx의 성능을 알고 싶으면 리눅스 위에서 실행 시켜야 하잖아요..

0

96

2

챕터 22에대한 질문드립니다.

0

106

2

AWS EC2 인스턴스 생성하기 - 키페어 필요

0

137

2

https 적용 과정질문

0

185

2

프론트엔드 배포 역할 의미

1

141

2

도메인 네임 EC2에 연결하기

0

144

2

Vite 없이 React만 배포할 시

1

118

2

location = /50.x.html 블럭

0

120

2

NextJS 15버전의 경우 build 후 폴더가 다른 것 같습니다

0

358

2

상대경로 관련 질문드립니다!

0

156

2

nginx, DNS 순서 관련 질문

0

136

2

nginx 설정파일 root 설정 관련 문의

0

222

2

/etc/nginx/conf.d 디렉토리 내 default.conf가 없습니다

1

190

1