서버
nginx) react(spa) reverse-proxy를 이용해 cors에러 해결하기
탐훈
2024. 6. 8. 21:28
728x90
1) 서버에 있는 nginx 디렉토리로 이동
제 기준으로는 etc/nginx 디렉토리에 있습니다.
cd etc/nginx
2) conf 파일 열기
환경마다 conf 파일이 다릅니다.
cd ./site-enabled
vi default
3) reverse_proxy 셋팅하기
제 환경에서는
react(spa) 프로젝트에서
백엔드로 요청시 요청 주소 제일 앞에
api가 붙는 경우 백엔드 주소로 요청하는 걸로 되어있습니다.
ex)
1) 아래처럼 요청
axios.post('/api/board', 파라미터);
2) 실제 요청 주소는 아래와 같이 바뀌어서 요청됨
axios.post('백엔드주소/board', 파라미터);
nginx conf 파일을 아래와 같이 수정
#일반 요청시 react router를 타도록 함
location / {
try_files $uri $uri/ =404;
index index.html index.htm;
}
#api가 앞에 붙는다면 백엔드 주소로 보냄
#/api/board 일 경우, 백엔드주소/board 로 요청감
location /api/ {
proxy_pass http://백엔드주소/;
}
4) nginx 재시작
sudo service nginx restart
react 로컬로 돌릴 때
package.json에 있는
proxy 설정은 배포 때 필요없다.
로컬에서는
node 서버에서
proxy 설정을 보고 알아서 reverse_proxy를 돌려주는 듯 함
배포시엔
서버가 없고 index.html 밖에 없음
따라서
pakage.json의 proxy설정은 제거해도 됨