Closed otcroz closed 1 month ago
npm i http-proxy-middleware@^2.0.1
우선 결론만 말하자면, react+javascript 환경과 달라진 내용은 없다. typescript를 사용하기 때문에 다르게 작성해야 하는 코드가 있나 싶어 공식 문서를 찾아봤지만 typescript에 대한 업데이트를 중지했다고 한다.
// setProxy.js
const { createProxyMiddleware } = require('http-proxy-middleware');
module.exports = function (app) {
app.use(
createProxyMiddleware('/spring', { // 리액트 서버에서 사용할 경로
target: 'http://localhost:8080', // 서버 경로 1
changeOrigin: true,
pathRewrite: { '^/spring': '/' },
})
);
app.use(
createProxyMiddleware('/flask', { // 리액트 서버에서 사용할 경로
target: 'http://localhost:5000', // 서버 경로 2
changeOrigin: true,
pathRewrite: { '^/flask': '/' },
})
);
};
/spring/
으로 시작하도록 경로를 작성한다.Flask는 /flask/
으로 시작하도록 경로를 작성한다.
http://localhost:5000/convert_script
호출하려면 /flask/convert_script
를 작성하면 됩니다.
const testFlaskAPI = async () => {
const result = await axios.get('/flask/');
const data = result.data;
console.log('flask data: ', data);
return data;
};
const testSpringAPI = async () => { const result = await axios.get('/spring/'); const data = result.data; console.log('spring data: ', data); return data; };
/flask/convert_script
를 작성하면 원래는 http://localhost:5000/flask/convert_script
를 호출하게 된다.pathRewrite
속성에 의해 flask
가 /
로 rewrite된다.http://localhost:5000/convert_script
를 호출한다.몇 달 전에 http-proxy-middleware의 업데이트가 있었다. 그래서 npm install http-proxy-middleware
명령어로 설치하면 3.0.0 버전으로 설치된다. 하지만 err_connection_refused 오류가 발생하였다.
https://github.com/chimurai/http-proxy-middleware/blob/master/MIGRATION.md 코드를 참고하여 버전에 맞게 재작성했지만 오류가 해결되지 않아 버전을 낮추는 방법(v3.0.0 -> v2.0.1)을 택했다.
⚙️ 기능 설명
Flask 서버, Spring boot 서버의 경로를 연결하여 리액트 서버에서 여러 개의 서버와 통신할 수 있도록 설정한다.
✅ To-do
📑 참고 자료