React

React에서 nginx를 통한 api통신

sungtt 2022. 3. 1. 03:43

결론부터 말하자면

 

해결 당시 상황

클라이언트(443포트)는 ajax요청 주소를 "https://aaa.com/api"로 설정하고,

node express는 3002포트로 ssl을 인증받은 서버를 열어, get("/api") 주소에

mysql에서 호출한 데이터를 response 해준다.

nginx에서 proxy pass를 통해 클라이언트에서 받은 "https://aaa.com/api" 요청을

"https://aaa.com:3001/api"로 전달해준다.

 

 

상황1.(현재 채택된 방법)

굳이 node에 ssl인증을 받아야하나싶어 ssl을 인증을 빼고 그냥 서버를 열었다.

클라이언트(443포트)는 ajax요청 주소를 "https://aaa.com/api"로 설정하고,

node express는 3002포트로 http서버를 열어, get("/api") 주소에

mysql에서 호출한 데이터를 response 해준다.

nginx에서 proxy pass를 통해 클라이언트에서 받은 "https://aaa.com/api" 요청을

"http://aaa.com:3001/api"로 전달해준다.

 

이것도 문제없이 SSL이 인증되면서 api통신이 가능하였다.

 

상황2.

nginx의 aaa.com.conf의 설정에 대한 의문이다.

listen 80과 443이 있는데, 프록시 패스를 80에 설정하느냐 443에 설정하느냐에 따라

왜 결과가 다른지 모르겠어서 시도해봤다. 

80에 프록시패스를 작성하면 문제없었지만

443에 작성하면 아래와 같은 오류가 난다.

나중에 nginx 사용법을 더 공부하여 원인을 알아보자.

 

오류 : Failed to load resource: the server responded with a status of 502 (Bad Gateway)

 

 

 

https://hello-bryan.tistory.com/173

 

[Nginx] nginx.conf 에 Proxy 설정

nginx.conf 에 Proxy 설정 upstream app { server localhost:8080; } server { listen 80; localhost / { root /app/build; index index.html; try_files $uri $uri/ /index.html; } localhost /api { proxy_pa..

hello-bryan.tistory.com

 

 

 

https://akal.co.kr/?p=1781 

 

nginX + 리버스프록시 + https(ssl) 적용하기

일전에 nginX에서 리버스프록시를 구현하는 글을 블로깅 한적이 있었는데 최근에 모두 https(ssl)로 바뀌면서 Reverse Proxy에서도 적용할 방법을 찾았습니다. 제 업무가 전산업이 아니다 보니 적용해

akal.co.kr