LoginSignup
3
6

More than 1 year has passed since last update.

KabuStationAPIを他サーバからリバースプロキシ利用して利用する

Last updated at Posted at 2021-02-19

更新

  • WebsocketのPROXY設定を追加

発端

株コムAPIは、Windowsアプリのkabuステーションをローカル起動している際にのみ利用可能であり、一般公開されているAPIではない。
仕組み的にはkabuステーション起動中のみ、localhost:18081(開発),localhost:18080(本番)のサーバが起動される。

この二つのサーバプロセスは、きっちりCORSが適用されており、ブラウザからは、このWindows上のIPを指定して、リクエストを送ってもCORSによって弾かれる。

kabu station 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
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so

2. Listen ポートを2つ用意

Listen 28080
Listen 28081

3. リバースプロキシ定義を導入

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

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

結果

これにより、別PCの自作ReactサイトからCORSの制限を超えつつ、APIと通信ができた。
image.png
※自作サイトからのアクセス。ここでは、JavaScriptのfetchAPIから、WindowsPCの28081ポートに対して、kabu station API の認証を通しています。

3
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6