cors 문제를 해결하는 방법에는 두 가지가 있다.
- 서버에서 CORS 해결
- 클라이언트에서 proxy 서버 이용
cors
를 해결해보자. react를 배포했을 시 nginx
서버를 사용했다면 proxy_pass
를 통해 쉽게 해결할 수 있다.
nginx를 사용하여 cors 해결하기
다음과 같이 설정 파일에 원하는 api endpoint를 지정하여 proxy_pass로 해당 api 서버 주소를 적어주면 된다. 이후 /api/*
로 호출하는 경우 해당 리액트 앱의 도메인:포트
를 거쳐 호출되므로 cors
가 발생하지 않는다.
/etc/nginx/conf.d/default.conf
client_max_body_size 200M;
server {
#add_header Access-Control-Allow-Origin *;
listen 80;
listen [::]:80;
server_name localhost;
location / {
root /app/dist;
index index.html;
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://localhost:5000;
}
}
vite 애플리케이션 개발시 프록시 지정
vite 애플리케이션 개발 시에 프록시를 지정하고 싶다면 vite.config.ts
를 수정하여 proxy
설정을 추가해주면 된다.
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
// https://vitejs.dev/config/
export default defineConfig({
base: './',
plugins: [react()],
assetsInclude: ['**/*.jpg', '**/*.png'],
server: {
proxy: {
'/api': {
target: 'http://localhost:5000',
changeOrigin: true,
},
},
},
});
'정리용' 카테고리의 다른 글
[React] 일정시간동안 이벤트 발생이 없으면 콜백 함수 실행 (0) | 2022.08.09 |
---|---|
크롬에서 막혀있는 포트 (0) | 2022.07.01 |
Docker 명령어 정리 (0) | 2022.05.25 |
Github pages 배포하기 (0) | 2022.05.19 |
Github 특정 파일 커밋 기록 삭제 (0) | 2022.05.17 |