KabuStationAPI를 다른 서버에서 리버스 프록시를 이용하여 이용

발단



주식 컴 API는 Windows 앱의 kabu 스테이션을 로컬로 기동하고 있을 때에만 이용 가능하며, 공개적으로 공개된 API가 아니다.
구조적으로는 kabu 스테이션 기동중에만, localhost:18081(개발), localhost:18080(프로덕션)의 서버가 기동된다.

이 두 서버 프로세스는 제대로 CORS가 적용되고 있으며 브라우저에서이 Windows상의 IP를 지정하고 요청을 보내도 CORS에 의해 연주됩니다.

카부역 api



목적



그 외 PC(Ubuntu)의 브라우저(주로 React등의 JS)로부터도 액세스하고 싶었으므로, 이 제한을 넘어 이용할 수 있는 환경 구축을 실시한다.

대응



Apache 도입.
Apache의 역방향 프록시 기능을 사용하여 이 제한을 지웁니다.

구체적으로는, 이하의 대응을 실시.
모두 httpd.conf에 대한 설명입니다.

1. 모듈 활성화


LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

2. Listen 포트 2개 준비


Listen 28080
Listen 28081

3. 리버스 프록시 정의 도입


<VirtualHost *:28080>
    ProxyRequests Off
    ProxyPass / http://localhost:18080/
    ProxyPassReverse / http://localhost:18080/
</VirtualHost>

<VirtualHost *:28081>
    ProxyRequests Off
    ProxyPass / http://localhost:18081/
    ProxyPassReverse / http://localhost:18081/
</VirtualHost>

결과



이에 따라 다른 PC의 자작 React 사이트에서 CORS의 제한을 넘으면서 API와 통신을 할 수 있었다.

※자작 사이트로부터의 액세스. 여기에서는 JavaScript의 fetchAPI에서 WindowsPC의 28081 포트에 대한 kabu station API의 인증을 통해 있습니다.

좋은 웹페이지 즐겨찾기